Robotpincér távirányítás

Robotpincér távirányítás

A kép továbbítására bármilyen csevegő alkalmazás megfelel amit a robotra szerelt okos telefon kamerája készít és nagy távolságra internet segítségével jut el a kezelőhöz. A kezelő az otthonában távmunkában láthatja online módon a munkaterületen zajló eseményeket – elő és hátlapi kamera közvetítésével -, illetve az okos telefon mikrofonján keresztül hallja a munkaterületen lévő hangokat. 

A robot biztonságos irányítása Dual-Tone Multi-Frequency (továbbiakban DTMF) elven működő, szabványos telefon hangok felhasználásával történik.

A kezelő a DTMF generátor négy gombja közül mindig azt a gombot nyomja folyamatosan, amilyen irányú mozgást szeretne a robottal végrehajtatni. A gomb elengedése vagy a telefonvonal megszakadása esetén a robot biztonsági okok miatt megáll. A DTMF generátor által létrehozott jelek a robotra helyezett másik telefonba érkeznek, amiből a 3,5 jack csatlakozón keresztül jutnak el a robotot irányító vezérlő egységbe ahol a DTMF jelek feldolgozása kerülnek. robotpincér távirányítás


MT8870 áramkör dekóder táblázat

MT8870 áramkör dekóder táblázat


DTMF generátor kezelő oldali kapcsolási rajza


DTMF dekóder robot oldali kapcsolási rajza


Robotpincér távirányítás - DTMF dekóder program

Robotpincér távirányítás – DTMF dekóder program


Arduino program:

// változók definiálása, kivezetésekhez rendelése
int x,y,z,t;
int a=2;
int b=3;
int c=4;
int d=5;
int e=6; 
int f=7; 
int g=8; 
int h=9; 
// ----------------------------------------------------
// beállítás, kimenetek és bemenetek
void setup() {
pinMode(a,INPUT);  // 2-es láb Q4-ről jön
pinMode(b,INPUT);  // 3-as láb Q3-ről jön
pinMode(c,INPUT);  // 4-es láb Q2-ről jön
pinMode(d,INPUT);  // 5-ös láb Q1-ről jön
pinMode(e,OUTPUT); // bal motor KI/BE
pinMode(f,OUTPUT);  // bal motor CW/CCW
pinMode(g,OUTPUT); // jobb motor KI/BE
pinMode(h,OUTPUT); // jobb motor CW/CCW
Serial.begin (9600);
}
// Motor forog, ha kimenet "HIGH" jelű
// Motor nem forog, ha a kimenet "LOW" jelű
// CW: óramutatóval megegyező irányú szemből nézve
// CCW:  óramutatóval ellenkező irányú szemből nézve
// CW akkor aktív, ha HIGH szintet kap
// CCW akkor aktív, ha LOW szintet kap
// ----------------------------------------------------
// végrehajtási hurok
void loop() {
x=digitalRead(a); 
y=digitalRead(b); 
z=digitalRead(c); 
t=digitalRead(d); 
Serial.print(x);
Serial.print(y);
Serial.print(z);
Serial.println(t); 
delay(1000);
// ----------------------------------------------------
// 0. feltétel teljesülése && ÉS logikai kapcsolatokkal
if (x==0 && y==0 && z==0 && t==0) // előre
{digitalWrite(e,HIGH); // bal motor BE
digitalWrite(f,LOW);     // bal motor CCW
digitalWrite(g,HIGH);   // jobb motor BE
digitalWrite(h,HIGH);} // jobb motor CW
// ----------------------------------------------------
// 1. feltétel teljesülése && ÉS logikai kapcsolatokkal
if (x==0 && y==0 && z==0 && t==1) // hátra
{digitalWrite(e,HIGH);   // bal motor BE
digitalWrite(f,HIGH);    // bal motor CW
digitalWrite(g,HIGH);   // jobb motor BE
digitalWrite(h,LOW);}   // jobb motor CCW
// ----------------------------------------------------
// 2. feltétel teljesülése && ÉS logikai kapcsolatokkal
if (x==0 && y==0 && z==1 && t==0) // balra
{digitalWrite(e,HIGH);    // bal motor BE
digitalWrite(f,HIGH);       // bal motor CW
digitalWrite(g,HIGH);     //  jobb motor BE
digitalWrite(h,HIGH);}   //  jobb motor CW
// ----------------------------------------------------
// 3. feltétel teljesülése && ÉS logikai kapcsolatokkal
if (x==0 && y==0 && z==1 && t==1) // jobbra
{digitalWrite(e,HIGH);   // bal motor BE
digitalWrite(f,LOW);       // bal motor CCW
digitalWrite(g,HIGH);     // jobb motor BE
digitalWrite(h,LOW);}    // jobb motor CCW
}

A DTMF dekóderből kilépő 4 bites jel további feldolgozást a jobb és bal oldalon lévő mozgató motorok irányában egy másik Arduino nano végezi, melynek megoldásra több lehetőség is kínálkozik. robotpincér távirányítás

Az egyik lehetőség, hogy az Arduino nano kimenetén lévő PWM jelből az alábbi kapcsolással egy PWM teljesítmény erősítő készül ami a motorokat hajtja meg egy optocsatolós leválasztást követően. A PWM jel időfüggvényét programból kell beállítani, hogy a motor indításánál a fordulatszám változás kellően egyenletes legyen.

PWM - MOSFET - motor

PWM – MOSFET – motor


Ha túl gyorsan változik meg a motor fordulatszáma, a kerekek megcsúsznak és nem fog a robot gyorsulni a kívánt mértékben. A programnak a motor fordulatszám változását egy csillapított PID szabályzással kell megvalósítani, aminek számos paramétere a mechanikai rendszertől is függ, ezért a idő függvényében a programot csak a kész mechanikai rendszer ismeretében lehet megvalósítani. Arduino nano PWM jel 8 bites felbontással rendelkezik, ami bőven elegendő az álló helyzetből a maximális fordulatszám kellően finom megvalósításához.  robotpincér távirányítás

PID szabályzó beállítása

PID szabályzó beállítása


A másik lehetőség a PWM modul olyan vezérlése ahol az Arduino nano modul kimenetei változnak az idő függvényében és ez a változás okozza a PWM modul vezérlő jelének a megváltozását.  robotpincér távirányítás


Üzenet küldés: ITT

Címke , , , , , , , , , , , , , , , , , , , , , .Könyvjelzőkhöz Közvetlen link.

A hozzászólások jelenleg ezen a részen nincs engedélyezve.