Kuidas teha raadio teel juhitavat tanki: puldi ja kaameraga spioon. Valmistame raadio teel juhitava tanki Arduino Nano Tanki lahingus arduinol


Varasemates materjalides tegime ülevaate videotest erinevate raadio teel juhitavate mänguasjade valmistamise kohta. Jätkame seda teemat. Seekord pakume tutvust raadio teel juhitava tanki valmistamise protsessiga.

Meil on vaja:
- viimistletud šassii;
- Arduino Nano
- 3 servot;
- pöörlev süsteem;
- mängupüstol;
- PS2 juhtkang;
- juhtkangi vastuvõtja;
- akude kast;
- laetavad akud;
- juhtmed;
- laser.

Valmis šassiis, mille ostmise link on toodud materjali lõpus, on kaks mootorit, kaks käigukasti, lüliti ja akuruum. Idee autori sõnul läheb valmis šassii ostmine vähem maksma kui käsitsi valmistatud. Kui akud, mida kavatsete kasutada, ei mahu šassiilahtrisse, nagu autori puhul, saate mootorijuhi sinna peita.

Esimene samm on vastuvõtja kinnitamine juhtkangilt šassiile. Selleks eemaldage sellelt kate.

Samuti eemaldame käigukastilt katte.

Kaanele teeme kaks auku, mida kasutatakse kaane kruvidega kinnitamiseks.

Täidame mutrid, millega kruvid kinni on kinnitatud, liimiga, et need sõites lahti ei keriks ja käigukasti ei kukuks.

Nüüd peate mootori draiverit parandama. Autori sõnul ei sulgu spetsiaalsete pistikutega juhtmeid kasutades sektsioon täielikult, nii et peate pistikud lahti hammustama, juhtmed eemaldama ja jootma otse draiveri väljunditesse.

Enne draiveri paigaldamist peate hoolitsema paagi koonu pöörlemissüsteemi eest. Selleks võtame plastikust pöörleva süsteemi lahti ja paigaldame sellesse kaks servot. Esimene vastutab horisontaalsete liikumiste eest ja teine ​​vertikaalsete liikumiste eest.

Kogume pöörleva süsteemi tagasi.

Paigaldame süsteemi paagi korpusele.

Korpusesse peate tegema 3 lisaauku. Kaks neist on mõeldud mootori juhtmete jaoks ja siini jaoks on vaja laia auku mootorijuhi juhtseadmes.

Püstol peab olema servoga ühendatud. Selleks piisab, kui teha servoajamile ja püstoli korpusele auk ning ühendada kruviga.

Järgmine samm on püstoli päästiku ühendamine servoga. Selleks puurige päästikule augud ja servole otsik. Me ühendame elemendid traadiga.

Pöörlemissüsteemi ülemisse ossa tuleb teha kaks läbivat auku, mis peavad läbima ka püstoli koonu. Neid auke kasutatakse suukorvi kinnitamiseks pöördsüsteemi külge.

Liigume edasi Arduino Nano plaadi programmeerimise juurde.

Ülejäänud komponendid paneme kokku vastavalt allolevale skeemile.

Šassii ülaosale paigaldame joonlaua tükid, mis toimivad tiibadena. Tiibadele paigaldame akupesad.

Laser liimitakse kuumaliimiga koonule.

Meie raadio teel juhitav tank on valmis.

Robot koosneb raadio teel juhitava tanki šassiist ja mitmest muust komponendist, mille loetelu on toodud allpool. See on minu esimene projekt ja ma armastan Arduino platvormi. Selle roboti loomisel kasutasin materjale raamatutest ja internetist.

Vajalikud materjalid
1. Šassii raadio teel juhitavast tankist.
2. Arduino Uno.
3. Leivalaud ja džemprid.
4. Integreeritud mootoridraiver SN754410NE.
5. Standardne servo.
6. Ultraheli kaugusmõõtja.
7. 9V aku ja pistik selle jaoks.
8. 4 D akut ja nende jaoks pistik.
9. USB A-B kaabel.
10. Alus 6" x 6".

Tööriistad
1. Kruvikeerajate komplekt.
2. Kuumliimi püstol.
3. Joote- ja jootekolb.

Šassii

Võtsin šassii 10 dollari eest ostetud paagist. Aluse saab selle külge kinnitada ükskõik kuhu, aga mina kinnitasin selle keskele.

Mootorijuht SN754410NE

Mootorite juhtimiseks kasutasin draiverit SN754410NE. Ma kasutasin seda, sest mul oli see, kuid võite kasutada mõnda muud, näiteks L293.

Nüüd draiveri ühendamise kohta Arduino Unoga. Ühendage kõik GND kontaktid (4,5,12,13) ​​leivaplaadi GND-ga. Ühendage draiveri tihvtid 1 ja 16 Arduino kontaktidega 9 ja 10. Ühendage draiveri tihvtid 2 ja 7 Arduino tihvtidega 3 ja 4, need on vasakpoolse mootori juhttihvtid. Ühendage draiveri tihvtid 10 ja 15 Arduino tihvtidega 5 ja 6, need on õiged mootori juhttihvtid. Ühendage tihvtid 3 ja 6 vasakpoolse mootoriga ning tihvtid 14 ja 11 paremale. Kontaktid 8 ja 16 tuleb ühendada leivaplaadi vooluvõrku. Toide: 9V aku.

Ultraheli kaugusmõõtja aitab robotil liikumise ajal takistusi vältida. See asub tavalisel servol, mis asub roboti esiküljel. Kui robot märkab objekti 10 cm kaugusel, hakkab servo pöörlema, otsima läbipääsu ja seejärel otsustab Arduino, kummal küljel on kõige meeldivam liikuda.
Kinnitage selle külge pistik. Piirake servot nii, et see ei saaks kummalegi poole pöörata rohkem kui 90 kraadi.

Anduril on kolm kontakti GND, 5V ja signaal. GND ühendus GND-ga, 5V Arduino 5V-ga ja signaalühendus Arduino viiguga 7.

Toitumine

Arduino toiteallikaks on 9 V aku vastava pistiku kaudu. Mootorite toiteks kasutasin 4 D suuruses akut ja vastavat pistikut. Mootorite toiteks ühendage juhtmed hoidikust plaadiga SN754410NE abil.

Kokkupanek

Kui kõik osad on valmis, on aeg need kokku panna. Kõigepealt peame Arduino aluse külge kinnitama. Seejärel kinnitame kuumaliimi abil servoga kaugusmõõtja roboti ette. Seejärel peate akud kinnitama. Saate need paigutada kuhu iganes soovite, kuid ma asetasin need Arduino kõrvale. Kui kõik on valmis, saad roboti sisse lülitada, et veenduda Arduino töös.

Programm

Seega on pärast roboti kokkupanemist aeg sellele programm kirjutada. Pärast paari päeva möödumist kirjutasin selle.
Robot liigub sirgjooneliselt seni, kuni objekt on kaugemal kui 10 cm. Objekti märkamisel hakkab ta andurit pöörama, otsides teed. Kui skaneerimine on lõppenud, valib programm liikumiseks optimaalse külje. Kui robot on ummikus, pöördub see 180 kraadi.
Programmi saab alla laadida allpool. Saate seda muuta ja täiendada.

Bluetoothi ​​juhtimisega Arduino paak on suurepärane näide sellest, kui lihtsalt ja ilma eriteadmisteta saab tavalisest raadio teel juhitavast paagist laheda mänguasja, mida juhitakse android-seadmest. Lisaks ei pea te isegi koodi redigeerima, kõike teeb spetsiaalne tarkvara. Võib-olla olete lugenud minu eelmist artiklit raadio teel juhitava automudeli juhtimiseks muutmise kohta. Tankiga on kõik peaaegu sama, ainult tema suudab veel torni pöörata ja tünni tõusunurka muuta.

Alustuseks esitan lühike ülevaade minu käsitöö võimalused:

Võtame nüüd kõik järjekorda.

Arduino tank bluetooth juhtimisega - riistvara.

Riistvaras on kõige tähtsam šassii, st kere. Ilma paagi endata ei tule sellest midagi välja. Korpuse valimisel pöörake tähelepanu vaba koht sees. Peame sinna paigutama muljetavaldava hulga komponente. Leidsin sellise võimaluse ja me töötame sellega.

Meie projekti annetaja.

Algselt oli see defektne. Tahtsin seda taastada, kuid olles kohkunud tööplaadi koostekvaliteedist, otsustasin, et ümberehitus on töökindlam. Jah, ja ma rõõmustan lapsi vana vidinaga, mida juhitakse uuel viisil.

Mõõdud: 330x145x105 mm ilma tünnita. Kere on varustatud nelja mootoriga: kaks liikumiseks, üks torni ja üks tünni jaoks. Esialgu suutis tank kummikuulidega tulistada, kuid mehhanism oli katki, nii et lõikasin selle lihtsalt tünni küljest lahti. Peale seda oli piisavalt ruumi täidise asetamiseks.

Laadige programm alla ja installige ametlikult veebisaidilt ning installige, kaasaskantava versiooni saab lihtsalt lahti pakkida. Järgmisena avage selles minu projektifail ja klõpsake liidese ülaosas püsivara nuppu (vasakult seitsmes).

FLProg liides

ArduinoIDE avaneb, kuid teate, kuidas sellega töötada 😀 .

Arduino paak bluetooth juhtimisega - ühendusskeem

Plaadiga ühendame väliselemendid, meie puhul bluetooth, sillad ja LEDid vastavalt projektile.

Kasutatud tihvtide nimekiri

Loendis on näidatud arduino PIN-koodid ja nende eesmärk. Kõik on kommenteeritud. Liikumis- ja torni juhtkontaktid ühendatakse otse sildadest, täiendavat kerekomplekti pole vaja. Analoogsisendi ühendamine pinge mõõtmiseks tuleb teha läbi takistusjaguri, kuna arduino pardapinge on VIIS VOLTI !!! See on väga oluline, kui mikrolülituse lävipinge ületatakse, läheb kontroller teise maailma. Nii et ole ettevaatlik. Minu puhul kasutati kahte 18650 formaadis liitium-ioonakut, jagajat 1 KΩ ja 680 oomi takistitel. Kui teie tööpinge erineb minu omast, siis minge takistusjaguri arvutamiseks suvalisele veebikalkulaatorile ja arvutage see ise, võttes aluseks asjaolu, et selle väljundpinge peaks olema võrdne viie voltiga. Kui kahtlete oma võimetes, siis ei saa te aku pingemõõtmist üldse kasutada, see töötab niikuinii. Lõpetasin niimoodi sõitmise – on aeg laadida.

LEDid, kui need on olemas, tuleb ühendada läbi voolu piiravate takistite.

Arduino tank koos bluetooth juhtimisega on programm tahvelarvutile või nutitelefonile.

Nagu eelmises mudelis, kasutame ka android-seadmetele mõeldud programmi HmiKaskada. Postitan selle programmi tasuta versiooni, mille saate YandexDiskist alla laadida. Minu projekt on tehtud tasulises versioonis ja see ei ühildu programmi tasuta versiooniga. Nii et edasine materjal on pühendatud projekti loomisele tasuta versioonis.

Juhtimisliides

IN valmis projekt tahvelarvutis on ka aku taseme indikaator ja see on projekti substraat. Nii et alustame...

Kõigepealt loome ühe töötava ekraaniga projekti, meil pole seda enam vaja. Järgmisena ühendage meie bluetooth-moodul tahvelarvutiga. Selleks minge serverite loendi redigeerimise juurde ja klõpsake paremas ülanurgas plussmärgil. Valime loendist oma Bluetoothi ​​ja anname sellele nime. Nüüd on see seadistatud ja kasutamiseks valmis. Järgmine samm on tööpiirkonna aluskatte määramine. Selleks minge põhitööruumi menüüsse "muu - taust" ja laadige liidese pilt. Võite kasutada minu oma või luua oma pildi. Tegelikult töötab see ilma tausta seadmata, see on ainult ilu pärast.

Liigume nüüd juhtnuppude paigutamise juurde. Me läheme menüüsse "Setters" ja lohistame nupu tööalale. Nupumenüüs klõpsake aadressi ja sisestage näiteks 1#0.12. Kus 1 on arduino plaadi aadress ja 12 on projekti muutuja aadress. Projektis kasutatud muutujaid saab vaadata projektipuust.

Lipu aadresside loend

Aku näidiku seadistamisega samamoodi. Loome Arduino projektis salvestusregistri täisarvu vormingus ja määrame indikaatorile selle aadressi. Näiteks 1#10, kohandage indikaatorit oma maitse järgi.

Kui kõik juhtelemendid on loodud, konfigureeritud ja oma kohtades asuvad, klõpsake projekti käivitamisel. Android ühendub paagiga ja saate tehtud tööd nautida.

Arduino paak bluetooth juhtimisega - kokkupanek.

Käsitöö kokkupanek võttis minu ajast kaks tundi, kuid tulemus ületas kõik ootused. Tank osutus üsna krapsakaks, reageerides käsklustele silmapilkselt. Tuli nokitseda käigukastiga, mis paagi roomikuid ajab. See pudenes, aga minu õnneks käigud viga ei saanud ja natuke liimi, määret ja sirgeid käsi andsid selle taas kasutusse. Tavaline aku tuli asendada kahe liitiumioon 18650 akuga, mis on hoidikus järjestikku ühendatud. Lõplikuks toitepingeks osutus olenevalt akude laetuse tasemest 6 - 8,4 volti. Pidin ka vahetama mootorit mis torni ajab, see oli lühises.

Vahetasin oma mänguasja esitulede dioodid. Kollased nõrkvoolud absoluutselt ei rõõmustanud ja sai taskulampidega välgumihklitest erkvalgeteks joodetud 🙂 . Nüüd on selle rööviku imega mugav sõita ka täielikus pimeduses. Fotod enne ja pärast:

Imeline)

Lõpliku kokkupaneku tulemus ei tundu väga korralik, otsustasin mitte kulutada lisaaega kilpide kujundamisele ja juhtmete paigaldamisele. Ja nii töötab kõik suurepäraselt.

Selline sai "täidis".

Arduino paak Bluetoothi ​​juhtimisega - järeldus.

Nagu ülaltoodud materjalist näha, pole bluetoothiga juhitava paagi loomisel koodi sisse kaevamisest haisugi. Samuti ei vaja me elektroonikast süvendatud teadmisi. Kõik toimingud on intuitiivsed ja algajasõbralikud. Algselt töötati HMIKaskada programm välja alternatiivina kallitele tööstuslikele HMI-paneelidele, kuid see tuli kasuks ka mänguasja loomisel. Loodan, et see aitas teil hajutada müüti arduino multitegumtööprojektide loomise keerukusest.

Mul on hea meel igasuguste artiklite kommentaaride ja ka kommentaaride üle. Lõppude lõpuks õpin ka teiega koos ...

Roboti põhiosa moodustab raadio teel juhitava tanki šassii ja muud komponendid, nende loetelu kirjutatakse allpool. See tank on autori esimene projekt Arduino platvormil ja tal oli hea meel, et ta seda kasutas. Autor kasutas materjale ja raamatuid Internetist.

Materjalid ja tööriistad:
- Paagi šassii
- Arduino Uno
- Džemprid ja leivalaud
- Integreeritud mootoridraiver SN754410NE
- Tavaline servo
- Ultraheli kaugusmõõtja
- 9 V aku koos selle pesaga
- D-tüüpi akud
- USB-kaabel Arduino jaoks
- Šassii alus
- Kruvikeerajad
- Soojuspüstol ja liim selle jaoks
- Jootekolb ja joodis

Esimene samm. Paagi šassii.
Autor võttis šassii vanalt kirbukalt ostetud Abramsi tankilt. Saadud paak demonteeriti, et saaks sellelt šassii eemaldada. Pole vaja kasutada sama tanki, sobib iga raadio teel juhitav. Pealegi jättis originaalmootor palju soovida, nii et pidin ise kokku panema, selle kokkupanek on järgmises etapis. Pärast šassii ettevalmistamist kinnitas autor aluse neile kuuma liimiga. Pole tähtis, kus see fikseeritakse, kuid see otsustati kleepida keskele.

Teine samm. Mootori juht.
Mootori juhtimiseks kasutatakse draiverit SN754410NE, autor kasutas seda, kuna see oli saadaval, võite võtta mis tahes sarnase.
Draiveri ühendamine Arduinoga on järgmine:

Kõik GND tihvtid on ühendatud leivaplaadi GND tihvtidega.
- Juhtnõelad 1 ja 16 Arduino 9 ja 10 külge.
- Draiveri kontaktid 2 ja 7 on ühendatud Arduino kontaktidega 3 ja 4 (need vastutavad vasakpoolse mootori juhtimise eest).
- Arduino tihvtid 5 ja 6 on ühendatud draiveri tihvtidega 10 ja 15 (need vastutavad õige mootori juhtimise eest).
- Kontaktid 3 ja 6 on ühendatud vasakpoolse mootoriga ning 14 ja 11 parema mootoriga.
- Kontaktid 8 ja 16 peavad olema ühendatud Bredboardi toiteallikaga, toiteallikaks on 9 V aku.

Kolmas samm. Kaugusmõõturi paigaldamine.
Ultraheliandur võimaldab robotil liikumise ajal vältida tema teel olevaid takistusi. Andur asub tavalisel servol ja paigaldatakse roboti esiosale. Sel hetkel, kui robot märkab takistust 10 cm raadiuses, hakkab servo mõlemas suunas pöörama, otsides seeläbi läbipääsu. Arduino loeb andurilt infot ja otsustab, kumb pool on edasiseks liikumiseks soodsam.
Esiteks on anduri külge kinnitatud servo. Autor fikseerib servo nii, et see suudab pöörata kummaski suunas vaid 90 kraadi ehk teisisõnu saab servo täispööre 180 kraadi.

Anduril on kolm kontakti GND, signaal ja 5V. 5 V toide on ühendatud Arduino 5 V toitega, GND GND ja signaal Arduino viiguga 7.

Neljas samm. Toitumine.
Arduino saab voolu läbi 9V aku, see on ühendatud vastava pistikuga. Mootoreid toidavad neli akuhoidikusse paigaldatud D-tüüpi akut. Mootorite toiteks ühendatakse hoidiku juhtmed plaadiga, millele on juba paigaldatud mootoridraiver SN754410NE.

Viies samm. Roboti kokkupanek.
Pärast kõigi eelmiste sammude sooritamist on aeg kõik üksikasjad kokku panna. Esiteks kinnitatakse Arduino paagi põhja külge. Pärast seda kinnitatakse kuumliimi abil roboti esiosale ultraheli kaugusmõõtur. Seejärel parandab autor Arduino kõrval olevad patareid. Patareid saab paigaldada paagi mis tahes osale. Pärast kõigi komponentide paigaldamist tõsteti kõik juhtmed üles ja plaadile pandi toide, et veenduda montaaži õigsuses.

Kuues samm. Programmi kood.
Pärast paagi kokkupaneku lõpetamist on aeg selle jaoks programm kirjutada. Programm peaks näitama robotile, millal liikuda ja millal liikumine lõpetada, et takistust vältida. Autori koodi kirjutamisel

See postitus on esimene test, et mõista, kas see on huvitav kellelegi peale minu. Selles kirjeldan üldine struktuur kasutatud tehnoloogiaid ja seadmeid.

UPD: video lisatud.


Esiteks lühike video tähelepanu tõmbamiseks. Heli tuleb paagi kõlarist.

Kuidas see kõik algas

Mul oli ammu unistus teha roomikšassiile robot, mida saaks kaugjuhtimisega juhtida. Põhiprobleemiks oli otse roomikšassii puudumine. Lõpuks otsustasin juba lahtivõtmiseks osta raadio teel juhitava paagi, kuid mul vedas, poes oli prügi vahel Snow Leopard (Pershing) - USA M26 paak põlenud elektroonikaga, kuid täiesti töökorras. mehaaniline osa. See oli täpselt see, mida vaja oli.

Lisaks šassiile osteti kaks pingeregulaatorit kollektormootoritele, statiiv kahe servo kaamera jaoks, mjpeg riistvara toega veebikaamera ja väline WiFi kaart TP-LINK TL-WN7200ND. Veidi hiljem lisandusid seadmete loetellu kaasaskantav kõlar, Creative SoundBlaster Play USB helikast ja lihtne mikrofon ning paar USB-jaoturit, et ühendada see kõik juhtmooduliga, millest sai Raspberry Pi. Torn võeti paagi küljest lahti, seda oli väga ebamugav juhtida, kuna kogu tavaline mehaanika ehitati tavalistele mootoritele ilma tagasisidet.

Pean kohe ütlema, et pildid on tehtud siis, kui paak oli peaaegu valmis, mitte tootmisprotsessi ajal.

Toide ja juhtmestik


Toppisin akupesasse kõige suurema Li-Po aku, mis mahtus. Selgus, et tegemist on kaheelemendilise 3300 mAh akuga soliidses korpuses, mida tavaliselt kasutatakse mudelautodes. Olin jootmiseks liiga laisk, seega kasutati kõigi ümberlülituste jaoks tavalist leivalauda sammuga 2,54. Hiljem ilmus ülemisele kaanele teine ​​ja neid ühendav rong. Mõlema mootori jaoks oli mul oma pingeregulaator, mis boonusena annab umbes 5,6 volti stabiliseeritud toiteallika. Raspberry ja WiFi kaart said toite ühest regulaatorist, teisest läks toide servodele ja välisseadmetega USB jaoturile.

Peab selle liikuma panema

Seda tuli kuidagi teha. Vaarikat ei valitud juhuslikult. Esiteks võimaldab see installida tavalise täisväärtusliku Linuxi ja teiseks on sellel hunnik GPIO jalgu, mis muuhulgas suudavad genereerida impulsssignaali servodele ja reisikontrolleritele. Sellise signaali saate genereerida ServoBlasteri utiliidi abil. Käivitamisel loob see faili /dev/servoblaster, kuhu saab kirjutada umbes 0=150, kus 0 on kanali number ja 150 impulsi pikkus kümnetes mikrosekundites, seega 150 on 1,5 millisekundit (enamiku servodel on väärtusvahemik 700–2300 ms).
Niisiis ühendame regulaatorid 7 ja 11 GPIO kontaktiga ning käivitame servoblasteri käsuga:

# servood --min=70 --max=230 --p1pins=7,11
Kui nüüd kirjutada read 0=230 ja 1=230 kataloogi /dev/servoblaster, tormab tank edasi.

Tõenäoliselt piisab esimeseks korraks. Kui teile artikkel meeldib, kirjutan aeglaselt järgmistesse postitustesse. Ja lõpetuseks veel paar fotot ning värskelt filmitud video. Tõsi, kvaliteet ei olnud väga hea, seega vabandan juba ette esteetide ees.