Sisällysluettelo:

RasbperryPi -auto FPV -kameralla. Hallinta verkkoselaimella: 31 vaihetta (kuvien kanssa)
RasbperryPi -auto FPV -kameralla. Hallinta verkkoselaimella: 31 vaihetta (kuvien kanssa)

Video: RasbperryPi -auto FPV -kameralla. Hallinta verkkoselaimella: 31 vaihetta (kuvien kanssa)

Video: RasbperryPi -auto FPV -kameralla. Hallinta verkkoselaimella: 31 vaihetta (kuvien kanssa)
Video: Урок 12. Настройка Raspberry Pi для квадрокоптера 2024, Heinäkuu
Anonim
Image
Image

Rakennamme 4wd -auton - ohjaus on samanlainen kuin tankissa - kääntääksesi pyörien toista puolta eri pyörimisnopeudella kuin toinen. Autossa kamera asetetaan erityiseen pidikkeeseen, jossa voimme muuttaa kameran asentoa. Robottia ohjataan verkkoselaimella (kromi tai firefox työpöydällä tai Firefox matkapuhelimella), selaimella, saamme kameravideon (vain 200 ms: n viiveellä), ja selaimesta voimme hallita auton liikkeitä ja kameran asento. Viestinnän helpottamiseksi olen käyttänyt app.remoteme.org -järjestelmää, ja tämän tyyppistä autoa ohjataan myös laatikosta, joten sinun ei tarvitse kirjoittaa omaa koodiasi, mutta voit tietysti muokata skriptejä lisää uusia mahdollisuuksia jne.

Tarkista kaikki liitännät ennen virran kytkemistä piirilevyyn

Vaihe 1: Jotkut tiedot App.remoteme.org -sivustosta

Järjestelmässä on kolme osaa

  • verkkosovellus - kun isännöit ohjaussivujasi ja se linkittää kaiken viestinnän
  • rasbperryPi -ohjelma - ohjelma, joka lähettää videota, hallitsee python -komentosarjojasi
  • kirjastot, joista löydät luokan, toimintojen määritelmät

Remoteme.org on järjestelmän nopea Voit linkittää kaikki laitteesi yhteen, voit isännöidä siellä verkkosivujasi, tarkastella yhdistettyjä laitteitasi. Remoteme.org -järjestelmä on suunniteltu auttamaan sinua aloittamaan projektiesi tekeminen, ilman huolta protokollaviestinnästä. Pääidea on lähettää binääriviestejä eri laitteiden, kuten verkkosivujen, RasbeprryPI: n, arduino -ohjelmien ja skriptien, välillä.

Toisaalta Remoteme.org antaa sinulle täyden hallinnan tiedostoistasi, voit helposti muokata sitä kirjoittamalla omat toiminnot

Tässä opetusohjelmassa näytän sinulle, miten voit tehdä mahtavan projektin ilman koodia kirjoittamista.

Tämän opetusohjelman loppuun olen laittanut hyödyllisiä linkkejä, jotka auttavat sinua ymmärtämään remoteme.org -järjestelmän.

Vaihe 2: Mitä tarvitaan:

Mitä tarvitaan
Mitä tarvitaan
Mitä tarvitaan
Mitä tarvitaan
  • Vadelma PI Zero W
  • Erillinen kamera
  • Adafruit 16 -kanavainen 12 -bittinen PWM/servo -ohjain - I2C -liitäntä - PCA9685 tai sen klooni
  • Kaksi servomekanismia, jotka ovat yhteensopivia kameran pidikkeen kanssa
  • Kameran pidike
  • Akut - Opetusohjelmassa kaksi liitäntämahdollisuutta
  • H -silta TB6612FNG, pyörän kelan ohjaamiseen
  • PCB-kotkatiedostot Lämmönsiirtomenetelmästä on helppo tehdä DC-DC
  • Vaihe alas -muunninmoduuli DC
  • Robottikotelo

Vaihe 3: Liitännät

Liitännät
Liitännät

Raspberry pi -ohjaus servomekanismi PWM -moduulin kautta ja moottorin nopeus H -sillan kautta, joka on kytketty RasbperryPi -nastoihin, PWM -tulo H -siltaan generoidaan samalla moduulilla, jota käytin servoille (joita osia edellä mainitsen, ei tarvita logiikkamuuntimia)

Vaihe 4: PCB

PCB
PCB
PCB
PCB

Voit ladata PCB -kotkatiedostoja täältä. Polut ovat rasvaa, joten se on helppo tehdä lämmönsiirtomenetelmällä

Vaihe 5: PCB -lähdöt

PCB -lähdöt
PCB -lähdöt
PCB -lähdöt
PCB -lähdöt
  1. Käyttömoottorien PWM -tulo Liitetään PWM -moduulin 15. ja 16. nastaan (tarkista vihreä suorakulmio PWM -moduulin kuvasta)
  2. Käyttömoottorien tehonsyöttö (tarkista, millä maksimijännitteellä moottorisi voivat toimia)
  3. RasbperryPi- ja PWM -moduulin virran on oltava täsmälleen
  4. Käyttömoottorin lähdöt (lähtöjä on kaksi, koska pariliitämme moottorit)
  5. Servomekanismien teho - myös Sinun on tarkistettava, mikä jännite on hyvä heille
  6. Hyppää nykyiseen tehoonsa viidennestä tulosta, joka käyttää myös moottoreita, joten tuloon 2 ei tarvitse liittää mitään
  7. Hyppyjohdin, jos läsnä RasbperryPi saa virran 3. tulosta - ennen kuin asetat hyppyjohtimen tähän, tarkista, ovatko liitännät kunnossa - et halua polttaa RPi: täsi
  8. Annetaan juottaa tänne kaapeleita, koska emme tarvitse logiikkamuuntimia

Vaihe 6: Kuinka se toimii

RasbperryPissä on python -skripti, joka käyttää kahta kirjastoa

  • tuoda RPi. GPIO GPIO: na-nastat 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM-merkintä), jotka on kytketty H-siltaan
  • Tuo Adafruit_PCA9685 PWM -moduulille

RPI-nastat on kytketty seuraavasti 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) ja H-sillan ohjaustapa (eteenpäin, taaksepäin, pysäytys, lyhyt tauko). H -silta tarvitsee myös kaksi PWM -signaalia, jotta voimme hallita nopeutta tai moottorin pyörimistä. Koska projektissa meillä on jo PWM -ohjain (jota käytetään servolle), käytämme sitä myös PWM: n luomiseen H -siltaa varten.

PWM -moduuli käyttää I2C -yhteyskäytäntöä. Olen käyttänyt Adafruit_PCA9685 -laatikon ulkopuolista työskentelyä. kirjasto

Vaihe 7: Auton kokoaminen - Pyörät

Auton kokoaminen - Pyörät
Auton kokoaminen - Pyörät
Auton kokoaminen - Pyörät
Auton kokoaminen - Pyörät

Aloitamme käyttömoottorien liittämisestä auton koteloon. Vasemman-/sivupuoleiset moottorit kytkeytyvät yhteen ja molemmat muodostavat pariliitoksen johonkin virtajohtoon, joka myöhemmin liitetään piirilevyyn. TÄRKEÄ HUOMAUTUS moottoria liitettäessä molemmin puolin pyörien on pyöritettävä samaan suuntaan.

Vaihe 8: Virta (AA -paristot) Vaihtoehto 1/2

Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2
Virta (AA -paristot) Vaihtoehto 1/2

Kirjoitan kaksi tehoa. Auto Ensimmäinen on 10xAA -latausparistoista. Viimeisenä kuvassa olen piirtänyt punaiset värit, jotka on asetettava.

Vaihe 9: Virta (7,2 V: n Li-Po-akut) Vaihtoehto 2/2

Virta (7,2 V: n Li-Po-akut) Vaihtoehto 2/2
Virta (7,2 V: n Li-Po-akut) Vaihtoehto 2/2
Virta (7,2 V: n Li-Po-akut) Vaihtoehto 2/2
Virta (7,2 V: n Li-Po-akut) Vaihtoehto 2/2

Toinen vaihtoehto on 7,2 LI-PO -akku. Tässä tapauksessa saimme 3 jännitettä - 5 V Rpi: lle ja moduulille, 6 V servoille ja suoraan akkuilta 7,2 volttia käyttömoottoreille. Minun piti käyttää kahta askelmoduulia

Vaihtoehto 2 LI-PO: n kanssa on parempi:

  • Akkujen kapasiteetti on suurempi - auto ajaa pidempään
  • Suurempi jännite käyttömoottoreille - auto ajaa nopeammin
  • Vähemmän todennäköistä, että sen jälkeen, kun käyttömoottorit alkavat paikata, jännitehäviö ja RPI käynnistyy uudelleen.

Vaihe 10: Juotos

Juotos
Juotos
Juotos
Juotos
Juotos
Juotos
Juotos
Juotos

Olen laittanut piirilevylle joitain PWM -moduulin välikappaleita. Ei ole mitään kirjoitettavaa, katso vain kuvia, kuinka juottaa kaikki yhteen

Vaihe 11: Kamera

Kamera
Kamera

Yhdistämme kameran, tässä on kirjoitettu, miten servomekanismit keskitetään ennen kameran pidikkeeseen kiinnittämistä, mutta lyhin tapa on tarkistaa varovasti manuaalisesti suurin pyörimisasento ja asettaa servot keskiasentoon. Nämä keskitetyt servomekanismit laitamme kameran pidikkeeseen keskiasennossa (kamera osoittaa suoraan eteenpäin kuten valokuvassa)

Vaihe 12: Autojen osien yhdistäminen

Autojen osien yhdistäminen
Autojen osien yhdistäminen
Autojen osien yhdistäminen
Autojen osien yhdistäminen
Autojen osien yhdistäminen
Autojen osien yhdistäminen

PCB: lle olen tehnyt pienen pleksilasipöydän

Vaihe 13: App.remoteme.org -määritykset

App.remoteme.org Kokoonpano
App.remoteme.org Kokoonpano

Olen käyttänyt ilmaista app.remoteme.org -järjestelmää, joka auttaa sinua muodostamaan yhteyksiä, ja siinä on jo tarvitsemamme skriptit

Tässä ohjeessa näytän vain askel askeleelta, mitä pitäisi tehdä auton ajamiseksi (täältä löydät lisätietoja)

  • Laula sisään osoitteessa https://app.remoteme.org rekisteröitymisen jälkeen Sinut kirjataan automaattisesti sisään
  • avaa Token -välilehti vasemmalla, napsauta sitten "uusi merkki" ja anna nimi ja napsauta OK, loimme juuri uuden tunnuksen (kuva näytöllä)
  • tässä esimerkissä tunnuksen arvo on: ~ 1_ & p@+BNnZ@A+x8 (sinun on erilainen;))

Vaihe 14: RasbperryPi -määritykset

RasbperryPi -kokoonpano
RasbperryPi -kokoonpano

kittikonsolissa (tässä ohjeet RPi -kameran I2c -tiedonsiirron käyttöönottoon)

git klooni git: //github.com/remoteme/remoteme.git

cd kaukosäädin

python3.5 install.py

  • Instalator kysyy meiltä joitain vastauksiamme [Y] ja vahvistaa [enter]
  • kun asennus pyytää tunnusta, liitämme (shift+insert) sovelluksesta kopioidun tunnuksen ja Enter
  • nimi esimerkiksi Rpi
  • deviceId 1 Enter
  • asennuksen jälkeen - suorita ohjelma

./runme.sh

Vaihe 15: Yhteyksien tarkistaminen

Tarkista liitännät
Tarkista liitännät

Palataan takaisin osoitteeseen

Laitteet -välilehdellä näemme yhdistetyn RPi: n (vihreä linkkikuvake tarkoittaa, että RPi on kytketty juuri nyt)

Vaihe 16: Python -komentosarjan lisääminen

Python -skriptin lisääminen
Python -skriptin lisääminen
Python -skriptin lisääminen
Python -skriptin lisääminen

Nyt lisäämme python -komentosarjan, joka on jo malleissa, joten meidän ei tarvitse ohjelmoida mitään.

Avaa Laitteet -välilehdellä RasbperryPi -valikko ja valitse "Lisää ulkoinen komentosarja".

Kun uusi ikkuna tulee näkyviin, anna yllä olevan kuvan mukaiset tiedot

Älä unohda valita mallia "car4wd". Näiden vaiheiden jälkeen remoteme.org lisää python -komentosarjan RasbperryPi -laitteeseemme ja käynnistää sen uudelleen

Vaihe 17: Tarkista, onko Python -komentosarja lisätty onnistuneesti

Tarkista, onko Python -komentosarja lisätty onnistuneesti
Tarkista, onko Python -komentosarja lisätty onnistuneesti

Laitteet -välilehdelle on lisättävä uusi python -skriptilaite ja sen laite -ID on 2. Tämän laitteen tunnussivu lähettää viestejä auton ohjaukseen

Vaihe 18: Verkkosivun lisääminen Control Cariin

Verkkosivun lisääminen Control Cariin
Verkkosivun lisääminen Control Cariin

laitteiden välilehdellä napsauta "Uusi" ja sitten "Verkkosivu". Lisäämme vain toisen laitteen - webPage, jota käytämme automme hallintaan. Ja koska käytimme mallia "car4wdDesktop" verkkosivulla, tiedostot ovat jo lähes käyttövalmiita

Vaihe 19: Määritä WebPage -laite ohjaamaan autoa 1/2

Määritä WebPage -laite ohjaamaan autoa 1/2
Määritä WebPage -laite ohjaamaan autoa 1/2

Laajenna WebPage laitteen välilehdellä ja napsauta index.html ja sitten Avaa

Vaihe 20: Määritä WebPage -laite ohjaamaan autoa 2/2

Määritä WebPage -laite ohjaamaan autoa 2/2
Määritä WebPage -laite ohjaamaan autoa 2/2

Ikkuna tulee näkyviin, ja meidän on annettava python -skriptimme deviceId tapauksessamme deviceId on 2. Muutetaan kuvassa näkyvä paikka

Vaihe 21: Avaa auton ohjauskeskus

Avaa auton ohjauskeskus
Avaa auton ohjauskeskus
Avaa auton ohjauskeskus
Avaa auton ohjauskeskus

Nyt on aika avata sivumme ja katsoa, miten se toimii. Napsauta laitevälilehdessä index.html ja sitten "Avaa uudessa välilehdessä" Saadaksesi videon esikatselun Sinun on käytettävä chrome- tai firefox -selainta, muut selaimet eivät tue webRTC: tä kokonaan

Vaihe 22: Kameran asetukset 1/2

Kameran asetukset 1/2
Kameran asetukset 1/2

Kun siirrämme hiirtä videoalueelle, kameran pitäisi vaihtaa asentoa, ja sen pitäisi toimia täsmälleen kuten FPS -peleissä. Se ei todennäköisesti liiku oikein

Vaihe 23: Kameran määritykset 2/2

Kameran asetukset 2/2
Kameran asetukset 2/2

Avaa script.js (Laitteet -välilehti laajenna verkkosivu ja napsauta sitten script.js ja avaa sitten) ja etsi näytössä näytetty paikka

kotelon keskiasennossa on 560 ja 430 ja liikealue on molemmille akseleille 200

Sinun on kokeiltava näitä numeroita, jotta saat kameran asennon keskipisteen ja sujuvat liikkeet. Jos käytit tätä opetusohjelmaa, kopioi vain liitetyt annetut arvot

Vaihe 24: Ajaminen 1/2

Ajaminen 1/2
Ajaminen 1/2

Jos painat näppäimistön nuolta ylös, mittarien on vaihdettava asentoa ja auton on ajettava. Jos painat "ylös" -nuolta ja auto pyörii, sinun on lisättävä/poistettava miinus paikoista ruudulla.

Tämän toimenpiteen jälkeen”ylänuolinäppäin” -auton pitäisi ajaa eteenpäin ja alaspäin osoittavan auton taaksepäin.

Vaihe 25: Ajaminen 2/2

Ajaminen 2/2
Ajaminen 2/2

Käänny nyt - paina vasenta nuolta, jos auto kääntyy oikealle Sinun on käännettävä johdot (tarkista yllä oleva kuva)

Jos juotat nämä kaapelit, voit vaihtaa sen osoitteessa script.js.muuta vain moottorien nopeuden lähetysjärjestys, ennen:

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));

jälkeen:

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));

ja nyt sinun on pelattava miinuksilla, kuten yksi askel ennen kuin saat sen toimimaan oikein;). Kuten luultavasti huomasit osuman osoittavan nuolen jälkeen auto ei aja täydellä nopeudella saadaksesi auton liikkumaan nopeammin vain vapauttamalla nopeasti ylänuoli, kun se on maksimiasennossa ja pidä sitä painettuna uudelleen

Vaihe 26: Miten se toimii?

Verkkosivu lähettää 9-tavuisia viestejä python-komentosarjalle seuraavassa muodossa:

  • 1 tavu yksi tavu kokonaisluku 1
  • 2 tavua kokonaisluku X kameran sijainti
  • 2 tavua kokonaisluku Y -kameran sijainti
  • 1 tavu kokonaisluku vasen moottoritila (3 = taaksepäin, 1 = eteenpäin, 2 = pysäytys)
  • 1 tavu kokonaisluku vasen moottorin nopeus
  • 1 tavu kokonaisluku oikea moottoritila (3 = taaksepäin, 1 = eteenpäin, 2 = pysäytys)
  • 1 tavu kokonaisluku oikea moottorin nopeus

lähetetään viesti script.js -tiedostossa toiminnossa "sendNow ()"

osoitteessa RasbperryPi python.py saa tämän viestin toimintoon "onUserMessage"

Voit tarkistaa sen ja pelata vähän, jotta tiedät mitä tapahtuu.

luokan toimintojen kuvaus tästä

Vaihe 27: Tabletti, mobiiliohjaus

Tabletti, mobiiliohjaus
Tabletti, mobiiliohjaus

Lisäämme uuden verkkosivun erinomaisesti kuten edellisen kerran, mutta nyt valitsemme mallin "car4wdMobile"

Seuraavaksi määritämme kaikki script.js -tiedostossa kuten työpöydän ohjausverkkosivulle Viestimuoto on täsmälleen sama, joten meidän ei tarvitse muuttaa python.py -komentosarjaa.

Vaihe 28: Avaa sivu matkapuhelimessa

Avaa sivu matkapuhelimessa
Avaa sivu matkapuhelimessa
Avaa sivu matkapuhelimessa
Avaa sivu matkapuhelimessa

Sen sijaan, että kirjaudut tilillesi mobiililaitteelta, skannaa vain QR -anonyymi URL -osoite.

QR -tiedot täältä

Jos mobiiliohjaimesi toimii, kun RPi ja matkapuhelin ovat samassa wifi -tilassa, mutta eivät toimi, jos käytät mobiili -Internetiä, sinun on lisättävä käännöspalvelin, miten tämä on kirjoitettu

Vaihe 29: Turn -palvelimen lisääminen

Lisää käännöspalvelin
Lisää käännöspalvelin
Lisää käännöspalvelin
Lisää käännöspalvelin
Lisää käännöspalvelin
Lisää käännöspalvelin

Joskus (kun olet NAT: n tai joidenkin palomuuriasetusten takana) Et voi yhdistää robottiasi toisesta verkosta, jolloin robotti on yhdistetty. Se ei ole iso ongelma, ja sitten sinun on lisättävä käännöspalvelin.

Olen testannut XIRSYS -yrityksen palvelinta (se on ilmainen kehittäjien käyttöön) ja näytän, kuinka käännöspalvelin määritetään XIRSYS -järjestelmän avulla

rekisteröidy:

global.xirsys.net/dashboard/signup

napsauta sitten "plus" lisätäksesi sovelluksen

oikealla kohdassa "staattiset käännöstiedot" sinulla on kaikki tarvitsemasi tiedot. Kopioi se tiedostoon webrtc_streamer.conf tehdäksesi sen osoitteessa

laajenna RaspberryPi -yksiköitä

napsauta tiedostoa webrtc_streamer.conf

napsauta auki

ja lisää tietoja

turn_server = käännöksen_käyttäjänimi =

turn_credential =

muokkauksen lopettamisen jälkeen Näytössä pitäisi olla jotain vastaavaa.

napsauta sitten Tallenna ja käynnistä uudelleen Rpi napsauttamalla RasbperryPi -laitteen valikkoa ja valitsemalla Käynnistä uudelleen

Kun RPi -ohjelma on käynnistetty uudelleen, voit nähdä videon esikatselun matkapuhelimessasi, vaikka käytät mobiili -Internetiä.

Vaihe 30: Mobiiliohjaus

Mobiiliohjaus
Mobiiliohjaus

ympyrään 1 sijoitetaan vasen peukalo, 2 oikea - ei tarvitse olla täsmälleen tässä kohdassa - verkkosivu asettaa nolla -asennon heti kosketusnäytön jälkeen ja liikuttamalla peukaloja (vasen ajo, oikea kameran asento) sinun autosi

Vaihe 31: Yhteenveto

Toivottavasti pidit tästä opetusohjelmasta, kuten kirjoitin aiemmin tässä opetusohjelmassa, on lisätietoja siitä, miten se toimii konepellin alla.

muutama linkki:

remoteme.org - Remoteme.orgin kotisivu Löydät dokumentaatiota ja opetusohjelmia

FB -fanisivu - Facebook -fanisivun uusin tieto remoteme.org -sivustosta

Youtube - joitain videoita projektista, opetusohjelmia

Kippis, Maciek

Suositeltava: