This is an old revision of the document!
Masina este controlata printr-o aplicatie de pe telefon
Scopul proiectului este lucrul cu motorase cat si introducerea in Arduino
Idee de pornire este data de numeroasele masini controlate pe telecomanda de pe piata
Masinuta este utila deoarece te introduce in Arduino, te invata cum poti sa imbini hardware cu software
Driverul de motor, comunica cu cele 4 motoare
Pentru ca un driver de motor poate sa controleze doar 2 motoare, motoarele sunt grupate 2 cate 2 in paralel
Arduino comunica si cu modulul de bluetooth HC05, pentru a putea lega prin cod telefonul la masina
Arduino primeste si 6 leduri, ce reprezinta luminile din spate si cele din fata ale masinii. Cele din spate sunt rosii, cele din fata albe
Tot sistemul este legat printr-o singura baterie de 9v, ce asigura un voltaj minim necesar. Recomandat: 12V, tensiune formata din baterii de 8 * 1.5V legate in serie.
Acesta este incarcat prin mufa de pe arduino, si se incarca atunci cand sistemul nu este conectat la baterie.
Indicat / Necesar, scoase cablurile de alimentare de pe arduino (Vin si cele de 5V, 3.3V daca exista) de pe Arduino atunci cand se realizeaza incarcarea.
Serial.begin(9600);
Codul urmator se executa in loop() si serveste la primirea comenzilor via Bluetooth:
char comanda; if (Serial.available() > 0) { comanda = Serial.read(); if (comanda == '1') { ... // actiune dorita } }
Daca se primeste un caracter precum: '1', codul verifica cu un if ce se intampla in acel caz, de exemplu in cod masina merge inainte. Masina cum merge in 4 directii diferite, va verifica 4 caractere iar in fiecare caz va decide ce sa faca.
Exemplu: Atunci cand se vireaza stanga, se pornesc led-urile stanga iar motoarele de pe partea dreapta primesc comanda sa porneasca ceea ce genereaza miscarea in partea stanga.
In functia setup() se seteaza si toti pinii de care este nevoie pentru folosirea motoarelor cat si a luminilor.
In functia setup() se seteaza bitii de control (de tip PWM):
pinMode(5, OUTPUT); pinMode(11, OUTPUT);
Pentru deplasarea inainte se foloseste (in loop() ) urmatorul cod:
digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(12, HIGH); digitalWrite(13, LOW);
Pentru punerea in miscare a motoarele este nevoie de 4 pini de curent de pe Arduino (7, 8, 12, 13), setati LOW si HIGH. Cat si a inca 2 pini de control (5, 11) de tip PWM, ce sunt folositi de driverul de motor L298N.
Similar pentru deplasarea inapoi se inverseaza polaritatea bitilor de curent:
digitalWrite(7, LOW); digitalWrite(8, HIGH); digitalWrite(12, LOW); digitalWrite(13, HIGH);
Pentru deplasare stanga:
digitalWrite(7, LOW); digitalWrite(8, HIGH); digitalWrite(12, LOW); digitalWrite(13, LOW);
Pentru deplasare dreapta:
digitalWrite(7, LOW); digitalWrite(8, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH);
Pentru setarea vitezei in setup(): Putere maxima: 255 Putere minima: 120 Putere recomandata: 210
255 reprezinta 1 logic
analogWrite(5, 210); analogWrite(11, 210);
Asamblarea componentelor a fost distractiva. Mai ales ca am putut sa leg pentru prima data hardware-ul de software. Din acest proiect inveti ca ai nevoie de baterii pe masura pentru proiect, nu sunt doar niste volti pe ecran sunt o necesitate, mai ales cand adaugi 4 motoare, un modul bluetooth, multe lumini iar la final speri sa se si miste mai mult de 2 minute.
03/05/2022 - Proiect adus de pe pagina de wiki pe ocw
04/05/2022 - Incarcare videoclip demo + cod proiect
04/05/2022 - Adaugare informatii despre partea software
https://www.youtube.com/watch?v=aQcJ4uHdQEA&t=326s&ab_channel=BINARYUPDATES https://ocw.cs.pub.ro/courses/pm/lab/lab1-2022
Resurse Hardware