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> | ||