This shows you the differences between two versions of the page.
pm:prj2023:alexau:remote-car [2023/05/07 14:40] mihai_teodor.piele created |
pm:prj2023:alexau:remote-car [2023/05/30 17:53] (current) mihai_teodor.piele [Rezultate Obţinute] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Nume proiect ====== | + | ====== Barca cu telecomanda ====== |
===== Introducere ===== | ===== Introducere ===== | ||
<note tip> | <note tip> | ||
- | Am ales sa fac o masina cu telecomanda pentru ca de mic am fost pasionat de ele, iar cursul de PM mi-a oferit oportunitatea sa imi creez eu una. | + | Am ales sa fac o barca cu telecomanda pentru ca de mic am fost pasionat de ele, iar cursul de PM mi-a oferit oportunitatea sa imi creez eu una. |
- | Masinuta va fi controlata prin Bluetooth. Aceasta va avea un sistem de directie actionat de un motor, propulsia va fi actionata de asemenea cu un motor. Inca nu m-am hotarat dar tind sa merg si spre implementarea unor faruri care vor fi pornite tot prin Bluetooth. | + | Barca va fi controlata prin infra-rosu. Aceasta va avea un sistem de directie actionat de un motor, propulsia va fi actionata de asemenea cu alte doua motoare. Inca nu m-am hotarat dar tind sa merg si spre implementarea unor faruri care vor fi pornite tot prin infra-rosu. |
</note> | </note> | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 16: | Line 16: | ||
<note tip> | <note tip> | ||
- | {{:pm:prj2023:alexau:documentatie_pm.png?nolink&200|}} | + | {{:pm:prj2023:alexau:documentatie_pm.png?nolink&300|}} |
+ | |||
+ | Lista componente: | ||
+ | * Unordered List Item | ||
+ | * Arduino UNO; | ||
+ | * Modul driver motoare L298N; | ||
+ | * Modul Bluetooth; | ||
+ | * ON/OFF switch (pt a porni/opri masinuta inca ma gandesc pt asta); | ||
+ | * rezistente; | ||
+ | * cabluri; | ||
+ | * 2x motoare DC; | ||
+ | * 2x sau 4x RGB Led (inca nu-s sigur); | ||
+ | * Diferite componente pt constructie: carbon, roti dintate etc. | ||
</note> | </note> | ||
Line 28: | Line 40: | ||
* algoritmi şi structuri pe care plănuiţi să le implementaţi | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
* (etapa 3) surse şi funcţii implementate | * (etapa 3) surse şi funcţii implementate | ||
+ | |||
+ | |||
+ | * Codul care animeaza proiectul a fost scris in Arduino IDE. | ||
+ | * Pentru controlarea barcii se foloseste o telecomanda cu IR. | ||
+ | * Proiectul este compatibil si cu HC-05 Bluetooth (asa trebuia facut initial, dar mi s-a ars modulul Bluetooth). | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Biblioteci folosite: | ||
+ | * Arduino.h -> folosit pentru a importa functionalitatile de baza ale Arduino-ului. | ||
+ | * Servo.h -> folosit pentru a actiona servo motorul. | ||
+ | * IRremote.h -> folosit pentru a interactiona cu modulul IR si a capta datele primite. | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | Cod: | ||
+ | |||
+ | <code cpp>#include <Arduino.h> | ||
+ | #include <IRremote.h> | ||
+ | #include <Servo.h> | ||
+ | |||
+ | IRrecv IR(3); | ||
+ | Servo myservo; | ||
+ | // pinii motoarelor | ||
+ | int moto1 = 4; | ||
+ | int moto2 = 5; | ||
+ | int moto11 = 6; | ||
+ | int moto22 = 7; | ||
+ | // pinul pentru becuri | ||
+ | int bec = 13; | ||
+ | // pozitia initiala a carmei, pt a merge stanga/dreapta | ||
+ | int pos = 90; | ||
+ | |||
+ | void setup() { | ||
+ | IR.enableIRIn(); | ||
+ | // pentru a controla componentele setez pinii placutei ca output | ||
+ | pinMode(bec, OUTPUT); | ||
+ | pinMode(moto1, OUTPUT); | ||
+ | pinMode(moto2, OUTPUT); | ||
+ | pinMode(moto11, OUTPUT); | ||
+ | pinMode(moto22, OUTPUT); | ||
+ | myservo.attach(9); | ||
+ | Serial.begin(9600); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | if(IR.decode()) | ||
+ | { // citesc informatia de la modul IR si in functie de comanda, fac o actiune | ||
+ | Serial.println(IR.decodedIRData.decodedRawData,HEX); | ||
+ | if(IR.decodedIRData.decodedRawData == 0xEA15FF00) | ||
+ | { // aprind bec | ||
+ | digitalWrite(bec, HIGH); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xF807FF00) | ||
+ | { // sting bec | ||
+ | digitalWrite(bec, LOW); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xE718FF00) | ||
+ | { // merg fata | ||
+ | digitalWrite(moto1, HIGH); | ||
+ | digitalWrite(moto2, LOW); | ||
+ | digitalWrite(moto11, LOW); | ||
+ | digitalWrite(moto22, HIGH); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xAD52FF00) | ||
+ | { //merg spate | ||
+ | digitalWrite(moto1, LOW); | ||
+ | digitalWrite(moto2, HIGH); | ||
+ | digitalWrite(moto11, HIGH); | ||
+ | digitalWrite(moto22, LOW); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xE31CFF00) | ||
+ | { //opresc tot | ||
+ | digitalWrite(moto1, LOW); | ||
+ | digitalWrite(moto2, LOW); | ||
+ | digitalWrite(moto11, LOW); | ||
+ | digitalWrite(moto22, LOW); | ||
+ | //readuc carma la pozitia de inainte | ||
+ | myservo.write(90); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xF708FF00) | ||
+ | { // cotesc stanga | ||
+ | myservo.write(25); | ||
+ | } | ||
+ | |||
+ | if(IR.decodedIRData.decodedRawData == 0xA55AFF00) | ||
+ | { // cotesc dreapta | ||
+ | myservo.write(145); | ||
+ | } | ||
+ | //delay la citirea comenzilor de la IR | ||
+ | delay(1500); | ||
+ | IR.resume(); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
</note> | </note> | ||
Line 33: | Line 149: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
+ | |||
+ | |||
+ | Demo: | ||
+ | * https://imgur.com/b8VoxXf | ||
+ | |||
+ | {{:pm:prj2023:alexau:b1.jpeg?nolink&300|}} | ||
+ | {{:pm:prj2023:alexau:b2.jpeg?nolink&300|}} | ||
+ | {{:pm:prj2023:alexau:b3.jpeg?nolink&300|}} | ||
+ | |||
</note> | </note> | ||