Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Am făcut ceva lucru cu mașinile controlate de Arduino, dar cele la care am lucrat au fost întotdeauna lente și metodice. Acest lucru este minunat când învăț arduino, dar am vrut ceva ceva mai … distractiv. Intră în mașina RC.
Mașinile RC sunt literalmente concepute pentru a fi cât mai distractive de condus - sunt jucării! Am intrat pe YouTube, dar tot ce am găsit a fost o grămadă de moduri excesiv de complicate de a converti o mașină RC în control Arduino. Am crezut că trebuie să existe modalități mai simple de a face acest lucru, așa că mi-am propus să găsesc propriul meu mod de a converti o mașină RC în control Arduino, subliniind simplitatea și eficacitatea.
Mai degrabă decât să învârt mașina și să o iau de la capăt, m-am gândit că ar fi mult mai ușor să păstreze infrastructura existentă. Există câteva beneficii foarte interesante pentru această metodă.
Am spart controlerul mașinii, dar am lăsat-o neatinsă. Acest lucru mi-a permis să controlez autonom mașina pentru mult mai ieftin, folosind sistemul radio pe care îl au deja.
Îmi place această soluție, deoarece este elegantă, ușoară, ieftină și extensibilă. Sper că vi se pare la fel de util ca mine!
Pasul 1: Test Drive
Vrei cu adevărat să deschizi mașina și să începi. Dar asteapta! Tocmai ai primit această nouă mașină RC minunată, ia-ți un moment să te comporti puțin copilăresc și să o conduci! Prietenii mei și cu mine ne-am distrat mult alergând cu o mașină RC „pentru știință”. Locurile noastre preferate pentru a circula au fost un skate park local și un vechi diamant de baseball. Aceste locuri au fost minunate pentru a practica sărituri și gogoși, verificați videoclipul lent pe care l-am obținut!
Pasul 2: Deschideți controlerul
Fiecare controler este diferit, deci este important să aruncați o privire în interior pentru a afla cu ce aveți de-a face. Controlerul meu avea un declanșator pentru gaz și o roată de spumă pentru rotire. Se pare că atât declanșatorul, cât și roata erau doar carcase complexe pentru potențiometre! Acest lucru este foarte convenabil, deoarece putem falsifica cu ușurință acest lucru cu un arduino.
Luați un minut pentru a afla unde se conectează potențiometrele la placă. Ar trebui să aibă 3 fire lipite acolo: alimentare, masă și date. Acest lucru va fi important în curând.
Pasul 3: Multimetru
Am întâmpinat o problemă și am uitat să încerc să folosesc un multimetru. După ce în cele din urmă mi-am amintit să folosesc multimetrul, a rezolvat toate problemele mele!
Multimetrele sunt ca declarațiile de tipărire din codul dvs., editorul pentru hârtie. În acest caz, multimetrul m-a ajutat să înțeleg modul în care potiometrele au fost conectate, astfel încât să le pot falsifica mai bine cu arduino.
Pentru a afla cum sunt conectate potențiometrele dvs., atingeți pur și simplu solul la sol și firul roșu al multimetrului la pinul de date al plăcii. Ordinea ar trebui să fie clară din culoarea firelor, dar dacă nu, pinul de date este cel care va schimba valoarea odată cu rotirea potențiometrului.
Apoi am înregistrat valorile liniei de date la punctul mediu (poziția implicită) și la oricare pol. În acest fel, aș ști ce este 0 și ce direcție trebuie să merg pentru a crește sau micșora viteza sau pentru a vira la stânga sau la dreapta. Iată măsurătorile mele:
- 0 viteză maximă
- 1.75v fără mișcare
- 3,0v max invers
- 0 max viraj la stânga
- 1,57 fără viraj
- 3.37 viraj maxim la dreapta
Plănuiam să folosesc o pană Adafruit pentru a controla oricum mașina, deoarece îmi place placa, dar aceste măsurători susțin acea decizie. Penele rulează pe o logică de 3.3v, care se aliniază foarte bine cu această gamă analogică. Acest lucru se poate face și cu o placă de 5V, dar ar trebui să fiți mai atenți la tensiunea analogică maximă pe care o furnizați.
Pasul 4: Testează-l
Acest pas este opțional, dar consider că este întotdeauna mai bine să testez pașii intermediari cu controale, dacă este posibil. Am folosit o bancă de putere pentru desktop pentru a conecta controlerul cu cleme de aligator (după desoldarea liniilor de date) și pentru a testa diferite tensiuni. A fost minunat să rotiți butonul de pe banca de putere pentru a varia tensiunea și să urmăriți roțile în mișcare, de parcă le-aș fi făcut să se miște cu controlerul.
Pasul 5: Conectați Arduino
Acest pas a fost de fapt destul de simplu, dar am făcut câteva lucruri care au făcut ca acest lucru să fie mult mai bun. Iată metoda mea:
- Desoldați liniile de date de la cele două potențiometre, pe partea plăcii.
- Lipiți firele libere la o priză tată: viteză la putere și rotire la sol.
- Lipiți o placă feminină potrivită pe placă, astfel încât, dacă este conectată, să funcționeze la fel ca înainte.
-
Lipiți o priză de sex masculin la arduino.
- Un fir la DAC-ul încorporat (pe placa mea era pinul A0, nu toate plăcile au acest lucru, deci asigurați-vă că verificați mai întâi!).
- Dacă se întâmplă să utilizați un Arduino Due sau similar, atunci conectați celălalt fir la cel de-al doilea DAC încorporat.
- În caz contrar, conectați celălalt fir la ieșirea unui DAC extern; Am cumpărat o placă externă DAC de la adafruit.
- Conectați ceilalți pini ai DAC-ului extern la Arduino.
-
Conectați linia de masă a unuia dintre potențiometre la solul Arduino
Oferirea unui teren comun ajută la reducerea dramatică a interferențelor
Pasul 6: Programarea noii dvs. mașini autonome
Acum vă puteți controla autonom mașina RC! Va trebui să utilizați o bibliotecă dacă utilizați un DAC extern, dar în caz contrar programarea ar trebui să fie destul de simplă. După cum probabil ați ghicit din cablare, este crucial să utilizați un semnal analogic adevărat. La început am încercat să-l fac să funcționeze cu un semnal PWM, dar a avut rezultate confuze și, în general, slabe. Cu ieșiri analogice adevărate, totuși, a funcționat excelent!
Începeți cu forme geometrice și modele care altfel ar fi dificil de realizat cu controlerul. De exemplu, primul lucru pe care l-am programat pe al meu a fost să conduc în cercuri perfecte de diferite diametre.
Aceasta este, de asemenea, cea mai ușoară modificare a greutății pe care am văzut-o pentru a controla autonom o mașină RC și veți afla multe despre modul în care funcționează în timpul procesului!
Pasul 7: Pașii următori
Dezavantajul major al acestei soluții este că nu am o comunicare bidirecțională. Aceasta înseamnă că pot trimite instrucțiunile mașinii, dar nu pot primi date despre senzori.
Următorul lucru pe care intenționez să-l fac este să abordez această problemă, fie prin hacking-ul din partea mașinii pentru a trimite datele înapoi, fie prin configurarea unui link separat pentru a transmite datele senzorilor. Dacă configurez o legătură separată, nu va trebui să fie la fel de fiabilă ca legătura principală, deoarece comenzile motorului sunt mai importante.