Differences

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

Link to this comparison view

pm:prj2023:iotelea:tesla-2 [2023/05/28 02:32]
matei.trandafir [Hardware Design]
pm:prj2023:iotelea:tesla-2 [2023/05/30 18:20] (current)
matei.trandafir [Tesla 2]
Line 1: Line 1:
 ====== Tesla 2 ====== ====== Tesla 2 ======
 +//Trandafir Matei-Paul, 336CB//
 ===== Introducere ===== ===== Introducere =====
 +
 +{{ :​pm:​prj2023:​iotelea:​tesla2-logo.png?​500 |}}
  
 Proiectul reprezinta o varianta foarte simplificata,​ in miniatura, a unei masini, cu functionalite de evitare a accidentelor,​ fie prin franare, fie prin viraj. Masina este controlata prin Bluetooth, folosind o aplicatie mobila, insa are si optiunea de "​autopilot"​. In acest mod, masinii i se stabileste o directie/​ruta de urmat, pe care va incerca apoi sa o urmeze, ocolind toate obstacolele pe care le intalneste. Proiectul reprezinta o varianta foarte simplificata,​ in miniatura, a unei masini, cu functionalite de evitare a accidentelor,​ fie prin franare, fie prin viraj. Masina este controlata prin Bluetooth, folosind o aplicatie mobila, insa are si optiunea de "​autopilot"​. In acest mod, masinii i se stabileste o directie/​ruta de urmat, pe care va incerca apoi sa o urmeze, ocolind toate obstacolele pe care le intalneste.
Line 26: Line 29:
   * [[https://​www.optimusdigital.ro/​en/​lcds/​2894-1602-lcd-with-i2c-interface-and-blue-backlight.html|LCD cu interfata I2C]]   * [[https://​www.optimusdigital.ro/​en/​lcds/​2894-1602-lcd-with-i2c-interface-and-blue-backlight.html|LCD cu interfata I2C]]
   * [[https://​www.optimusdigital.ro/​en/​arduino-shields/​3434-a4990-dual-motor-driver-shield-for-arduino.html|Shield cu Driver de Motor Dual A4990]]   * [[https://​www.optimusdigital.ro/​en/​arduino-shields/​3434-a4990-dual-motor-driver-shield-for-arduino.html|Shield cu Driver de Motor Dual A4990]]
-  * [[https://​www.optimusdigital.ro/​en/​wireless-bluetooth/​153-hc-05-master-slave-bluetooth-module-with-adapter-33v-and-5v-compatible.html|Modul bluetooth HC-06]]+  * [[https://​www.optimusdigital.ro/​en/​wireless-bluetooth/​153-hc-05-master-slave-bluetooth-module-with-adapter-33v-and-5v-compatible.html|Modul bluetooth HC-05]]
   * [[https://​www.optimusdigital.ro/​en/​buzzers/​12247-3-v-or-33v-passive-buzzer.html|Passive Buzzer]]   * [[https://​www.optimusdigital.ro/​en/​buzzers/​12247-3-v-or-33v-passive-buzzer.html|Passive Buzzer]]
  
Line 39: Line 42:
 {{:​pm:​prj2023:​iotelea:​tesla2_3.jpg?​333|}} {{:​pm:​prj2023:​iotelea:​tesla2_4.jpg?​333|}} {{:​pm:​prj2023:​iotelea:​tesla2_3.jpg?​333|}} {{:​pm:​prj2023:​iotelea:​tesla2_4.jpg?​333|}}
  
-Din motive de spatiu si pozitionare a pieselor, pinii folositi nu sunt aceeasi cu cei din schema de mai sus. De asemenea, pinii HC-05 functioneaza la 3.3V, nu 5V, asa ca legatura HC-05 <-> Arduino este facuta cu un divizor de tensiune (un pin HC-05 este conectat la Arduino prin rezistor 1K si la GND prin rezistor 2K). Diferentele dintre schema de mai sus si hardware sunt urmatoarele:​+Din motive de spatiu si pozitionare a pieselor, pinii folositi nu sunt aceeasi cu cei din schema de mai sus. De asemenea, pinii HC-05 functioneaza la 3.3V, nu 5V, asa ca legatura HC-05 <-> Arduino este facuta cu un divizor de tensiune (un pin HC-05 este conectat la Arduino prin rezistor 1K si la GND prin rezistor 2K). Acest lucru nu este necesar la pinii de iesire ai modulului, deoarece Arduino inregistreaza 3.3V pe un pin digital ca 1 logic fara probleme. 
 + 
 +Diferentele dintre schema de mai sus si hardware sunt urmatoarele:​
   * KEY al HC-05 -> 4   * KEY al HC-05 -> 4
   * TRIG, ECHO ale HC-SR04 -> 12 respectiv 13   * TRIG, ECHO ale HC-SR04 -> 12 respectiv 13
Line 54: Line 59:
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-TODO +In repository, puteti gasi [[https://​github.com/​rChaoz/​tesla-2/​tree/​main/​OCW/​video|cateva videoclipuri]] care demonstreaza functionalitatea proiectului. Functionalitatile,​ in detaliu, sunt: 
-<note tip> +  * Masina controlabila de pe telefon (Bluetooth) - se face pairing din setarile telefonului,​ apoi se deschide aplicatia si se alege masina din lista 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+{{:​pm:​prj2023:​iotelea:​tesla2_1_1.png?200|}} {{:​pm:​prj2023:​iotelea:​tesla2_1_2.jpg?​500|}} 
 + 
 +  * Din UI, se poate controla masina cu cele 2 Joystick-uri,​ iar in partea de sus se observa distanta pana la obstacole. Se mai pot controla: sunetul (On/Off), Sweeping Mode (rotire senzor distanta constanta stanga-dreapta),​ toggle intre Auto-breaking si Obstacle avoidance (care este disponibil doar daca este activat si Sweeping mode, pentru a putea decide in ce directie sa vireze). 
 + 
 +{{:​pm:​prj2023:​iotelea:​tesla2_2_1.jpg?​700|}} 
 + 
 +  * Atunci cand masina se apropie de un obstacol, isi reduce automat viteza, proportional cu distanta pana la obstacol, pentru a evita lovirea. Simultan, masina emite beep-uri, pentru a semnala distanta pana la obstacol, similar unor senzori de parcare. Distanta pana la obstacole se poate vedea si pe aplicatia mobila. 
 +  * Daca "​obstacle avoidance"​ este activat, masina, pe langa cele de mai sus, va incerca sa ocoleasca obstacolele,​ prin viraj, inainte de a frana (daca nu este posibil, tot se va opri). Virajul se face pe acolo unde observa ca nu sunt obstacole. 
 +  * Autopilot - prin mentinerea Joystick-ului de viteza in pozitia inainte, masina va merge inainte, ocolind obstacolele,​ oprindu-se doar daca se blocheaza (e.g. colt), caz in care trebuie interventie manuala, deoarece nu va da automat cu spatele
  
 ===== Concluzii ===== ===== Concluzii =====
  
-TODO+In acest proiect, am invatat cum functioneaza comunicarea Bluetooth seriala, cum se pot comunica astfel date intre un microcontroller si un telefon, dar si multe altele despre motoare, timere, PWM si lipirea firelor/​pieselor. 
 + 
 +Unui din lucrurile pe care le-am invatat din acest proiect este cat de multe probleme neasteptate pot aparea in cadrul unor task-uri, chiar si simple: 
 +  * daca primele 3 librarii de LCD nu au mers, nu este LCD-ul stricat, ci a 4a va merge 
 +  * aparent, un fir de tip breadboard se poate rupe //in interiorul izolatiei//,​ invizibil din exterior, si sa faca apoi contact intermitent,​ ceea ce duce la foarte multe ore de depanare 
 +  * un senzorul de distanta stricat face un feedback-loop cu el insusi, indicand permanent 3-4cm, mai putin daca este pusa o bucata de scotch intre tranzmitator/​receptor 
 +  * 2 motoare identice, la aceeasi tensiune, se vor invarti la viteze diferite 
 +  * atunci cand modulul Bluetooth comunica cu Arduino prin UART, Arduino IDE se va bloca cand incearca sa faca upload, deoarece foloseste tot UART 
 +  * orice librarie foloseste timer 1, ceea ce duce la interferenta intre librarii; pentru orice librarie exista o varianta care foloseste timer 2 sau niciunul
  
 ===== Download ===== ===== Download =====
  
-TODO +Intreg proiectul se gaseste pe [[https://github.com/​rChaoz/​tesla-2|github]]De asemenea, aici sunt si arhive ale codului:
-<note warning>​ +
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:​prj20??:​c?​** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Codul sursa Arduino{{:pm:prj2023:iotelea:tesla2-arduino.zip|}}
-</​note>​+
  
-===== Jurnal ===== +Codul sursa Android: {{:​pm:​prj2023:​iotelea:​tesla2-android.zip|}}
- +
-<note tip> +
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-TODO+Librarii folosite pentru Arduino: 
 +  * pentru LCD I2C - [[https://​github.com/​duinoWitchery/​hd44780|HD44780]] 
 +  * pentru controlare servo folosind timer2 - [[https://​github.com/​nabontra/​ServoTimer2|ServoTimer2]] 
 +  * pentru driver-ul de motor A4990 - [[https://​github.com/​pololu/​a4990-motor-shield|A4990 Motor Shield]] 
 +  * pentru senzorul de distanta HC-SR04 = [[https://​bitbucket.org/​teckel12/​arduino-new-ping/​wiki/​Home||NewPing]]
  
 +Pagina in format PDF:\\
 {{:​pm:​prj2023:​iotelea:​tesla_2.pdf|}} {{:​pm:​prj2023:​iotelea:​tesla_2.pdf|}}
- 
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
  
pm/prj2023/iotelea/tesla-2.1685230350.txt.gz · Last modified: 2023/05/28 02:32 by matei.trandafir
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