Turinys:
- 1 veiksmas: tam tikra informacija apie „App.remoteme.org“
- 2 žingsnis: ko reikia:
- 3 žingsnis: jungtys
- 4 žingsnis: PCB
- 5 žingsnis: PCB išvestys
- 6 žingsnis: kaip tai veiks
- 7 žingsnis: automobilio surinkimas - ratai
- 8 veiksmas: maitinimas (AA įkraunamos baterijos) 1/2
- 9 veiksmas: maitinimas („Li-Po“7,2 V baterijos) 2/2 parinktis
- 10 žingsnis: litavimas
- 11 veiksmas: fotoaparatas
- 12 žingsnis: automobilių dalių sujungimas
- 13 veiksmas: „App.remoteme.org“konfigūracija
- 14 veiksmas: „RasbperryPi“konfigūracija
- 15 veiksmas: jungčių tikrinimas
- 16 veiksmas: pridėkite „Python“scenarijų
- 17 veiksmas: patikrinkite, ar „Python“scenarijus buvo pridėtas sėkmingai
- 18 veiksmas: tinklalapio pridėjimas prie „Control Car“
- 19 veiksmas: sukonfigūruokite „WebPage“įrenginį, kad jis valdytų automobilį 1/2
- 20 veiksmas: sukonfigūruokite „WebPage“įrenginį, kad jis valdytų automobilį 2/2
- 21 veiksmas: atidarykite automobilio valdymo centrą
- 22 veiksmas: fotoaparato konfigūracija 1/2
- 23 veiksmas: fotoaparato konfigūracija 2/2
- 24 žingsnis: vairavimas 1/2
- 25 žingsnis: vairavimas 2/2
- 26 žingsnis: kaip tai veikia
- 27 veiksmas: planšetinis kompiuteris, valdymas mobiliuoju telefonu
- 28 veiksmas: atidarykite puslapį mobiliajame telefone
- 29 veiksmas: „Turn Server“pridėjimas
- 30 žingsnis: vairavimas mobiliuoju telefonu
- 31 žingsnis: Santrauka
Video: „RasbperryPi“automobilis su FPV kamera. Valdymas naudojant žiniatinklio naršyklę: 31 žingsnis (su paveikslėliais)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Mes sukursime 4wd automobilį - vairas bus panašus kaip bake - pasukti vieną ratų pusę suksis skirtingu greičiu nei kitas. Prie automobilio kamera bus padėta ant specialaus laikiklio, kuriame galėsime pakeisti kameros padėtį. Robotas bus valdomas žiniatinklio naršykle („Chrome“arba „Firefox“darbalaukyje arba „Firefox“mobiliajame telefone), naršyklėje, Gausime vaizdo kamerą (tik 200 ms delsos), o iš naršyklės galime valdyti automobilio judesius ir kameros padėtis. Kad bendravimas būtų lengvesnis, aš naudojau sistemą app.remoteme.org, taip pat dirba tokio tipo automobilio valdymas, todėl jums nereikia rašyti savo kodo, bet, žinoma, galite keisti scenarijus naujų galimybių ir pan.
Prieš prijungdami maitinimą prie PCB, dar kartą patikrinkite visas jungtis
1 veiksmas: tam tikra informacija apie „App.remoteme.org“
Sistemą sudaro trys dalys
- žiniatinklio taikymas - kai priglobiate savo valdymo tinklalapius ir jis susieja visą komunikaciją
- „rasbperryPi“programa - programa, siunčianti vaizdo įrašus, valdanti jūsų „python“scenarijus
- bibliotekos, kuriose rasite klasių, funkcijų apibrėžimus
Remoteme.org yra greita sistema. Jūs susiejate visus savo įrenginius, galite ten priglobti savo tinklalapius, peržiūrėti prijungtus įrenginius. Remoteme.org sistema buvo sukurta tam, kad padėtų jums pradėti kurti savo projektus, nesijaudindami dėl protokolinio ryšio, pagrindinė idėja yra siųsti dvejetainius pranešimus tarp įvairių įrenginių, tokių kaip tinklalapiai, RasbeprryPI, arduino ir scenarijai.
Kita vertus, „Remoteme.org“suteikia jums visišką failų valdymą, galite lengvai jį pakeisti, rašydami savo funkcijas
Šioje pamokoje aš jums parodysiu, kaip padaryti nuostabų projektą, nerašant jokio kodo.
Šios pamokos pabaigoje įdėjau naudingų nuorodų, kurios padės jums suprasti remoteme.org sistemą.
2 žingsnis: ko reikia:
- Aviečių PI Zero W
- Speciali kamera
- „Adafruit“16 kanalų 12 bitų PWM/servo tvarkyklė - I2C sąsaja - PCA9685 arba jo klonas
- Du servo mechanizmai, suderinami su fotoaparato laikikliu
- Fotoaparato laikiklis
- Baterijos - Pamokoje dvi prijungimo galimybės
- H tiltas TB6612FNG, skirtas vairo vairui valdyti
- PCB erelio failai Tai lengva padaryti šiluminio perdavimo metodu DC-DC
- „DC Down“keitiklio modulis
- Roboto dėklas
3 žingsnis: jungtys
„Raspberry pi“valdymo servo mechanizmas per PWM modulį ir variklio greitis per „H“tiltą, kuris yra prijungtas prie „RasbperryPi“kaiščių, PWM įvestį į „H“tiltą generuoja tas pats modulis, kurį naudoju servo sistemoms (kurias dalis minėjau aukščiau, loginių keitiklių nereikia)
4 žingsnis: PCB
Iš čia galite atsisiųsti PCB erelio failus. Keliai yra riebūs, todėl juos lengva padaryti naudojant terminio perdavimo metodą
5 žingsnis: PCB išvestys
- PWM įvestis pavaros varikliams Turėtų būti prijungta prie PWM modulio 15 ir 16 kaiščių (patikrinkite žalią stačiakampį PWM modulio paveikslėlyje)
- Pavaros variklių įėjimo galia (patikrinkite, su kokia maksimalia įtampa gali veikti jūsų varikliai)
- „RasbperryPi“ir PWM modulio maitinimas turi būti tiksliai toks
- Pavaros variklio išėjimai (yra du išėjimai, nes suporuosime pavaros variklius)
- Servo mechanizmų galia - taip pat turite patikrinti, kokia įtampa jiems tinka
- Perjungus dabartinę 5 -osios įvesties galią, bus varomi ir varikliai, todėl nieko nereikia prijungti prie 2 įvesties
- Trumpiklis, jei yra „RasbperryPi“bus maitinamas iš trečiojo įvesties - prieš padėdami trumpiklį čia patikrinkite, ar jungtys yra geros - nenorite sudeginti savo RPi
- Leiskite čia lituoti kabelius, nes mums nereikia loginių keitiklių
6 žingsnis: kaip tai veiks
„RasbperryPi“yra „python“scenarijus, kuriame naudojamos dvi bibliotekos
- importuoti RPi. GPIO kaip GPIO-kaiščiams 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM žymėjimas), kurie yra prijungti prie H tilto
- importuoti „Adafruit_PCA9685“PWM moduliui
Rpi kaiščiai yra sujungti taip: 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) ir H tilto valdymo režimas (pirmyn, atgal, sustojimas, trumpa pertrauka). H tiltui taip pat reikia dviejų PWM signalų, kad galėtume valdyti greitį arba variklio sukimąsi. Kadangi projekte mes jau turime PWM valdiklį (naudojamą servo), mes jį taip pat naudosime generuodami PWM H tiltui.
PWM modulis naudoja I2C ryšio protokolą. Aš naudoju darbą iš dėžutės „Adafruit_PCA9685“. biblioteka
7 žingsnis: automobilio surinkimas - ratai
Pradėsime nuo pavaros variklių prijungimo prie automobilio dėklo. Kairysis/šoninis varikliai jungiasi kartu ir abu suporuojami, prijungiami prie tam tikro maitinimo kabelio, kuris vėliau bus prijungtas prie PCB. Svarbi pastaba jungiant variklių ratus iš abiejų pusių turi suktis ta pačia kryptimi.
8 veiksmas: maitinimas (AA įkraunamos baterijos) 1/2
Parašysiu dvi maitinimo galimybes Automobilis pirmasis yra iš 10xAA įkrovimo baterijų Pagaliau paveikslėlyje nupiešiau raudonų spalvų džemperius, kuriuos reikia uždėti.
9 veiksmas: maitinimas („Li-Po“7,2 V baterijos) 2/2 parinktis
Antrasis variantas yra 7.2 LI-PO baterija. Šiuo atveju mes gavome 3 įtampas - 5v Rpi ir moduliui, 6V servo ir tiesiogiai iš akumuliatorių 7,2 voltų pavaros varikliams. Turėjau naudoti du pakopinius modulius
2 variantas su LI-PO yra geresnis:
- Baterijos yra didesnės talpos - automobilis važiuos ilgiau
- Didesnė pavaros variklių įtampa - automobilis važiuos greičiau
- Mažesnė tikimybė, kad pradėjus surasti varomuosius variklius, galime patirti didžiulį įtampos kritimą ir RPI paleidimą iš naujo.
10 žingsnis: litavimas
Aš įdėjau į PCB keletą tarpiklių PWM moduliui. Nėra ką rašyti, tik peržiūrėkite vaizdus, kaip viską sulieti
11 veiksmas: fotoaparatas
Mes prijungiame fotoaparatą, čia yra parašyta, kaip centruoti servo mechanizmus prieš montuojant į fotoaparato laikiklį, tačiau trumpiausias būdas yra švelniai rankiniu būdu patikrinti maksimalią sukimosi padėtį ir nustatyti servo centrinę padėtį. Šiuos centrinius servo mechanizmus įdėjome į fotoaparato laikiklį centrinėje padėtyje (fotoaparatas nukreiptas tiesiai į priekį, kaip ir nuotraukoje)
12 žingsnis: automobilių dalių sujungimas
PCB aš padariau mažą organinio stiklo stalą
13 veiksmas: „App.remoteme.org“konfigūracija
Aš naudoju nemokamą sistemą app.remoteme.org, kuri padeda jums užmegzti ryšius, ir ji jau turi mums reikalingus scenarijus
Pagal šią pamoką aš žingsnis po žingsnio parodysiu, ką reikia padaryti norint vairuoti automobilį (čia rasite daugiau informacijos)
- Prisiregistravę dainuokite https://app.remoteme.org. Jūs būsite automatiškai prisijungę
- kairėje atidarykite skirtuką „Žetonas“, tada spustelėkite „naujas žetonas“, nurodykite pavadinimą ir spustelėkite Gerai, mes ką tik sukūrėme naują žetoną (vaizdas ekrane)
- šiame pavyzdyje simbolinė vertė yra: ~ 1_ & p@+BNnZ@A+x8 (jūsų bus kitokia;))
14 veiksmas: „RasbperryPi“konfigūracija
glaistymo pulte (čia kaip nustatyti mūsų RPi įjungti kameros I2c ryšį)
git klonas git: //github.com/remoteme/remoteme.git
cd nuotoliniu būdu
python3.5 install.py
- „Instalator“užduos mums keletą klausimų, kai atsakysime [Y], ir patvirtins [enter]
- kai diegimas paprašys prieigos rakto, įklijuosime („Shift“+„Insert“), nukopijuotą iš programos, ir „Enter“
- Pavadinimas, pavyzdžiui, Rpi
- deviceId 1 Įveskite
- po įdiegimo - paleiskite programą
./runme.sh
15 veiksmas: jungčių tikrinimas
Grįžkime į
Įrenginių skirtuke matysime prijungtą RPi (žalia nuorodos piktograma reiškia, kad RPi yra prijungtas dabar)
16 veiksmas: pridėkite „Python“scenarijų
Dabar pridėsime „python“scenarijų, kuris jau yra šablonuose, todėl mums nieko nereikia programuoti.
Įrenginių skirtuke atidarykite „RasbperryPi“meniu ir pasirinkite „Pridėti išorinį scenarijų“.
Kai pasirodys naujas langas, pateikite informaciją, kaip parodyta aukščiau
Nepamirškite pasirinkti šablono „car4wd“. Po šių veiksmų remoteme.org pridės „python“scenarijų prie mūsų „RasbperryPi“ir paleis jį iš naujo
17 veiksmas: patikrinkite, ar „Python“scenarijus buvo pridėtas sėkmingai
Įrenginių skirtuke turėtų būti pridėtas naujas „Python“scenarijaus įrenginys, o jo įrenginio ID yra 2. Į šį įrenginio ID tinklalapį bus siunčiami pranešimai, skirti valdyti automobilį
18 veiksmas: tinklalapio pridėjimas prie „Control Car“
Įrenginių skirtuke spustelėkite „Naujas“, tada „Interneto puslapis“. Mes tiesiog pridedame kitą įrenginį - „webPage“, kurį naudosime savo automobiliui valdyti. Kadangi tinklalapyje naudojome šabloną „car4wdDesktop“, jau yra beveik paruošti naudoti failai
19 veiksmas: sukonfigūruokite „WebPage“įrenginį, kad jis valdytų automobilį 1/2
Įrenginio skirtuke išplėskite „WebPage“ir spustelėkite index.html, tada - „Open“
20 veiksmas: sukonfigūruokite „WebPage“įrenginį, kad jis valdytų automobilį 2/2
Pasirodo langas, tada turime pateikti įrenginio ID mūsų python scenarijų mūsų atveju deviceId yra 2. Pakeiskime paveikslėlyje parodytą vietą
21 veiksmas: atidarykite automobilio valdymo centrą
Dabar atėjo laikas atidaryti mūsų puslapį ir pamatyti, kaip jis veikia. Įrenginio skirtuke spustelėkite index.html, tada „Atidaryti naujame skirtuke“Norėdami gauti vaizdo įrašo peržiūrą, turite naudoti „Chrome“arba „Firefox“naršyklę, kitos naršyklės visiškai nepalaiko „webRTC“
22 veiksmas: fotoaparato konfigūracija 1/2
Kai perkelsime pelę į vaizdo sritį, kamera turėtų pakeisti padėtį ir ji turėtų veikti tiksliai kaip FPS žaidimuose. Tikriausiai jis nejudės teisingai
23 veiksmas: fotoaparato konfigūracija 2/2
Atidarykite „script.js“(skirtukas „Įrenginiai“išplėskite tinklalapį, tada spustelėkite „script.js“, tada atidarykite) ir raskite vietą, kurią rodžiau ekrane
mano korpuso centro padėtis yra 560 ir 430, o judesių diapazonas - abiem ašims 200
Turite eksperimentuoti su šiais skaičiais, kad gautumėte fotoaparato padėties centrą ir sklandžius judesius. Jei naudojote šią pamoką, tiesiog nukopijuokite įklijuotas duotas vertes
24 žingsnis: vairavimas 1/2
Jei paspausite klaviatūros rodyklę aukštyn, matuokliai turėtų pakeisti padėtį ir automobilis turėtų važiuoti. Jei paspausite rodyklę „aukštyn“ir automobilis suksis, tada ekrano vietose turite pridėti/pašalinti minusą.
Po šios operacijos paspaudus „aukštyn“rodyklę automobilis turėtų važiuoti į priekį, o rodyklė žemyn - atgal.
25 žingsnis: vairavimas 2/2
Dabar sukite - paspauskite rodyklę į kairę, jei automobilis sukasi į dešinę Turite apversti kabelius (patikrinkite paveikslėlį aukščiau)
Jei lituosite šiuos kabelius, galite juos pakeisti adresu script.js, tiesiog pakeiskite variklių greičio siuntimo tvarką, prieš:
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ())); pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));
po:
pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));
pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ()));
pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));
ir dabar jūs turite žaisti su minusais kaip vieną žingsnį anksčiau, kad jis veiktų tinkamai;). Kaip jūs tikriausiai pastebėjote po paspaustos rodyklės automobilis nevažiuoja visu greičiu, kad automobilis judėtų greičiau, tik greitai atleiskite rodyklę aukštyn, kai ji yra maksimalioje padėtyje ir dar kartą paspauskite ir palaikykite
26 žingsnis: kaip tai veikia
Tinklalapis siunčia 9 baitų pranešimus į „python“scenarijų tokiu formatu:
- 1 baitas vieno baito sveikasis skaičius 1
- 2 baitai sveiko skaičiaus X kameros padėtis
- 2 baitai sveiko skaičiaus Y kameros padėties
- 1 baitų sveiko kairiojo variklio režimas (3 = atgal, 1 = pirmyn, 2 = sustojimas)
- 1 baito sveiko kairiojo variklio greitis
- 1 baitų sveikojo variklio režimas (3 = atgal, 1 = pirmyn, 2 = sustojimas)
- 1 baitas sveikasis variklio greitis
pranešimas siunčiamas faile „script.js“, esant funkcijai „sendNow ()“
adresu RasbperryPi python.py gauna šį pranešimą į funkciją „onUserMessage“
Galite tai patikrinti ir šiek tiek pažaisti, kad žinotumėte, kas vyksta.
klasės funkcijų aprašymas čia
27 veiksmas: planšetinis kompiuteris, valdymas mobiliuoju telefonu
Mes pridėjome naują tinklalapį nepaprastai, kaip ir anksčiau, bet dabar pasirenkame šabloną „car4wdMobile“
Tada viską sukonfigūruosime scenarijuje.
28 veiksmas: atidarykite puslapį mobiliajame telefone
Užuot prisijungę prie savo paskyros iš mobiliojo telefono, tiesiog nuskaitykite anoniminį QR adresą.
išsami informacija apie QR čia
Jei jūsų mobiliojo telefono valdymas veikia, kai RPi ir mobilusis veikia tuo pačiu „Wi -Fi“ryšiu, bet neveikia, jei naudojate mobilųjį internetą, turite pridėti posūkio serverį, kaip tai padaryti, parašiau čia
29 veiksmas: „Turn Server“pridėjimas
Kartais (kai esate už NAT ar kai kurių užkardos nustatymų) Jūs negalite prijungti savo roboto iš kito tinklo, tada jūsų robotas yra prijungtas. Tai nėra didelė problema, tada turite pridėti posūkių serverį.
Aš išbandžiau XIRSYS įmonės serverį (jis nemokamas kūrėjams) ir parodysiu, kaip sukonfigūruoti posūkio serverį naudojant XIRSYS sistemą
Registruotis:
global.xirsys.net/dashboard/signup
tada spustelėkite „pliusas“, kad pridėtumėte programą
dešinėje, skiltyje „Statiniai posūkio kredencialai“Turite visus reikiamus duomenis. Nukopijuokite jį į failą webrtc_streamer.conf, norėdami tai padaryti, eikite į
išplėsti RaspberryPi deivces
spustelėkite failą webrtc_streamer.conf
spustelėkite atidaryti
ir pridėti informaciją
turn_server = turn_username =
turn_credential =
baigę redaguoti Turėtumėte turėti kažką panašaus į ekraną.
tada spustelėkite Išsaugoti ir iš naujo paleiskite „Rpi“, spustelėdami „RasbperryPi“įrenginio meniu ir pasirinkite iš naujo
Paleidus RPi programą, galite peržiūrėti vaizdo įrašo peržiūrą savo mobiliajame telefone, net jei naudojate mobilųjį internetą.
30 žingsnis: vairavimas mobiliuoju telefonu
1 apskritime mes dedame kairįjį nykštį, 2 - dešinėje - nebūtinai turi būti tiksliai šiuose taškuose - tinklalapis nustatys nulinę padėtį iškart palietus ekraną ir judindamas nykščius (kairė vairavimo kryptis, dešinė kameros padėtis) Galite valdyti tavo mašina
31 žingsnis: Santrauka
Tikiuosi, kad jums patiko ši pamoka, kaip jau rašiau šioje pamokoje, yra daugiau informacijos apie tai, kaip ji veikia po gaubtu.
kai kurios nuorodos:
remoteme.org - pagrindinis remoteme.org puslapis, kuriame rasite dokumentus ir vadovėlius
FB gerbėjų puslapis - „Facebook“gerbėjų puslapio naujausia informacija apie remoteme.org
„Youtube“- keletas projekto vaizdo įrašų, pamokų
Sveikinimai, Maciek
Rekomenduojamas:
Žaliuzių valdymas naudojant ESP8266, „Google Home“ir „Openhab“integraciją bei žiniatinklio valdymą: 5 žingsniai (su paveikslėliais)
Žaliuzių valdymas Naudojant ESP8266, „Google Home“ir „Openhab“integraciją bei žiniatinklio valdymą: šioje instrukcijoje parodysiu, kaip prie žaliuzių pridėjau automatikos. Aš norėjau, kad būtų galima pridėti ir pašalinti automatiką, todėl visas montavimas yra klipas. Pagrindinės dalys yra: Žingsninis variklis Žingsninis vairuotojas valdomas iš ESP-01 Pavaros ir montavimas
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: 8 žingsniai (su paveikslėliais)
7 segmentų LED ekrano valdymas naudojant ESP8266 žiniatinklio serverį: mano projekte yra „Nodemcu ESP8266“, kuris valdo 7 segmentų ekraną per http serverį, naudojant html formą
Papildytos realybės žiniatinklio naršyklė: 9 žingsniai
Papildytos realybės žiniatinklio naršyklė: Šiandien mes ketiname sukurti išplėstinės realybės žiniatinklio naršyklę, skirtą „Android“. Ši idėja kilo, kai „ExpressVPN“paprašė manęs sukurti remiamą „YouTube“vaizdo įrašą. Kadangi tai mano pirmasis, norėjau padaryti tai, kas susiję su jų produktu. Pr
Programos kūrimas naudojant „Visual Basic“: žiniatinklio naršyklė: 9 veiksmai
Programos kūrimas naudojant „Visual Basic“: žiniatinklio naršyklė: ši instrukcija paaiškina paprastos žiniatinklio naršyklės programos kūrimo procesą VB.NET. Jis sukurtas kaip tolesnis mano pirmasis „VB.NET Instructable“: pirmosios programos kūrimas naudojant „Visual Basic“. Rekomenduojama perskaityti šią instrukciją
Kaip sukurti žiniatinklio naršyklę naudojant „Visual Basic“: 11 žingsnių
Kaip sukurti žiniatinklio naršyklę naudojant „Visual Basic“: Pirmiausia turite atsisiųsti „Microsoft Visual Basic“. Bet kokia „Visual Basic“forma yra gera, tačiau atminkite, kad kai kurios iš jų kainuoja. Aš naudoju nemokamą „Visual Basic“versiją „Express Edition“bet kaip sakiau, bet kokia forma bus naudinga. http: //www.mic