- Nødvendige komponenter:
- Kredsløbsdiagram:
- 8051 Mikrocontroller:
- HC-05 Bluetooth-modul:
- L293D Motor Driver IC:
- Arbejde med Android-telefonstyret robot:
- Kode forklaring:
I dette projekt skal vi bygge en Android-telefonstyret robot ved hjælp af 8051 mikrokontrollere og Bluetooth-modul. Robotten er designet ved hjælp af jævnstrømsmotorer, og retningen af jævnstrømsmotorer styres af de kommandoer, der modtages fra Android-applikationen. Robotens status sendes tilbage til Android-appen. Dette projekt vil også hjælpe med grænsefladen mellem HC-05 Bluetooth-modul og 8051 mikrocontrollere. Vi har allerede brugt Bluetooth-modul til at styre husholdningsapparater med 8051.
Nødvendige komponenter:
- 8051 mikrokontroller (AT89S52)
- HC-05 Bluetooth-modul
- L293D motordriver
- Robotchassis
- DC-motorer (2)
- Hjul (2)
- Hjul
- Jumper ledninger
- Android-app til Bluetooth-terminal
Kredsløbsdiagram:
8051 Mikrocontroller:
8051 microcontroller er en 8-bit microcontroller, der har 128 byte på chip RAM, 4K byte på chip ROM, to timere, en seriel port og fire 8bit porte. 8052 microcontroller er en udvidelse af 8051 microcontroller. I dette projekt bruger vi AT89S52 mikrocontroller. Tabellen nedenfor viser sammenligningen af 8051 familiemedlemmer.
Funktion |
8051 |
8052 |
ROM (i byte) |
4K |
8 TUSINDE |
RAM (byte) |
128 |
256 |
Timere |
2 |
3 |
I / O-ben |
32 |
32 |
Serie Port |
1 |
1 |
Afbryd kilder |
6 |
8 |
HC-05 Bluetooth-modul:
HC-05 er et serielt Bluetooth-modul. Det kan konfigureres ved hjælp af AT-kommandoer. Det kan fungere i tre forskellige konfigurationer (Master, Slave, Loop back). I vores projekt bruger vi det som slave. Funktionerne i HC-05-modulet inkluderer,
- Typisk -80dBm følsomhed.
- Standard baudrate: 9600bps, 8 databits, 1 stopbit, ingen paritet.
- Automatisk parring af pin-kode: “1234” standard pinkode
- Den har 6 ben.
- Vcc og GND ben bruges til at forsyne HC-05.
- Tx- og Rx-ben bruges til at kommunikere med mikrocontrolleren.
- Aktivér pin til aktivering af HC-05-modulet. når det er lavt, er modulet deaktiveret
- Statusindikator for tilstandsnål. Når den ikke er parret / forbundet med nogen anden Bluetooth-enhed, blinker LED kontinuerligt. Når den er tilsluttet / parret med en hvilken som helst anden Bluetooth-enhed, blinker LED'en med den konstante forsinkelse på 2 sekunder.
L293D Motor Driver IC:
L293D er en dobbelt H-bro motor driver IC. Dette fungerer som en strømforstærker, output fra L293D driver DC-motorer. Den indeholder to indbyggede H-brokredsløb. I almindelig driftsform kan den køre to jævnstrømsmotorer samtidigt i begge retninger. Nedenstående tabel viser pinbeskrivelsen af L293D IC. Her er nogle projekter, der bruger L293D Motor Driver.
Pin Beskrivelse
Pin nr. |
Navn |
Fungere |
1 |
Aktivér 1,2 |
Aktivér pin til motor 1 |
2 |
Indgang 1 |
Indgang 1 til motor 1 |
3 |
Udgang 1 |
Udgang 1 til motor 1 |
4 |
Gnd |
Jord (0V) |
5 |
Gnd |
Jord (0V) |
6 |
Udgang 2 |
Udgang 2 til motor 1 |
7 |
Indgang 2 |
Indgang 2 til motor 1 |
8 |
Vcc 2 |
Forsyningsspænding til motorer (5V) |
9 |
Aktivér 3,4 |
Aktivér pin til motor 1 |
10 |
Indgang 3 |
Indgang 1 til motor 2 |
11 |
Udgang 4 |
Udgang 1 til motor 2 |
12 |
Gnd |
Jord (0V) |
13 |
Gnd |
Jord (0V) |
14 |
Udgang 4 |
Udgang 2 til motor 2 |
15 |
Indgang 4 |
Indgang 2 til motor 2 |
16 |
Vcc 1 |
Forsyningsspænding (5V) |
Arbejde med Android-telefonstyret robot:
I denne smarttelefonstyrede robot sender brugeren af Android-appen dataene til 8051-mikrocontroller via HC-05-modulet. De modtagne data sammenlignes i 8051 mikrokontroller, og beslutningen træffes i overensstemmelse hermed. Nedenstående tabel viser retningen af motorer og status for robotten for forskellige modtagne tegn.
Modtaget karakter |
Motor 1 |
Motor 2 |
Status for robot |
f |
Frem |
Frem |
Bevæger sig fremad |
b |
Baglæns |
Baglæns |
Bevæger sig bagud |
r |
Frem |
Baglæns |
Bevæger sig til højre |
l |
Baglæns |
Frem |
Flytter til venstre |
s |
Af |
Af |
Holdt op |
Den Bluetooth-terminal app giver os mulighed for at emulere en Bluetooth-terminal. Denne app understøtter tovejskommunikation, og denne app er kompatibel med de fleste enheder.
Trinene nedenfor viser, hvordan du installerer og bruger denne app.
1. Download og installer Bluetooth-terminalappen på din Android-telefon. Appen kan downloades fra nedenstående link.
play.google.com/store/apps/details?id=ptah.apps.bluetoothterminal
2. Efter installation af appen skal du åbne appen og tænde Bluetooth.
3. Vælg enheden, og klik på tilslutningsmulighed. Efter en vellykket forbindelse kan vi begynde at sende data til HC-05-modulet.
Tjek kodeforklaringen nedenfor for at se, hvordan tegnet sendes og modtages af 8051 Microcontroller for at rotere de krævede motorer.
Kode forklaring:
Det komplette C-program og demonstrationsvideo til dette projekt er givet i slutningen af dette projekt. Koden er opdelt i små meningsfulde bidder og forklaret nedenfor.
For L293D-grænseflade med 8051 mikrocontrollere skal vi definere ben, hvorpå L293D er forbundet til 8051 mikrokontroller. In1 pin af motor 1 er forbundet til P2.0, In2 pin af motor 1 er forbundet til P2.1, In1 pin af motor 2 er forbundet til P2.2, In2 pin af motor 2 er forbundet til P2.3
sbit m1f = P2 ^ 0; // in1 pin af motor1 sbit m1b = P2 ^ 1; // in2 stift af motor1 sbit m2f = P2 ^ 2; // in1 pin af motor2 sbit m2b = P2 ^ 3; // in2 stift af motor2
Dernæst skal vi definere nogle funktioner, der bruges i programmet. Delay- funktion bruges til at oprette specificeret tidsforsinkelse. Txdata- funktionen bruges til at overføre data gennem seriel port. Rxdata- funktionen bruges til at modtage data fra seriel port.
ugyldig forsinkelse (usigneret int); // funktion til oprettelse af forsinkelse char rxdata (ugyldig); // funktion til modtagelse af et tegn gennem seriel port på 8051 ugyldige txdata (usigneret tegn); // funktion til at sende et tegn gennem seriel port 8051
I denne del af koden skal vi konfigurere 8051 mikrocontroller til seriel kommunikation. TMOD-registeret er fyldt med 0x20 til timer 1, tilstand 2 (automatisk genindlæsning). SCON-registeret er indlæst med 0x50 til 8 databits, 1 stopbit og modtagelse aktiveret. TH1-registeret er indlæst med 0xfd for en baudhastighed på 9600 bits pr. Sekund. TR1 = 1 bruges til at starte timeren.
TMOD = 0x20; SCON = 0x50; TH1 = 0xfd; TR1 = 1; I denne del af koden er den returnerede karakter af rxdata- funktionen gemt i variablen 's' til videre brug.
s = rxdata (); // modtage serielle data fra hc-05 Bluetooth-modul
I denne del af koden skal vi sammenligne det modtagne tegn med forud tildelte tegn i forskellige retninger. Hvis den modtagne karakter er 'f', skal robotten bevæge sig fremad. Dette opnås ved at gøre m1f, m2f stifter høje og m1b, m2b stifter lave. Når dette er gjort, skal vi derefter sende robotstatus til Android-app. Dette gøres ved hjælp af txdata- funktionen. Den samme proces gentages for forskellige modtagne tegn, og beslutningen træffes i overensstemmelse hermed. Tabel 1 viser forskellige værdier for m1f, m1b, m2f, m2b for forskellige bevægelsesretninger for robotten.
hvis (s == 'f') // bevæger begge motorerne fremad {m1f = 1; forsinkelse (1); m1b = 0; forsinkelse (1); m2f = 1; forsinkelse (1); m2b = 0; forsinkelse (1); til (i = 0; msg1! = '\ 0'; i ++) // send status for robotten til android-appen via bluetooth {txdata (msg1); }}
m1f |
m1b |
m2f |
m2b |
Motor 1 rotation |
Motor 2 rotation |
Status for robot |
1 |
0 |
1 |
0 |
frem |
frem |
Bevæger sig fremad |
0 |
1 |
0 |
1 |
baglæns |
baglæns |
Bevæger sig bagud |
1 |
0 |
0 |
1 |
frem |
baglæns |
Flytter til højre |
0 |
1 |
1 |
0 |
baglæns |
frem |
Flytter til venstre |
0 |
0 |
0 |
0 |
holdt op |
holdt op |
holdt op |
Dette er, at du kan rotere robotbilen i alle retninger ved at kontrollere de fire motorer ved hjælp af 8051 mikrokontroller. Denne robot kan også styres ved hjælp af DTMF med 8051, hvis du ikke har en Android-telefon.
Tjek også alle Robotics-projekter her.