This shows you the differences between two versions of the page.
pm:prj2023:vstoica:hovercraft [2023/05/18 16:34] vlad.novetschi [Hardware Design] |
pm:prj2023:vstoica:hovercraft [2023/05/28 01:51] (current) vlad.novetschi |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Hovercraft ====== | + | ====== Novetschi Vlad - Bluetooth Boat====== |
===== Introducere ===== | ===== Introducere ===== | ||
Line 31: | Line 31: | ||
- | {{:pm:prj2023:vstoica:untitled_sketch_bb.png?700|}} | + | {{:pm:prj2023:vstoica:schemanove.png?600|}} |
Line 40: | Line 40: | ||
<note tip> | <note tip> | ||
- | - Mediu de dezvoltare: Arduino IDE | + | Mediu de dezvoltare: Arduino IDE, Processing |
- | - Biblioteci utilizate: SoftwareSerial (pentru comunicarea Bluetooth) | + | |
- | - Algoritmi și structuri: controlul direcției și vitezei prin comenzi Bluetooth, | + | Software-ul care controlează barca constă dintr-un script Arduino și un schiță Processing. |
- | - eventual control control PID pentru reglarea vitezei ventilatoarelor. | + | |
+ | - Script Arduino: Scriptul Arduino rulează pe barca RC, citind comenzi de pe portul serial (prin bluetooth). | ||
+ | Acest script citește un caracter de comandă, urmat de o singură cifră (0-9) și ajustează viteza și direcția motoarelor bărcii în funcție de comandă (folosind PWM). Caracterul de comandă determină ce acțiune să se ia. | ||
+ | Comenzile sunt: | ||
+ | |||
+ | * 'C': Verifica starea sistemului. Răspunde cu "OK". | ||
+ | * 'V': Verifica tensiunea. Răspunde cu o citire analogică (ADC) de la A0. | ||
+ | * 'B': Controlează starea LED-ului. Dacă valoarea este 0, LED-ul este oprit, iar dacă valoarea este 1, LED-ul este pornit. | ||
+ | * 'W': Controlează mișcarea înainte. Viteza motorului este proporțională cu valoarea primită (9-valoare). | ||
+ | * 'Q', 'E', 'A', 'D': Controlează motoarele stânga și dreapta pentru viraj și mișcare înapoi. | ||
+ | * 'S': Opriți toate motoarele. | ||
+ | |||
+ | |||
+ | - Schiță Processing (Java): Acest script rulează pe un calculator, primind intrări de la un controler Xbox și trimițând comenzi la Arduino prin comunicația serială pe bluetooth. | ||
+ | Intrările de la controlerul Xbox sunt: | ||
+ | |||
+ | Triggerele LT, RT: controlează viteza bărcii. | ||
+ | Axa orizontala a joystick-ului din stânga: controlează direcția bărcii. | ||
+ | Butonul 'A': Activează / dezactivează ventilatorul principal de la bord. | ||
+ | Butonul 'B': Blocheaza / deblocheaza ventilatorul principal. | ||
+ | Butonul 'X': Solicită tensiunea de la Arduino (pentru monitorizarea bateriei). | ||
+ | Acest script utilizează biblioteca Game Control Plus pentru a citi intrările de la controlerul Xbox. | ||
+ | |||
+ | valorile citite de la controller sunt afisate grafic si utilizate pentru a calcula viteza si directia motoarelor astfle incat sa efectueze cat mai rapid actiunea dorita (ex: un viraj stanga va porni motorul din dreapta inainte si motorul din stanga inapoi, provocant o intoarcere pe loc) | ||
+ | |||
+ | directia si puterea motoarelor este afisata si pe ecran prin 2 bare verticale a caror lungime este proportionala cu viteza motoarelor. | ||
+ | |||
+ | Nivelul de tensiune este de asemenea afișat, oferind o citire în timp real a nivelurilor bateriei bărcii. | ||
+ | |||
+ | Scipt-ul va trimite comenzi doar atunci cand utilizatorul schimba starea unui buton sau joystick... obtinandu-se astfel o utilizare eficienta a | ||
+ | canalului de comunicatie. | ||
+ | |||
+ | În acest fel, controlerul Xbox poate fi folosit pentru a controla în mod wireless viteza și direcția bărcii RC, monitorizând în același timp nivelurile bateriei și starea sistemului în timp real. | ||
+ | | ||
</note> | </note> | ||
Line 49: | Line 82: | ||
<note tip> | <note tip> | ||
- | - | + | |
+ | <html> | ||
+ | <iframe width="560" height="315" src="https://www.youtube.com/embed/jy0aaqhc-HA?start=5" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | ||
+ | </html> | ||
+ | <html> | ||
+ | <iframe width="560" height="315" src="https://www.youtube.com/embed/1YsrXMcKIQg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | ||
+ | </html> | ||
+ | <html> | ||
+ | <iframe width="560" height="315" src="https://www.youtube.com/embed/29YRvWEkizg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> | ||
+ | </html> | ||
+ | |||
+ | {{:pm:prj2023:vstoica:20230514_015322.jpg?200|}} | ||
+ | {{:pm:prj2023:vstoica:20230520_141300.jpg?200|}} | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Proiectul a fost o experiență de învățare valoroasă, care m-a ajutat să îmbunătățesc abilitățile mele în programarea microcontrolerelor Arduino și să înțeleg mai bine comunicarea Bluetooth. De asemenea, a fost o oportunitate excelentă pentru a învăța despre designul hardware și cum să integrez diverse componente împreună într-un dispozitiv funcțional. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note> |
- | - | + | {{:pm:prj2023:vstoica:boatarduino.zip|}} |
- | </note> | + | |
- | + | ||
- | ===== Jurnal ===== | + | |
- | + | ||
- | <note tip> | + | |
- | - | + | |
</note> | </note> | ||
Line 69: | Line 110: | ||
<note> | <note> | ||
- | - | + | https://howtomechatronics.com/tutorials/arduino/arduino-and-hc-05-bluetooth-module-tutorial/ |
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||