Un dispozitiv pentru testarea servomodelelor controlate de la distanță. Verificarea forței servomotor Conectarea la un computer

Diagrama și descrierea Pe baza diagrama schematica Microcontrolerul este Attiny2313. Un indicator cu șapte segmente și trei cifre cu indicație dinamică este conectat direct la acesta prin tranzistori. Indicatorul afișează valoarea curentă a unghiului și modul de funcționare. Pentru control se folosesc un buton și un encoder. Când apăsați butonul, se activează unul dintre următoarele moduri:

  1. incremente de unghi de 0,1 grade
  2. 1 grad fiecare
  3. 10 grade fiecare
  4. mutarea arborelui între puncte extreme (0 sau 150 de grade)
Codificatorul modifică unghiul curent în sus sau în jos, în funcție de direcția de rotație. Butonul și una dintre ieșirile codificatorului sunt conectate direct la întreruperi externe ale MK. Când apăsați butonul, modul curent este afișat timp de o jumătate de secundă. În timpul acestor manipulări, la pinul PD6 al MK sunt prezente impulsuri cu o durată de 0,8 până la 2,3 ms și o frecvență de 50 Hz. Am scris deja despre algoritmul de generare a semnalului de control în sine mai devreme. Circuitul poate fi alimentat de la o sursă de tensiune constantă de 5V, sau de la 7-12V. Sursa de alimentare este selectată cu ajutorul unui jumper. Dacă testerul este folosit pentru a testa regulatoarele, atunci este alimentat de la regulatorul însuși.
Design Desene detaliate ale plăcii în sine (unilaterale, desigur) au fost dezvoltate...
...desenul ansamblului frontal...
… Și reversul dispozitive.
Acordați atenție jumperilor J1-J4. Acestea sunt rezistențe cu rezistență zero în carcasa 1210. Asamblare și configurație După cum se poate vedea în desene, pe partea frontală există doar elementele de control necesare, indicațiile, precum și bornele pentru conectarea puterii. Placa poate fi realizată cu ușurință acasă folosind LUT (nu uitați să faceți designul plăcii în oglindă!). Pentru mine arata asa:
Pentru a programa, va trebui să lipiți firele pe placă. Am mutat în mod special picioarele MOSI, MISO, SCK pe indicator și am lăsat un contact pe semnalul RESET. Când programați siguranțe, nu este nevoie să schimbați fișierul firmware, PCB iar lista de achiziții este la sfârșitul articolului.
Video de funcționare Video de verificare a servomotor:

Video cu verificarea unui motor fără perii cu un regulator:
Fișiere pentru descărcare Dacă doriți să construiți același servotester, veți avea nevoie de fișier

Un servotester este un dispozitiv conceput pentru a testa performanța unui servomotor, pentru a determina unghiurile sale extreme, viteza de mișcare, pasul minim și viarea. Poate fi foarte util pentru constructorii de roboți, deoarece vă permite să porniți motorul și să verificați funcționarea modelului înainte ca electronica de control să fie gata. Lucruri similare sunt folosite în magazinele de modele radio controlate pentru a demonstra clienților capacitățile servo-urilor. Totuși, mi-aș dori să am mereu așa ceva la îndemână. Desigur, puteți cumpăra o varietate de testere, dar este mult mai interesant să le faceți singur.

Schemă și funcționare


Schema circuitului se bazează pe microcontrolerul Attiny2313. Un indicator cu șapte segmente și trei cifre cu indicație dinamică este conectat direct la acesta prin tranzistori. Indicatorul afișează valoarea curentă a unghiului și modul de funcționare. Pentru control se folosesc un buton și un encoder. Când apăsați butonul, se activează unul dintre următoarele moduri:
1 - increment de unghi de 0,1 grade
2 - 1 grade fiecare
3 - 10 grade fiecare
4 - mișcarea arborelui între punctele extreme (0 sau 150 de grade)
Codificatorul modifică unghiul curent în sus sau în jos, în funcție de direcția de rotație. Butonul și una dintre ieșirile codificatorului sunt conectate direct la întreruperi externe ale MK. Când apăsați butonul, modul curent este afișat timp de o jumătate de secundă. În timpul acestor manipulări, la pinul PD6 al MK sunt prezente impulsuri cu o durată de 0,8 până la 2,3 ms și o frecvență de 50 Hz. Am scris deja despre algoritmul pentru generarea semnalului de control mai devreme. Circuitul poate fi alimentat de la o sursă de tensiune constantă de 5V, sau de la 7-12V. Sursa de alimentare este selectată cu ajutorul unui jumper.

Proiecta

Au fost elaborate desene detaliate ale plăcii în sine (unilaterale, desigur)...


...desenul ansamblului frontal...

... și partea din spate a dispozitivului.

Acordați atenție jumperilor J1-J4. Acestea sunt rezistențe cu zero ohmi într-un pachet de 1210.

Asamblare si configurare

După cum puteți vedea în desene, pe partea din față există doar elementele de control necesare, indicațiile, precum și terminalele pentru conectarea puterii. Placa poate fi realizată cu ușurință acasă folosind LUT (nu uitați să faceți designul plăcii în oglindă!). Pentru mine arata asa:


Pentru a programa, va trebui să lipiți firele pe placă. Am mutat în mod special picioarele MOSI, MISO, SCK pe indicator și am lăsat un contact pe semnalul RESET. Nu este nevoie să schimbați siguranțe la programare, fișierul firmware, placa de circuit imprimat și lista de achiziții sunt la sfârșitul articolului.

Video cu munca

În loc de o concluzie

Ca un avantaj al dispozitivului meu, aș dori să remarc că nu se întâmplă adesea ca servotesterele să aibă un indicator, mai ales la un cost mai mic de 200 de ruble. În viitor, vreau să adaug încă două moduri la firmware - pentru determinarea unghiurilor extreme și un mod pentru schimbarea automată a unghiului.
Și bineînțeles

Parametrul principal al unui servomotor este forța dezvoltată, dar de foarte multe ori acest parametru diferă mult de cel declarat. Am decis să testăm motoarele utilizate frecvent. Mai întâi, să testăm motoarele Microservo 9g, Hitec HS-485 și MG995.

Servoacționări

Atunci când construiești diverși roboți, este important să poți estima forța de ridicare a motorului și consumul de curent. De obicei, parametrul „cuplu” este indicat în caracteristicile motorului. Se măsoară în kg/cm și arată câte kilograme poate ridica motorul la o distanță de 10 mm de la arbore până la punctul de aplicare a forței. Aceasta este forța cu care motorul trebuie să țină sarcina, dar să nu se miște.
Pentru a verifica, am folosit un umăr de 10 cm, adică toate citirile trebuie înmulțite de zece ori. Sursa de alimentare în toate experimentele este de 5V. Pentru a controla motorul, l-am folosit pe cel pe care l-am făcut mai devreme. Mulțumim autorului blogului Alex-EXE.ru pentru cântarele furnizate.

Microservo Tower Pro 9g

Poate cel mai popular datorită prețului. Am cumpărat din magazinul online DVRobot cu 130 de ruble/buc. Forța declarată este de 1,6 kg/cm. Aceste motoare sunt adesea criticate din cauza faptului că se dovedesc a fi mai slabe decât se spune.
Pe bancul nostru de testare, servomotorul a stors 130 grame/10 cm (adică 1,3 kg/cm):

În acest caz, motorul consuma un curent de 500mA. Cu toate acestea, cu acest efort, motorul poate suporta greutatea doar în mod excepțional. Am decis să verificăm câtă greutate ar putea „purta”.
Mișcă confortabil o greutate de 110 grame (cu un umăr de 10 cm) și consumă aproximativ 400 mA cu supratensiuni de până la 580 mA.
În general, putem spune că astfel de caracteristici sunt destul de satisfăcătoare, dar poate că există multe falsuri la vânzare.

Hitec HS-485

Am achiziționat aceste motoare de la HobbyKing.com pentru 16 USD. Acestea sunt motoare digitale excelente, fiabile și funcționează bine.
Forța declarată la 4,8V este de 4,8 kg/cm. La standul nostru a arătat 4,6 kg/cm și a consumat 780 mA:

În același timp, menține mobilitatea în timp ce dezvoltă o forță de 4 kg/cm. Consumul de curent variază de la 600 la 800 mA.

MG995

Aceasta este o fiară adevărată cu o forță de 13 kg/cm și un cost de 330 de ruble. Cel puțin așa spune vânzătorul DVRobot.
Să verificăm dacă este adevărat:

Cu o sursă de alimentare de 5 volți pe suport, a stors 8,55 kg/cm și a consumat până la 1,5 A. Pe de o parte, acest lucru este mai puțin decât se spune, dar, pe de altă parte, este încă cel mai bun raport efort/preț.
In mod normal, un astfel de motor poate misca o greutate de aproximativ 7,3 kg/cm iar consumul de curent este de aproximativ 1A cu supratensiuni de pana la 2A.

Buna ziua!

Pentru ce este asta?

În electronica hobby, sistemele controlate de un semnal PWM sunt utilizate pe scară largă. Aceasta este o secvență de impulsuri cu o frecvență de 50 Hz. Informațiile din ele sunt codificate sub formă de durate ale impulsurilor, care pot varia de la 0,8 la 2,3 ms. Extremele acestui interval pot varia ușor între producători.

Servo drive-urile pentru construcția de modele de aeronave, hexapode, manipulatoare etc., folosesc exact acest semnal. De regulă, au trei fire - putere, comun și semnal. De asemenea, în modelarea aeronavelor, modelarea auto și construcția de aeronave, controlerele pentru motoare cu perii și fără perii folosesc același semnal de control, care determină viteza și direcția de rotație a motoarelor.

Sursa unui astfel de semnal poate fi un panou de control, un controler programat sau ceva similar. Dar, foarte des, în stadiul de construcție, este convenabil să folosiți un tester de servomotor, care generează același semnal în modul manual. Acest lucru vă permite să verificați funcționalitatea mecanicii în avans, să măsurați pozițiile extreme etc.

Caracteristicile și caracteristicile dispozitivului nostru

Majoritatea testerelor pe care le puteți cumpăra acum sunt fie foarte simple, fie scumpe. Am vrut să-l fac cât mai ieftin, dar în același timp să îi ofer cea mai largă funcționalitate posibilă. Iată ce am primit:
  1. Șase canale de control independente. Exact independent! De obicei, în cele gata făcute puteți conecta mai multe motoare în același timp, dar semnalul pentru acestea este același. Pe dispozitivul meu, puteți chiar să rulați unul în modul automat și să îl controlați pe restul unul câte unul manual etc.
  2. Formarea semnalului și indicarea în microsecunde. La majoritatea testerelor, indicația este afișată într-un mod neclar sau este absentă cu totul
  3. Pasul minim pentru modificarea duratei este de 1 µs. Adică, intervalul de 0,8-2,3 ms este împărțit în 1500 de pași
  4. Posibilitate de conectare la un PC. Îl puteți folosi, de exemplu, împreună cu un Raspberry Pi. Semnalul în sine va fi generat mult mai precis decât prin intermediul unui computer cu o singură placă.
  5. Deschidere. La sfârșitul articolului puteți găsi toate fișierele necesare pentru a vă face propriul tester
Și iată caracteristicile sale:
  1. Tensiune de alimentare - 5V
  2. Consum de curent (fără servo), nu mai mult de - 100mA
  3. Durata impulsurilor generate - 0,8-2,3 ms
  4. Precizia setarii duratei - 1 µs
  5. Frecvența de repetare a pulsului - 50Hz
  6. Viteza de conectare la PC - 9600, 8 biți, 1 bit de oprire

Circuit de testare servo

În timp ce lucram la schemă, am încercat să o fac cât mai ieftină și să o fac mai ușor de repetat. Controlerul național Atmega8A-AU a fost folosit ca controler de control.

Afișajul cu trei cifre și șapte segmente este conectat printr-un registru de deplasare și tranzistori logici. Șase LED-uri servesc pentru afișarea modului curent și sunt conectate folosind așa-numita metodă Charlieplexing pentru a salva pinii MK.
Pentru control, se utilizează un encoder incremental convențional și două butoane. Codificatorul controlează unghiul setat, iar butoanele comută modul de control și canalul curent. Există condensatori peste tot pentru a preveni sărirea contactului, așa că totul funcționează foarte bine.

Conectorii testerului sunt proiectați pentru conectarea servo-urilor în sine, programarea, conectarea la un PC și sursa de alimentare. Am decis să nu instalez un stabilizator de putere pe placă. Adică, pentru a-l folosi, nu poți folosi direct tensiunea bateriei. Este necesar să găsiți o sursă de 5V sau un stabilizator cu un curent corespunzător curentului consumat de motoarele conectate.
La verificarea conexiunii dintre un motor fără perii și un ESC, motorul în sine este alimentat de baterie. Dacă ESC are un regulator de viteză încorporat, atunci puteți alimenta testerul direct de pe acesta.

Placa de circuit imprimat este pregătită în format Sprint Layout. Aceasta este o placă cu două fețe, dar am desenat-o în așa fel încât să poată fi făcută acasă cu LUT sau fotorezist, iar jumperii pot fi lipiți cu ușurință în găurile de trecere de la o parte la cealaltă a plăcii.

Partea frontală a plăcii:

... si invers:

Am făcut această placă manual și toate acestea au fost testate de mine și funcționează:

Am derulat și o mică campanie printre abonații comunității Mărfuri din China pentru radioamatoriși hackspace-ul nostru local MakeItLabși am găsit oameni care au susținut lansarea unui lot mic de dispozitive. Aș dori să profit de această ocazie pentru a le exprima recunoștința mea. Iată cum arată dispozitivul în versiunea din fabrică:



Lista componentelor

Aici lista completa cu link-uri:
  1. Microcontroler Atmega8A-AU în pachet TQFP44
  2. Afișaj cu catod comun din trei cifre, șapte segmente BC56-12GWA. Dacă ați observat, placa are spațiu pentru instalarea unui alt display, semnificativ mai ieftin de la aliexpress
  3. Registrul de schimbare SN74HC595DR în pachet SOIC16
  4. Tranzistor logic BCR108E6327 în pachet SOT23 - 3 buc.
  5. LED-uri KP-2012SGC, sau orice altele din carcasă 0805 - 6 buc.
  6. Encoder incremental EC12E24204A9
  7. Condensator de tantal T491C226K016AT (22uF-16V, dimensiune C)
  8. Condensator 0,1 microni în carcasă 0805 - 7 buc
  9. Rezistor de 1 kOhm în carcasă 0805
  10. Ansamblu rezistență 1kOhm în carcasă 0603×4
  11. Ansamblu rezistență 300 Ohm în carcasă 0603×4 - 3 buc.
  12. Buton de moment tip DTSM20-4.3N - 2 buc.
  13. 5.08 Bloc terminal cu doi pini
  14. Pieptene de contact PLS-40 (sunt necesari un total de 26 de pini)
  15. Jumper

Cadru

De asemenea, am desenat și imprimat 3D un dorn mic și un mâner pentru encoder. Fișiere de descărcat mai târziu.



Firmware

Fișierele firmware vor fi la sfârșitul articolului. Puteți flash controler folosind orice programator ISP printr-un conector standard cu 6 pini. Pe placă, șase dintre cei opt pini din stânga codificatorului sunt destinati în primul rând acestui scop.
Biții de siguranță trebuie setați așa cum se arată în figură:

Lucru de tester

Desigur, este mai ușor să vezi o dată:

Pentru a porni testerul în modul de control manual, jumperul „PC/Manual” trebuie să fie instalat la pornirea alimentării.

Când porniți în modul manual, afișajul va afișa mesajul de salut „HI” și testerul va intra în modul de așteptare pentru ca utilizatorul să selecteze durata inițială a semnalului. Aproximativ, de la marginea sau de la mijlocul gamei. Când apăsați butonul din stânga, controlul va avea loc de la zero, când apăsați butonul din dreapta, controlul va avea loc de la mijloc. După apăsarea unuia dintre butoane, va începe generarea semnalului, primul canal va deveni activ și va intra în modul „1”.

În modul de funcționare, butonul MODE comută modurile de control, schimbând treapta de creștere. Modul curent este afișat folosind șase LED-uri. Sunt posibile patru moduri manuale (pașii 0.1; 1; 10 și de la 0 la 150, adică între marginile intervalelor) și două automate (pornire/oprire). O apăsare lungă a butonului MODE trece canalul în modul control automat iar motorul începe să se balanseze lin dintr-o parte în alta. O apăsare scurtă a butonului MODE în modul automat oprește sau reia mișcările. O apăsare lungă a butonului MODE readuce canalul în modul de control al codificatorului.

Butonul CHANNEL comută între canalele active. Canalul activ curent este afișat pe afișaj în cod binar folosind puncte de biți. O apăsare lungă pe acest buton trece testerul în modul de generare a impulsurilor identice pe toate canalele.

Vă rugăm să rețineți că indicatorul afișează numere de la 0 la 150. Acesta corespunde aproximativ cu unghiul servo și poate fi convertit în durata impulsului. Pentru a recalcula, doar înmulțiți citirile cu zece și adăugați 800. De exemplu, dacă indicatorul arată zece, atunci durata pulsului este de 900 μs.

Conectarea la un computer

Dacă utilizați un Raspberry Pi, atunci puteți conecta pur și simplu Rx, Tx și GND în partea stângă jos a plăcii. Dacă nu aveți un port COM compatibil TTL pe computer, atunci puteți utiliza un adaptor USB la COM, care sunt foarte ieftine. Puteți folosi și un port USB de 5V, dar rețineți că curentul maxim este de 500mA! Viteza de conectare - 9600.
Pentru ca testerul să pornească în modul de control al computerului, trebuie să îl porniți fără jumper. În acest caz, literele „PC” vor fi afișate pe indicator, iar testerul va intra în modul de așteptare a comenzilor de la computer. Până la sosirea primului pachet complet, nu va exista semnal pe toate canalele.

Valorile duratei pulsului trebuie trimise în microsecunde de la 0 la 1500. Adică se consumă doi octeți pentru fiecare canal.

Pachetul de date trebuie să fie format din 16 octeți: mai întâi doi octeți 0xFF pentru a indica începutul pachetului, apoi 12 octeți de durată a impulsurilor pentru fiecare canal și la sfârșit doi octeți ai sumei de verificare. Suma de control este necesară pentru a verifica corectitudinea pachetului și trebuie să fie egală cu suma tuturor duratelor.

Primul octet - 255 (0xFF)
Al doilea octet - 255 (0xFF)
Al 3-lea octet - octet mare al primului canal
Al 4-lea octet - octet scăzut al primului canal
Al 5-lea octet - octet mare al celui de-al doilea canal
Al 6-lea octet - octet scăzut al celui de-al doilea canal
Al 7-lea octet - octet mare al celui de-al treilea canal
Al 8-lea octet - octet scăzut al celui de-al treilea canal
Al 9-lea octet - octet înalt al celui de-al patrulea canal
Al 10-lea octet - octet scăzut al celui de-al patrulea canal
Al 11-lea octet - octet înalt al celui de-al cincilea canal
Al 12-lea octet - octet scăzut al celui de-al cincilea canal
Al 13-lea octet - octet înalt al celui de-al șaselea canal
Al 14-lea octet - octet scăzut al celui de-al șaselea canal
Al 15-lea octet - octet mare al sumei de verificare
Al 16-lea octet - octet scăzut al sumei de verificare

Exemple de pachete corecte (în sistem zecimal):
255 255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (toate motoarele în poziția inițială)
255 255 2 238 0 0 0 0 0 0 0 0 0 0 0 240 (primul motor în poziția de mijloc)
255 255 2 238 2 238 2 238 2 238 2 238 2 238 17 148 (toate motoarele în poziție mijlocie)



Publicații pe această temă