- Components necessaris:
- Esquema de connexions:
- Microcontrolador 8051:
- Mòdul Bluetooth HC-05:
- IC del controlador de motor L293D:
- Funcionament del robot controlat per telèfon Android:
- Explicació del codi:
En aquest projecte construirem un robot controlat per telèfon Android amb microcontroladors 8051 i mòdul Bluetooth. El robot està dissenyat mitjançant motors de corrent continu i la direcció dels motors de corrent continu serà controlada per les ordres rebudes de l’aplicació per a Android. L'estat del robot es torna a enviar a l'aplicació Android. Aquest projecte també ajudarà a la interfície del mòdul Bluetooth HC-05 amb microcontroladors 8051. Ja hem utilitzat el mòdul Bluetooth per controlar electrodomèstics amb 8051.
Components necessaris:
- Microcontrolador 8051 (AT89S52)
- Mòdul Bluetooth HC-05
- Controlador de motor L293D
- Xassís de robot
- Motors de CC (2)
- Rodes (2)
- Roda de rodes
- Filferros de pont
- Aplicació per a Android del terminal Bluetooth
Esquema de connexions:


Microcontrolador 8051:
El microcontrolador 8051 és un microcontrolador de 8 bits que té 128 bytes de RAM del xip, 4K bytes de ROM del xip, dos temporitzadors, un port sèrie i quatre ports de 8 bits. El microcontrolador 8052 és una extensió del microcontrolador 8051. En aquest projecte estem utilitzant el microcontrolador AT89S52. La taula següent mostra la comparació de 8051 membres de la família.
|
Funció |
8051 |
8052 |
|
ROM (en bytes) |
4K |
8K |
|
RAM (bytes) |
128 |
256 |
|
Temporitzadors |
2 |
3 |
|
Pines d'E / S |
32 |
32 |
|
Port sèrie |
1 |
1 |
|
Interrompre fonts |
6 |
8 |
Mòdul Bluetooth HC-05:

HC-05 és un mòdul Bluetooth en sèrie. Es pot configurar mitjançant ordres AT. Pot funcionar en tres configuracions diferents (Master, Slave, Loop back). Al nostre projecte l’utilitzarem com a esclau. Les funcions del mòdul HC-05 inclouen:
- Sensibilitat típica de -80dBm.
- Velocitat de transmissió per defecte: 9600bps, 8 bits de dades, 1 bit d’aturada, sense paritat.
- Aparellament automàtic del codi pin: codi PIN predeterminat "1234"
- Té 6 pins.
- Els pins Vcc i Gnd s’utilitzen per alimentar l’HC-05.
- Els pins Tx i Rx s’utilitzen per comunicar-se amb el microcontrolador.
- Activeu el pin per activar el mòdul HC-05. quan està baix, el mòdul està desactivat
- L'indicador d'estat actua amb el pin d'estat Quan no està emparellat / connectat amb cap altre dispositiu Bluetooth, el LED parpelleja contínuament. Quan està connectat / emparellat amb qualsevol altre dispositiu Bluetooth, el LED parpelleja amb un retard constant de 2 segons.
IC del controlador de motor L293D:
L293D és un IC de controlador de motor de pont H doble. Això actua com un amplificador de corrent, la sortida de L293D condueix els motors DC. Conté dos circuits de pont H incorporats. En mode de funcionament comú, pot accionar simultàniament dos motors de corrent continu en ambdues direccions. A la taula següent es mostra la descripció del pin del L293D IC. Aquí teniu alguns projectes que fan servir el controlador de motor L293D.


Descripció del pin
|
Pin núm. |
Nom |
Funció |
|
1 |
Activa 1,2 |
Activa el pin del motor 1 |
|
2 |
Entrada 1 |
Entrada 1 per al motor 1 |
|
3 |
Sortida 1 |
Sortida 1 per al motor 1 |
|
4 |
Gnd |
Terra (0V) |
|
5 |
Gnd |
Terra (0V) |
|
6 |
Sortida 2 |
Sortida 2 per al motor 1 |
|
7 |
Entrada 2 |
Entrada 2 per al motor 1 |
|
8 |
Vcc 2 |
Tensió d'alimentació per a motors (5V) |
|
9 |
Activa 3,4 |
Activa el pin del motor 1 |
|
10 |
Entrada 3 |
Entrada 1 per al motor 2 |
|
11 |
Sortida 4 |
Sortida 1 per al motor 2 |
|
12 |
Gnd |
Terra (0V) |
|
13 |
Gnd |
Terra (0V) |
|
14 |
Sortida 4 |
Sortida 2 per al motor 2 |
|
15 |
Entrada 4 |
Entrada 2 per al motor 2 |
|
16 |
Vcc 1 |
Tensió d'alimentació (5V) |
Funcionament del robot controlat per telèfon Android:
En aquest robot controlat per telèfon intel·ligent, l'usuari de l'aplicació per a Android envia les dades al microcontrolador 8051 mitjançant el mòdul HC-05. Les dades rebudes es comparen amb el microcontrolador 8051 i la decisió es pren en conseqüència. La taula següent mostra la direcció dels motors i l’estat del robot per als diferents caràcters rebuts.
|
Personatge rebut |
Motor 1 |
Motor 2 |
Estat del robot |
|
f |
Endavant |
Endavant |
Avança |
|
b |
Cap enrere |
Cap enrere |
Es mou cap enrere |
|
r |
Endavant |
Cap enrere |
Es mou cap a la dreta |
|
l |
Cap enrere |
Endavant |
Es mou cap a l'esquerra |
|
s |
Desactivat |
Desactivat |
Aturat |

L’ aplicació del terminal Bluetooth ens permet emular un terminal Bluetooth. Aquesta aplicació admet la comunicació bidireccional i aquesta aplicació és compatible amb la majoria dels dispositius.
Els passos següents mostren com instal·lar i utilitzar aquesta aplicació.
1. Descarregueu i instal·leu l'aplicació del terminal Bluetooth al vostre telèfon Android. L'aplicació es pot descarregar des de l'enllaç següent.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Després d’instal·lar l’aplicació, obriu-la i activeu el Bluetooth.
3. Seleccioneu el dispositiu i feu clic a l'opció de connexió. Després de la connexió correcta, podem començar a enviar dades al mòdul HC-05.


Consulteu l'explicació del codi següent per veure com el caràcter és enviat i rebut pel microcontrolador 8051 per girar els motors necessaris.
Explicació del codi:
El programa complet C i el vídeo de demostració d’aquest projecte es donen al final d’aquest projecte. El codi es divideix en petits trossos significatius i s’explica a continuació.
Per a la interfície L293D amb microcontroladors 8051, hem de definir els pins on es connecta L293D al microcontrolador 8051. El pin 1 del motor 1 està connectat a P2.0, el pin 2 del motor 1 està connectat a P2.1, el pin 1 del motor 2 està connectat a P2.2, el pin 2 del motor 2 està connectat a P2.3
sbit m1f = P2 ^ 0; // in1 pin del motor1 sbit m1b = P2 ^ 1; // in2 pin del motor1 sbit m2f = P2 ^ 2; // in1 pin del motor2 sbit m2b = P2 ^ 3; // in2 pin de motor2
A continuació, hem de definir algunes funcions que s'utilitzen al programa. La funció de retard s'utilitza per crear un retard de temps especificat. La funció Txdata s’utilitza per transmetre dades a través del port sèrie. La funció Rxdata s’utilitza per rebre dades des del port sèrie.
retard nul (int sense signar); // funció per crear delay char rxdata (void); // funció per rebre un caràcter a través del port sèrie de 8051 void txdata (caràcter sense signar); // funció per enviar un personatge a través del port sèrie de 8051
En aquesta part del codi configurarem el microcontrolador 8051 per a la comunicació en sèrie. El registre TMOD es carrega amb 0x20 per al temporitzador 1, mode 2 (recàrrega automàtica). El registre SCON es carrega amb 0x50 per a 8 bits de dades, 1 bit d'aturada i la recepció està activada. El registre TH1 es carrega amb 0xfd per a una velocitat de transmissió de 9600 bits per segon. TR1 = 1 s’utilitza per engegar el temporitzador.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; En aquesta part del codi, el caràcter retornat de la funció rxdata s'emmagatzema a la variable 's' per a un ús posterior.
s = rxdata (); // rebre dades de sèrie des del mòdul bluetooth hc-05
En aquesta part del codi, hem de comparar el caràcter rebut amb els caràcters preassignats per a diferents direccions. Si el caràcter rebut és 'f', el robot ha de moure's cap endavant. Això s’aconsegueix fent que els pins m1f, m2f siguin alts i els pins m1b, m2b siguin baixos. Un cop fet això, a continuació haurem d'enviar l'estat del robot a l'aplicació per a Android. Això es fa amb l'ajut de la funció txdata . Es repeteix el mateix procés per als diferents personatges rebuts i es pren la decisió en conseqüència. La taula 1 mostra diferents valors de m1f, m1b, m2f, m2b per a diferents direccions de moviment del robot.
if (s == 'f') // mou els dos motors en direcció endavant {m1f = 1; retard (1); m1b = 0; retard (1); m2f = 1; retard (1); m2b = 0; retard (1); for (i = 0; msg1! = '\ 0'; i ++) // enviar l'estat del robot a l'aplicació d'Android mitjançant bluetooth {txdata (msg1); }}
|
m1f |
m1b |
m2f |
m2b |
Rotació del motor 1 |
Rotació del motor 2 |
Estat del robot |
|
1 |
0 |
1 |
0 |
endavant |
endavant |
Avançant |
|
0 |
1 |
0 |
1 |
al revés |
al revés |
Retrocedint |
|
1 |
0 |
0 |
1 |
endavant |
al revés |
Avançant cap a la dreta |
|
0 |
1 |
1 |
0 |
al revés |
endavant |
Avançant cap a l’esquerra |
|
0 |
0 |
0 |
0 |
aturat |
aturat |
aturat |
És a dir, podeu girar el cotxe Robot en qualsevol direcció controlant els quatre motors mitjançant un microcontrolador 8051. Aquest robot també es pot controlar mitjançant DTMF amb 8051, si no teniu telèfon Android.
Consulteu també tots els projectes de robòtica aquí.
