- Szükséges alkatrészek:
- Kördiagramm:
- 8051 mikrokontroller:
- HC-05 Bluetooth modul:
- L293D motorvezérlő IC:
- Az Android telefon vezérelt robot működése:
- Kód magyarázata:
Ebben a projektben egy Android Phone vezérlésű robotot fogunk építeni 8051 mikrokontrollerek és Bluetooth modul segítségével. A robotot egyenáramú motorok felhasználásával tervezték, és az egyenáramú motorok irányát az android alkalmazásból kapott parancsok vezérlik. A robot állapotát visszaküldik az Android alkalmazásba. Ez a projekt segít a HC-05 Bluetooth modul és a 8051 mikrovezérlők összekapcsolásában is. A Bluetooth modult már használtuk a háztartási gépek vezérléséhez a 8051-gyel.
Szükséges alkatrészek:
- 8051 mikrokontroller (AT89S52)
- HC-05 Bluetooth modul
- L293D motorvezérlő
- Robot alváz
- DC motorok (2)
- Kerekek (2)
- Castor kerék
- Jumper huzalok
- Bluetooth terminál android alkalmazás
Kördiagramm:
8051 mikrokontroller:
A 8051 mikrokontroller egy 8 bites mikrovezérlő, amely 128 bájt chip RAM-mal, 4K bájt chip ROM-on, két időzítővel, egy soros és négy 8 bites porttal rendelkezik. A 8052 mikrovezérlő a 8051 mikrovezérlő kiterjesztése. Ebben a projektben az AT89S52 mikrovezérlőt használjuk. Az alábbi táblázat 8051 családtag összehasonlítását mutatja.
Funkció |
8051 |
8052 |
ROM (bájtban) |
4K |
8K |
RAM (bájt) |
128 |
256 |
Időzítők |
2 |
3 |
I / O csapok |
32 |
32 |
Soros port |
1 |
1 |
Megszakító források |
6. |
8. |
HC-05 Bluetooth modul:
A HC-05 egy soros Bluetooth modul. AT parancsokkal konfigurálható. Három különböző konfigurációban működhet (Master, Slave, Loop back). Projektünkben rabszolgaként fogjuk használni. A HC-05 modul jellemzői:
- Tipikus -80dBm érzékenység.
- Alapértelmezett adatátviteli sebesség: 9600 bps, 8 adatbit, 1 stopbit, nincs paritás.
- Automatikus párosítás PIN kód: „1234” alapértelmezett PIN kód
- 6 csapos.
- Vcc és Gnd csapokat használnak a HC-05 táplálásához.
- A Tx és Rx csapokat a mikrokontrollerrel való kommunikációhoz használják.
- Tű engedélyezése a HC-05 modul aktiválásához. amikor alacsony, a modul le van tiltva
- Az állam tüskéje állapotjelző. Ha nincs párosítva / csatlakoztatva más Bluetooth-eszközhöz, a LED folyamatosan villog. Ha bármely más Bluetooth-eszközhöz csatlakozik / párosítva van, akkor a LED folyamatosan 2 másodperc késleltetéssel villog.
L293D motorvezérlő IC:
Az L293D egy kettős H-híd motorvezérlő IC. Ez áramerősítőként működik, az L293D kimenete hajtja az egyenáramú motorokat. Két beépített H-híd áramkört tartalmaz. Közös üzemmódban két egyenáramú motort képes egyszerre hajtani mindkét irányban. Az alábbi táblázat az L293D IC tű leírását mutatja. Íme néhány projekt, amely az L293D motor meghajtót használja.
PIN leírás
PIN-kód |
Név |
Funkció |
1 |
Engedélyezze az 1,2-et |
Tű engedélyezése az 1. motorhoz |
2 |
1. bemenet |
1. bemenet az 1. motorhoz |
3 |
1. kimenet |
1. kimenet az 1. motorhoz |
4 |
Gnd |
Földelés (0V) |
5. |
Gnd |
Földelés (0V) |
6. |
2. kimenet |
2. kimenet az 1. motorhoz |
7 |
2. bemenet |
2. bemenet az 1. motorhoz |
8. |
Vcc 2 |
Tápfeszültség motorokhoz (5V) |
9. |
Engedélyezze a 3,4-et |
Tű engedélyezése az 1. motorhoz |
10. |
3. bemenet |
1. bemenet a 2. motorhoz |
11. |
4. kimenet |
1. kimenet a 2. motorhoz |
12. |
Gnd |
Földelés (0V) |
13. |
Gnd |
Földelés (0V) |
14 |
4. kimenet |
2. kimenet a 2. motorhoz |
15 |
4. bemenet |
2. bemenet a 2. motorhoz |
16. |
Vcc 1 |
Tápfeszültség (5V) |
Az Android telefon vezérelt robot működése:
Ebben az intelligens telefon vezérelt robotban az android alkalmazás felhasználója HC-05 modulon keresztül elküldi az adatokat a 8051 mikrovezérlőnek. A beérkezett adatokat összehasonlítjuk a 8051 mikrovezérlővel, és ennek megfelelően hozzuk meg a döntést. Az alábbi táblázat a motorok irányát és a robot állapotát mutatja be a kapott karakterek esetében.
Fogadott karakter |
1. motor |
2. motor |
A robot állapota |
f |
Előre |
Előre |
Halad előre |
b |
Hátrafelé |
Hátrafelé |
Visszafelé mozog |
r |
Előre |
Hátrafelé |
Jobbra mozog |
l |
Hátrafelé |
Előre |
Balra mozog |
s |
Ki |
Ki |
Megállt |
A Bluetooth terminál alkalmazás lehetővé teszi számunkra, hogy utánozzunk egy Bluetooth terminált. Ez az alkalmazás támogatja a kétirányú kommunikációt, és ez az alkalmazás kompatibilis a legtöbb eszközzel.
Az alábbi lépések bemutatják az alkalmazás telepítését és használatát.
1. Töltse le és telepítse a Bluetooth terminál alkalmazást androidos telefonjára. Az alkalmazás letölthető az alábbi linkről.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Az alkalmazás telepítése után nyissa meg az alkalmazást, és kapcsolja be a Bluetooth funkciót.
3. Válassza ki az eszközt, és kattintson a Csatlakozás lehetőségre. A sikeres kapcsolódás után megkezdhetjük az adatok küldését a HC-05 modulba.
Ellenőrizze az alábbi kódmagyarázatot, hogy lássa, hogyan küldi és fogadja a karaktert a 8051 mikrokontroller a szükséges motorok forgatásához.
Kód magyarázata:
A projekt teljes C programja és bemutatóvideója a projekt végén található. A kódot apró, értelmes darabokra osztják, és az alábbiakban elmagyarázzák.
A 8051 mikrovezérlőkhöz való L293D interfészhez meg kell határoznunk azokat a csapokat, amelyeken az L293D csatlakozik a 8051 mikrovezérlőhöz. Az 1 motor In1 érintkezője a P2.0, az In2 motor In2 csapja a P2.1, a 2 motor In1 csapja a P2.2, a 2 motor In2 csapja a P2.3
sbit m1f = P2 ^ 0; // a motor1 tűjében1 sbit m1b = P2 ^ 1; // a motor2 tűjében1 sbit m2f = P2 ^ 2; // a motor2 tűje2 sbit m2b = P2 ^ 3; // a motor2 tűjében
Ezután meg kell határoznunk néhány programban használt funkciót. A késleltetés funkció a megadott késleltetés létrehozására szolgál. A Txdata funkció az adatok soros porton keresztül történő továbbítására szolgál. Az Rxdata függvény az adatok fogadására szolgál a soros portról.
void delay (aláíratlan int); // függvény a késleltetés létrehozására char rxdata (void); // függvény egy karakter fogadására a 8051 soros porton keresztül void txdata (unsigned char); // függvény karakter küldéséhez a 8051 soros portján keresztül
A kód ezen részében konfigurálni fogjuk a 8051 mikrovezérlőt a soros kommunikációhoz. A TMOD regiszter 0x20-mal van töltve az 1. időzítőhöz, 2. módhoz (automatikus újratöltés). A SCON regiszter 0x50-tel van betöltve 8 adatbitre, 1 stopbitre és a vétel engedélyezve. A TH1 regiszter 0xfd-vel van töltve, 9600 bit / másodperc sebességgel. TR1 = 1 az időzítő elindításához.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; A kód ezen részében az rxdata függvény visszaadott karakterét az 's' változó tárolja további felhasználás céljából.
s = rxdata (); // soros adatokat fogad a hc-05 bluetooth modultól
A kód ezen részében a kapott karaktert össze kell hasonlítanunk az előre kijelölt karakterekkel a különböző irányokhoz. Ha a kapott karakter „f”, akkor a robotnak előre kell haladnia. Ez úgy érhető el, hogy az m1f, m2f és az m1b, m2b csapokat alacsonyra teszik. Ha ez megtörtént, akkor a következő állapotot el kell küldenünk a robot állapotáról az Android alkalmazásba. Ez a txdata függvény segítségével történik. Ugyanaz a folyamat megismétlődik a kapott karakterek esetében, és ennek megfelelően születik döntés. Az 1. táblázat különböző m1f, m1b, m2f, m2b értékeket mutat be a robot különböző mozgásirányaihoz.
ha (s == 'f') // mindkét motort előre mozgatja {m1f = 1; késés (1); m1b = 0; késés (1); m2f = 1; késés (1); m2b = 0; késés (1); for (i = 0; msg1! = '\ 0'; i ++) // robot státuszának elküldése androidos alkalmazáshoz bluetoothon keresztül {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Az 1. motor forgása |
A 2. motor forgása |
A robot állapota |
1 |
0 |
1 |
0 |
előre |
előre |
Haladni előre |
0 |
1 |
0 |
1 |
fordított |
fordított |
Visszafelé haladni |
1 |
0 |
0 |
1 |
előre |
fordított |
Jobbra haladni |
0 |
1 |
1 |
0 |
fordított |
előre |
Balra haladva |
0 |
0 |
0 |
0 |
megállt |
megállt |
megállt |
Ezzel forgathatja a robotkocsit bármilyen irányba, ha a négy motort a 8051 mikrovezérlővel vezérli. Ez a robot a 8051-es DTMF használatával is vezérelhető, ha nincs androidos telefonja.
Itt ellenőrizheti az összes robotikai projektet is.