- Požadované komponenty:
- Schéma zapojenia:
- Mikrokontrolér 8051:
- Modul Bluetooth HC-05:
- Integrovaný obvod ovládača motora L293D:
- Fungovanie robota ovládaného telefónom Android:
- Vysvetlenie kódu:
V tomto projekte budeme vyrábať robot ovládaný telefónom Android pomocou mikrokontrolérov 8051 a modulu Bluetooth. Robot je navrhnutý pomocou jednosmerných motorov a smer jednosmerných motorov bude riadený príkazmi prijatými z aplikácie pre Android. Stav robota sa odošle späť do aplikácie pre Android. Tento projekt tiež pomôže pri prepojení modulu Bluetooth HC-05 s 8051 mikrokontrolérmi. S 8051 sme už na ovládanie domácich spotrebičov používali modul Bluetooth.
Požadované komponenty:
- Mikrokontrolér 8051 (AT89S52)
- Modul Bluetooth HC-05
- Ovládač motora L293D
- Robotický podvozok
- DC motory (2)
- Kolesá (2)
- Koliesko
- Prepojovacie vodiče
- Aplikácia Bluetooth pre Android
Schéma zapojenia:
Mikrokontrolér 8051:
Mikrokontrolér 8051 je 8-bitový mikrokontrolér, ktorý má 128 bajtov na čipovej RAM, 4 bajty na čipovej ROM, dva časovače, jeden sériový port a štyri 8bitové porty. Mikrokontrolér 8052 je rozšírením mikrokontroléra 8051. V tomto projekte používame mikrokontrolér AT89S52. Nasledujúca tabuľka zobrazuje porovnanie 8051 členov rodiny.
Funkcia |
8051 |
8052 |
ROM (v bajtoch) |
4K |
8K |
RAM (bajty) |
128 |
256 |
Časovače |
2 |
3 |
I / O piny |
32 |
32 |
Sériový port |
1 |
1 |
Prerušiť zdroje |
6 |
8 |
Modul Bluetooth HC-05:
HC-05 je sériový modul Bluetooth. Môže byť nakonfigurovaný pomocou AT príkazov. Môže pracovať v troch rôznych konfiguráciách (Master, Slave, Loop back). V našom projekte to použijeme ako otroka. Medzi vlastnosti modulu HC-05 patrí:
- Typická citlivosť -80 dBm.
- Predvolená prenosová rýchlosť: 9600 b / s, 8 dátových bitov, 1 stop bit, žiadna parita.
- Automatické párovanie kódu PIN: predvolený kód PIN kódu „1234“
- Má 6 pinov.
- Na napájanie HC-05 sa používajú kolíky Vcc a Gnd.
- Kolíky Tx a Rx sa používajú na komunikáciu s mikrokontrolérom.
- Povoliť kolík na aktiváciu modulu HC-05. ak je nízka, modul je deaktivovaný
- Stavový pin slúži na indikátor stavu. Ak nie je spárované / pripojené k žiadnemu inému zariadeniu Bluetooth, LED bliká nepretržite. Ak je zariadenie pripojené / spárované s iným zariadením Bluetooth, potom LED dióda bliká s konštantným oneskorením 2 sekundy.
Integrovaný obvod ovládača motora L293D:
L293D je integrovaný obvod vodiča motora s dvojitým H-mostom. Funguje ako prúdový zosilňovač, výstup L293D poháňa jednosmerné motory. Obsahuje dva zabudované obvody H-mostu. V bežnom prevádzkovom režime môže súčasne poháňať dva jednosmerné motory v oboch smeroch. Nasledujúca tabuľka zobrazuje popis pinov L293D IC. Tu sú niektoré projekty využívajúce motorový ovládač L293D.
Popis špendlíka
PIN č. |
názov |
Funkcia |
1 |
Povoliť 1,2 |
Uvoľnite kolík pre motor 1 |
2 |
Vstup 1 |
Vstup 1 pre motor 1 |
3 |
Výstup 1 |
Výstup 1 pre motor 1 |
4 |
Gnd |
Uzemnenie (0 V) |
5 |
Gnd |
Uzemnenie (0 V) |
6 |
Výstup 2 |
Výstup 2 pre motor 1 |
7 |
Vstup 2 |
Vstup 2 pre motor 1 |
8 |
Vcc 2 |
Napájacie napätie pre motory (5V) |
9 |
Povoliť 3,4 |
Uvoľnite kolík pre motor 1 |
10 |
Vstup 3 |
Vstup 1 pre motor 2 |
11 |
Výstup 4 |
Výstup 1 pre motor 2 |
12 |
Gnd |
Uzemnenie (0 V) |
13 |
Gnd |
Uzemnenie (0 V) |
14 |
Výstup 4 |
Výstup 2 pre motor 2 |
15 |
Vstup 4 |
Vstup 2 pre motor 2 |
16 |
Vcc 1 |
Napájacie napätie (5V) |
Fungovanie robota ovládaného telefónom Android:
V tomto robotovi riadenom inteligentným telefónom používateľ aplikácie pre Android odosiela údaje do mikrokontroléra 8051 prostredníctvom modulu HC-05. Prijaté dáta sa porovnajú v mikrokontroléri 8051 a podľa toho sa rozhodne. Nasledujúca tabuľka zobrazuje smer motorov a stav robota pre rôzne prijaté znaky.
Prijatý znak |
Motor 1 |
Motor 2 |
Stav robota |
f |
Vpred |
Vpred |
Posúva sa vpred |
b |
Spätne |
Spätne |
Posunie sa dozadu |
r |
Vpred |
Spätne |
Pohybuje sa doprava |
l |
Spätne |
Vpred |
Pohyby vľavo |
s |
Vypnuté |
Vypnuté |
Zastavené |
Aplikácia Bluetooth terminál nám umožňuje emulovať terminál Bluetooth. Táto aplikácia podporuje obojsmernú komunikáciu a je kompatibilná s väčšinou zariadení.
Nasledujúce kroky ukazujú, ako nainštalovať a používať túto aplikáciu.
1. Stiahnite a nainštalujte si aplikáciu Bluetooth terminal do telefónu Android. Aplikáciu je možné stiahnuť z nižšie uvedeného odkazu.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Po nainštalovaní aplikácie ju otvorte a zapnite Bluetooth.
3. Vyberte zariadenie a kliknite na možnosť pripojenia. Po úspešnom pripojení môžeme začať odosielať dáta do modulu HC-05.
Skontrolujte vysvetlenie kódu nižšie, aby ste zistili, ako je znak odosielaný a prijímaný mikrokontrolérom 8051 na otáčanie požadovaných motorov.
Vysvetlenie kódu:
Kompletný program C a ukážkové video pre tento projekt sú uvedené na konci tohto projektu. Kód je rozdelený na malé zmysluplné bloky a je vysvetlený nižšie.
Pre prepojenie L293D s mikrokontrolérmi 8051 musíme definovať piny, na ktorých je L293D pripojený k mikrokontroléru 8051. Pin In1 motora 1 je pripojený k P2.0, pin In2 motora 1 je pripojený k P2.1, pin In1 motora 2 je pripojený k P2.2, pin In2 motora 2 je pripojený k P2.3
sbit m1f = P2 ^ 0; // in1 pin motora1 sbit m1b = P2 ^ 1; // in2 pin motora 1 sbit m2f = P2 ^ 2; // in1 pin motora2 sbit m2b = P2 ^ 3; // in2 pin motora2
Ďalej musíme definovať niektoré funkcie, ktoré sa v programe používajú. Funkcia Delay sa používa na vytvorenie zadaného časového oneskorenia. Funkcia Txdata sa používa na prenos dát cez sériový port. Funkcia Rxdata sa používa na príjem dát zo sériového portu.
neplatnosť oneskorenia (unsigned int); // funkcia na vytvorenie oneskorenia char rxdata (void); // funkcia na príjem znaku cez sériový port 8051 void txdata (unsigned char); // funkcia na posielanie znaku cez sériový port 8051
V tejto časti kódu budeme konfigurovať mikrokontrolér 8051 na sériovú komunikáciu. Register TMOD je načítaný ako 0x20 pre časovač 1, režim 2 (automatické opätovné načítanie). Register SCON je načítaný 0x50 pre 8 dátových bitov, 1 stop bit a príjem povolený. Register TH1 je načítaný s 0xfd pre prenosovú rýchlosť 9600 bitov za sekundu. TR1 = 1 sa používa na spustenie časovača.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; V tejto časti kódu je vrátený znak funkcie rxdata uložený v premennej 's' na ďalšie použitie.
s = rxdata (); // príjem sériových dát z modulu bluetooth hc-05
V tejto časti kódu musíme porovnať prijatý znak s vopred určenými znakmi pre rôzne smery. Ak je prijatý znak „f“, robot sa musí pohybovať dopredu. To sa dosiahne tým , že kolíky m1f, m2f sú vysoké a kolíky m1b, m2b nízke. Keď je to hotové, musíme do aplikácie pre Android poslať stav robota. To sa deje pomocou funkcie txdata . Rovnaký proces sa opakuje pre rôzne prijaté znaky a podľa toho sa prijíma rozhodnutie. Tabuľka 1 zobrazuje rôzne hodnoty m1f, m1b, m2f, m2b pre rôzne smery pohybu robota.
if (s == 'f') // posunúť oba motory v smere dopredu {m1f = 1; oneskorenie (1); mlb = 0; oneskorenie (1); m2f = 1; oneskorenie (1); m2b = 0; oneskorenie (1); for (i = 0; msg1! = '\ 0'; i ++) // poslať stav robota do aplikácie pre Android cez bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Otáčanie motora 1 |
Otáčanie motora 2 |
Stav robota |
1 |
0 |
1 |
0 |
dopredu |
dopredu |
Hýbať sa vpred |
0 |
1 |
0 |
1 |
obrátiť |
obrátiť |
Pohyb dozadu |
1 |
0 |
0 |
1 |
dopredu |
obrátiť |
Pohybujem sa doprava |
0 |
1 |
1 |
0 |
obrátiť |
dopredu |
Pohyb vľavo |
0 |
0 |
0 |
0 |
zastavil |
zastavil |
zastavil |
To je to, že môžete robotickým autom otáčať ľubovoľným smerom ovládaním štyroch motorov pomocou mikrokontroléra 8051. Tento robot môže byť tiež ovládaný pomocou DTMF s 8051, ak nemáte telefón s Androidom.
Tu tiež skontrolujte všetky projekty v oblasti robotiky.