Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:alazar:chirumobilul [2021/06/03 00:43]
catalin.chiru [Concluzii]
pm:prj2021:alazar:chirumobilul [2021/06/03 13:47] (current)
catalin.chiru [Bibliografie/Resurse]
Line 7: Line 7:
  
 ===== Descriere generala ===== ===== Descriere generala =====
-Mașinuța se deplasează cu ajutorul a două motoare. Acestea sunt acționate de către semnale primite de la un board de senzori ce detectează intensitatea ​reflecției ​infraroșu. Dacă senzorii sunt paraleli cu linia, cele 2 motoare vor avea aceeași viteză și mașinuța se va deplasa frontal. Cu cât senzorii se îndepărtează de line, variază diferența de rotație, iar mobilul virează. Mai mult decât atât, mașinuța este dotată cu un modul Bluetooth Master/​Slave controlabil de către telefonul mobil. Prin intermediul Bluetooth se setează stările de funcționare ale mașinuței "​ON"/"​OFF",​ "​FORWARD"/"​BACKWARD"​(direcția de deplasare a mașinuței) și "​LEFT",​ "​RIGHT",​ "​ACCELERATION",​ "​START",​ "​BRAKE",​ "​STOP"​ pentru modul de control teleghidat (când mașinuța nu face linetracking).+Mașinuța se deplasează cu ajutorul a două motoare. Acestea sunt acționate de către semnale primite de la un board de senzori ce detectează intensitatea ​reflexiei ​infraroșu. Dacă senzorii sunt paraleli cu linia, cele 2 motoare vor avea aceeași viteză și mașinuța se va deplasa frontal. Cu cât senzorii se îndepărtează de line, variază diferența de rotație, iar mobilul virează. Mai mult decât atât, mașinuța este dotată cu un modul Bluetooth Master/​Slave controlabil de către telefonul mobil. Prin intermediul Bluetooth se setează stările de funcționare ale mașinuței "​ON"/"​OFF",​ "​FORWARD"/"​BACKWARD"​(direcția de deplasare a mașinuței) și "​LEFT",​ "​RIGHT",​ "​ACCELERATION",​ "​START",​ "​BRAKE",​ "​STOP"​ pentru modul de control teleghidat (când mașinuța nu face linetracking).
  
 ==== Schema Bloc ==== ==== Schema Bloc ====
Line 28: Line 28:
   * cabluri/​fire de legatura   * cabluri/​fire de legatura
   * 1 x Kit Robot cu 2 Motoare   * 1 x Kit Robot cu 2 Motoare
-  * 1 x Modul cu Driver de Motoare Dual L298N+  * 1 x Modul cu Driver de Motoare Dual L298N (Ar fi fost mult mai util și bun un Driver Dual TB6612FNG. Suportă voltaje mai mari și are eficiență mult mai bună decât L298N)
   * 1 x Modul senzor urmărire linie   * 1 x Modul senzor urmărire linie
   * 2 x Modul infraroșu urmărire linie   * 2 x Modul infraroșu urmărire linie
Line 43: Line 43:
 Am împărțit logica codului în 3 mari chunckuri: logica motoarelor, a senzorilor IR și a modulului Bluetooth. Am împărțit logica codului în 3 mari chunckuri: logica motoarelor, a senzorilor IR și a modulului Bluetooth.
  
 +Detalii referitoare la implementare se găsesc în fișierul "​.ino"​
  
-Codul final este acesta:+Codul final este acesta: ​{{:​pm:​prj2021:​alazar:​arduino_chirumobilul.rar}}
  
 Mai mult decât atât, am scris cu ajutorul MIT App Inventor o aplicație în Android pentru controlul Bluetooth al mașinuței:​ Mai mult decât atât, am scris cu ajutorul MIT App Inventor o aplicație în Android pentru controlul Bluetooth al mașinuței:​
Line 60: Line 61:
 Adevăratul Chirumobil de la care a pornit toată acțiunea (să sperăm că Arduinoul nu va avea aceeași soartă în trafic :D) Adevăratul Chirumobil de la care a pornit toată acțiunea (să sperăm că Arduinoul nu va avea aceeași soartă în trafic :D)
  
-{{:​pm:​prj2021:​alazar:​real_chiumobil.jpeg}}+{{:​pm:​prj2021:​alazar:​real_chirumobil.jpeg}}
  
 === Arduino === === Arduino ===
Line 79: Line 80:
 Dificultăți:​ Dificultăți:​
   * Am avut probleme cu debuggingul după conectarea HC05 din cauză că utiliza monitorul serial   * Am avut probleme cu debuggingul după conectarea HC05 din cauză că utiliza monitorul serial
-  * Am constatat că motoarele deși comandate ​împreună din același ​loc oferă ​tensiuni foarte diferite ​spre 0 (a fost nevoie de offset pe o roată)+  * Am constatat că motoarele deși comandate ​cu același ​PWM primesc ​tensiuni foarte diferite, decalaj ce crește pe măsură ce ne apropiem de PWMul de Stall al motorului mai slab (a fost nevoie de offset pe o roată)
   * La un moment dat conexiunea cu aplicația nu era făcută corect și trimiteam niște biți în afara comenzilor necesare, lucru care producea comportamente neașteptate în Arduino   * La un moment dat conexiunea cu aplicația nu era făcută corect și trimiteam niște biți în afara comenzilor necesare, lucru care producea comportamente neașteptate în Arduino
   * Reglajul senzorilor de IR s-a dovedit foarte laborios (mai multe la dificultăți zilele 3-5)   * Reglajul senzorilor de IR s-a dovedit foarte laborios (mai multe la dificultăți zilele 3-5)
  
 În ultimele 3 zile de proiect am tot făcut fine-tuning la partea de motoare/​senzori. Am schimbat alimentarea de pe 5 pe 7 volți (fapt ce permitea o viteză mai mare, dar inacuratețe și mai mare între cele 2 motoare) fiindcă mi s-a părut că mașinuța se mișcă mult prea încet. S-a dovedit dificil de manevrat pentru putere prea mare, ieșea imediat din traseu. Am încercat să aduc senzorii mai aproape de sol, să le fac o margine pentru a capta interferențe mai mici din exterior (din cauza marginii începuse să se reflecte lumina în interiorul camerei formate și să nu se comporte corespunzător). Am încercat să schimb logica programului,​ să încerc să virez spre margini rapid, să încerc să țin centrul lent. În ultimele 3 zile de proiect am tot făcut fine-tuning la partea de motoare/​senzori. Am schimbat alimentarea de pe 5 pe 7 volți (fapt ce permitea o viteză mai mare, dar inacuratețe și mai mare între cele 2 motoare) fiindcă mi s-a părut că mașinuța se mișcă mult prea încet. S-a dovedit dificil de manevrat pentru putere prea mare, ieșea imediat din traseu. Am încercat să aduc senzorii mai aproape de sol, să le fac o margine pentru a capta interferențe mai mici din exterior (din cauza marginii începuse să se reflecte lumina în interiorul camerei formate și să nu se comporte corespunzător). Am încercat să schimb logica programului,​ să încerc să virez spre margini rapid, să încerc să țin centrul lent.
 +
 +Printre altele am pus elastice pe roți pentru a crește aderența (mașinuța patina din cauza suprafeței de pe jos) și am uns rotița directoare din spate, pe care am dat-o și cu silicon (rămânea blocată într-o poziție și influența deplasarea atât pe linetracking cât și pe modul Bluetooth).
 +
 Până la urmă soluția a fost să dublez banda traseului și de aici nu am mai avut probleme foarte mari. Până la urmă soluția a fost să dublez banda traseului și de aici nu am mai avut probleme foarte mari.
 Din punct de vedere al logicii, soluționarea virajelor a fost să acționez asemenea unei bărci (tankLeft, tankRight înaintează cu roata corespunzătoare,​ în timp ce roata opusă ​ merge spre spate pentru a accentua virajul). Astfel am ajuns să baleez și avansul să se facă considerabil când prinde porțiuni de drum drept. Din punct de vedere al logicii, soluționarea virajelor a fost să acționez asemenea unei bărci (tankLeft, tankRight înaintează cu roata corespunzătoare,​ în timp ce roata opusă ​ merge spre spate pentru a accentua virajul). Astfel am ajuns să baleez și avansul să se facă considerabil când prinde porțiuni de drum drept.
Line 99: Line 103:
  
 ==== Bibliografie/​Resurse ==== ==== Bibliografie/​Resurse ====
-{{pm_prj2021_alazar_chirumobilul_cs_open_courseware_.pdf|}}+Click {{:​pm:​prj2021:​alazar:​chirumobilul_cs_open_courseware_.pdf|aici}} pentru descarcarea PDF a paginii curente. 
 + 
 +<note important>​{{:​pm:​prj2021:​alazar:​arduino_chirumobilul.rar|Arhiva cu codul sursa}}</​note>​ 
 + 
 +=== Resurse Hardware === 
 +https://​www.optimusdigital.ro/​ro/​robotica-kit-uri-de-roboti/​140-kit-robot-2-motoare.html?​search_query=Kit+Robot+cu+2+Motoare+&​results=33 
 + 
 +https://​www.optimusdigital.ro/​ro/​drivere-de-motoare-cu-perii/​145-driver-de-motoare-dual-l298n.html 
 + 
 +https://​www.optimusdigital.ro/​ro/​wireless-bluetooth/​153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html 
 + 
 +https://​www.aliexpress.com/​item/​32820520007.html?​spm=a2g0o.productlist.0.0.481b6ee278HJWi&​algo_pvid=2005f2f3-c8ee-4ca3-a345-4b95141e3019&​algo_expid=2005f2f3-c8ee-4ca3-a345-4b95141e3019-29&​btsid=0bb0624016226663312872922eb0aa&​ws_ab_test=searchweb0_0,​searchweb201602_,​searchweb201603_ 
 + 
 +https://​www.aliexpress.com/​item/​1005001510625500.html?​spm=a2g0o.productlist.0.0.2dc538d7BKYekr&​algo_pvid=null&​algo_expid=null&​btsid=0bb0623316226664003957144e8fe9&​ws_ab_test=searchweb0_0,​searchweb201602_,​searchweb201603_ 
 + 
 +https://​www.aliexpress.com/​item/​4000042886005.html  
 + 
 +=== Resurse Software=== 
 +https://​www.youtube.com/​watch?​v=t7k9D1jDEtk&​t=30s 
 + 
 +https://​www.youtube.com/​watch?​v=wbrt2ClgZik 
 + 
 +https://​www.youtube.com/​watch?​v=dyjo_ggEtVU 
 + 
 +https://​roboindia.com/​tutorials/​sending-receiving-with-hc05-mit-app-inventor/​ 
 + 
 +https://​www.electroniclinic.com/​mit-app-inventor-arduino-bluetooth-application-making-explained/​
  
 +https://​dronebotworkshop.com/​dc-motors-l298n-h-bridge/​
  
 +https://​www.instructables.com/​Setting-Up-Bluetooth-HC-05-With-Arduino/​
pm/prj2021/alazar/chirumobilul.1622670237.txt.gz · Last modified: 2021/06/03 00:43 by catalin.chiru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0