- Požadované komponenty:
- Kruhový diagram:
- Mikrokontrolér 8051:
- Modul Bluetooth HC-05:
- Integrovaný obvod ovladače motoru L293D:
- Práce s robotem ovládaným telefonem Android:
- Vysvětlení kódu:
V tomto projektu postavíme robota ovládaného telefonem Android pomocí mikrokontrolérů 8051 a modulu Bluetooth. Robot je navržen pomocí stejnosměrných motorů a směr stejnosměrných motorů bude řízen příkazy přijatými z aplikace pro Android. Stav robota se odešle zpět do aplikace pro Android. Tento projekt také pomůže při propojení modulu Bluetooth HC-05 s 8051 mikrokontroléry. Modul Bluetooth jsme již používali k ovládání domácích spotřebičů s 8051.
Požadované komponenty:
- 8051 mikrokontrolér (AT89S52)
- Modul Bluetooth HC-05
- Ovladač motoru L293D
- Robotický podvozek
- Stejnosměrné motory (2)
- Kolečka (2)
- Kolečko
- Propojovací vodiče
- Aplikace Bluetooth pro Android
Kruhový diagram:
Mikrokontrolér 8051:
Mikrokontrolér 8051 je 8bitový mikrokontrolér, který má 128 bajtů paměti RAM na čipu, 4 bajty paměti ROM na čipu, dva časovače, jeden sériový port a čtyři 8bitové porty. Mikrokontrolér 8052 je rozšířením mikrokontroléru 8051. V tomto projektu používáme mikrokontrolér AT89S52. Níže uvedená tabulka ukazuje srovnání 8051 členů rodiny.
Vlastnosti |
8051 |
8052 |
ROM (v bajtech) |
4K |
8 tis |
RAM (bajty) |
128 |
256 |
Časovače |
2 |
3 |
I / O piny |
32 |
32 |
Sériový port |
1 |
1 |
Přerušit zdroje |
6 |
8 |
Modul Bluetooth HC-05:
HC-05 je sériový modul Bluetooth. Lze jej konfigurovat pomocí AT příkazů. Může pracovat ve třech různých konfiguracích (Master, Slave, Loop back). V našem projektu to použijeme jako otroka. Mezi vlastnosti modulu HC-05 patří:
- Typická citlivost -80 dBm.
- Výchozí přenosová rychlost: 9600 b / s, 8 datových bitů, 1 stop bit, žádná parita.
- Automatické párování kódu PIN: výchozí kód PIN „1234“
- Má 6 kolíků.
- Pro napájení HC-05 se používají kolíky Vcc a Gnd.
- Kolíky Tx a Rx se používají pro komunikaci s mikrokontrolérem.
- Povolte kolík pro aktivaci modulu HC-05. když je nízká, modul je deaktivován
- Stavový stavový indikátor funguje. Pokud není spárováno / připojeno k žádnému jinému zařízení Bluetooth, LED bliká nepřetržitě. Pokud je zařízení připojeno / spárováno s jakýmkoli jiným zařízením Bluetooth, LED dioda bliká s konstantním zpožděním 2 sekundy.
Integrovaný obvod ovladače motoru L293D:
L293D je integrovaný obvod ovladače motoru s dvojitým H-můstkem. Funguje jako proudový zesilovač, výstup L293D pohání stejnosměrné motory. Obsahuje dva zabudované obvody H-můstku. V běžném provozním režimu může řídit dva stejnosměrné motory současně v obou směrech. Níže uvedená tabulka zobrazuje popis pinů L293D IC. Zde jsou některé projekty využívající ovladač motoru L293D.
Popis kolíku
PIN č. |
název |
Funkce |
1 |
Povolit 1,2 |
Uvolněte kolík pro motor 1 |
2 |
Vstup 1 |
Vstup 1 pro motor 1 |
3 |
Výstup 1 |
Výstup 1 pro motor 1 |
4 |
Gnd |
Uzemnění (0 V) |
5 |
Gnd |
Uzemnění (0 V) |
6 |
Výstup 2 |
Výstup 2 pro motor 1 |
7 |
Vstup 2 |
Vstup 2 pro motor 1 |
8 |
Vcc 2 |
Napájecí napětí pro motory (5V) |
9 |
Povolit 3,4 |
Uvolněte kolík pro motor 1 |
10 |
Vstup 3 |
Vstup 1 pro motor 2 |
11 |
Výstup 4 |
Výstup 1 pro motor 2 |
12 |
Gnd |
Uzemnění (0 V) |
13 |
Gnd |
Uzemnění (0 V) |
14 |
Výstup 4 |
Výstup 2 pro motor 2 |
15 |
Vstup 4 |
Vstup 2 pro motor 2 |
16 |
Vcc 1 |
Napájecí napětí (5V) |
Práce s robotem ovládaným telefonem Android:
V tomto robotovi ovládaném chytrým telefonem odesílá uživatel aplikace pro Android data do mikrokontroléru 8051 prostřednictvím modulu HC-05. Přijatá data jsou porovnána v mikrokontroléru 8051 a podle toho je rozhodnuto. Níže uvedená tabulka ukazuje směr motorů a stav robota pro různé přijaté znaky.
Přijatý znak |
Motor 1 |
Motor 2 |
Stav robota |
F |
Vpřed |
Vpřed |
Posune se vpřed |
b |
Zpět |
Zpět |
Posune se dozadu |
r |
Vpřed |
Zpět |
Pohybuje se doprava |
l |
Zpět |
Vpřed |
Přesune se doleva |
s |
Vypnuto |
Vypnuto |
Zastavil |
Aplikace terminálu Bluetooth nám umožňuje emulovat terminál Bluetooth. Tato aplikace podporuje obousměrnou komunikaci a tato aplikace je kompatibilní s většinou zařízení.
Níže uvedené kroky ukazují, jak nainstalovat a používat tuto aplikaci.
1. Stáhněte a nainstalujte si aplikaci Bluetooth Terminal do telefonu Android. Aplikaci lze stáhnout z níže uvedeného odkazu.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Po instalaci aplikace ji otevřete a zapněte Bluetooth.
3. Vyberte zařízení a klikněte na možnost připojení. Po úspěšném připojení můžeme začít odesílat data do modulu HC-05.
Podle níže uvedeného Vysvětlení kódu uvidíte, jak je znak odesílán a přijímán mikrokontrolérem 8051 za účelem otáčení požadovaných motorů.
Vysvětlení kódu:
Kompletní program C a ukázkové video pro tento projekt jsou uvedeny na konci tohoto projektu. Kód je rozdělen na malé smysluplné bloky a je vysvětleno níže.
Pro rozhraní L293D s mikrokontroléry 8051 musíme definovat piny, na kterých je L293D připojen k mikrokontroléru 8051. Pin In1 motoru 1 je připojen k P2.0, Pin In2 motoru 1 je připojen k P2.1, Pin In1 motoru 2 je připojen k P2.2, Pin In2 motoru 2 je připojen k P2.3
sbit m1f = P2 ^ 0; // in1 pin motoru 1 sbit m1b = P2 ^ 1; // in2 pin motoru 1 sbit m2f = P2 ^ 2; // in1 pin motoru2 sbit m2b = P2 ^ 3; // in2 pin motoru2
Dále musíme definovat některé funkce, které se v programu používají. Funkce zpoždění se používá k vytvoření zadaného časového zpoždění. Funkce Txdata se používá k přenosu dat přes sériový port. Funkce Rxdata se používá k příjmu dat ze sériového portu.
void delay (unsigned int); // funkce pro vytvoření zpoždění char rxdata (void); // funkce pro příjem znaku přes sériový port 8051 void txdata (unsigned char); // funkce pro odeslání znaku přes sériový port 8051
V této části kódu budeme konfigurovat mikrokontrolér 8051 pro sériovou komunikaci. Registr TMOD je načten 0x20 pro časovač 1, režim 2 (automatické opětovné načtení). Registr SCON je načten 0x50 pro 8 datových bitů, 1 stop bit a příjem povolen. Registr TH1 je načten 0xfd pro přenosovou rychlost 9600 bitů za sekundu. TR1 = 1 se používá ke spuštění časovače.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; V této části kódu je vrácený znak funkce rxdata uložen v proměnné 's' pro další použití.
s = rxdata (); // příjem sériových dat z modulu bluetooth hc-05
V této části kódu musíme porovnat přijatý znak s předem přiřazenými znaky pro různé směry. Pokud je přijímaný znak „f“, musí se robot pohybovat dopředu. Toho je dosaženo tím , že kolíky m1f, m2f jsou vysoké a kolíky m1b, m2b nízké. Jakmile je toto hotovo, musíme poslat stav robota do aplikace pro Android. To se provádí pomocí funkce txdata . Stejný proces se opakuje pro různé přijaté postavy a podle toho se přijímá rozhodnutí. Tabulka 1 ukazuje různé hodnoty m1f, m1b, m2f, m2b pro různé směry pohybu robota.
if (s == 'f') // posunout oba motory dopředu {m1f = 1; zpoždění (1); mlb = 0; zpoždění (1); m2f = 1; zpoždění (1); m2b = 0; zpoždění (1); for (i = 0; msg1! = '\ 0'; i ++) // odeslání stavu robota do aplikace pro Android prostřednictvím bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Otáčení motoru 1 |
Rotace motoru 2 |
Stav robota |
1 |
0 |
1 |
0 |
vpřed |
vpřed |
Pohyb vpřed |
0 |
1 |
0 |
1 |
zvrátit |
zvrátit |
Pohyb vzad |
1 |
0 |
0 |
1 |
vpřed |
zvrátit |
Pohybuji se doprava |
0 |
1 |
1 |
0 |
zvrátit |
vpřed |
Pohyb doleva |
0 |
0 |
0 |
0 |
zastavil |
zastavil |
zastavil |
To znamená, že můžete robotickým vozem otáčet jakýmkoli směrem ovládáním čtyř motorů pomocí mikrokontroléru 8051. Tento robot lze také ovládat pomocí DTMF s 8051, pokud nemáte telefon s Androidem.
Zde také zkontrolujte všechny projekty robotiky.