Innholdsfortegnelse:

Banan/Raspberry Pi + Arduino Rover med webkamera: 9 trinn
Banan/Raspberry Pi + Arduino Rover med webkamera: 9 trinn

Video: Banan/Raspberry Pi + Arduino Rover med webkamera: 9 trinn

Video: Banan/Raspberry Pi + Arduino Rover med webkamera: 9 trinn
Video: Amazing arduino project 2024, Juli
Anonim
Banan/bringebær Pi + Arduino Rover med webkamera
Banan/bringebær Pi + Arduino Rover med webkamera

Et prosjekt jeg har gjort på fritiden. Det er en firehjuls robot som er fullstendig drevet og styrt via et webgrensesnitt. Hvis du har kommentarer eller spørsmål, er du velkommen til å kontakte meg. Dette prosjektet bruker selv 3D -trykte deler og visse kodebiter som ble opprettet av andre mennesker. Du kan finne studiepoeng og se på originalbitene på slutten av Instructuble.

Skal vi begynne?

Trinn 1: Komponenter du trenger

Komponenter du trenger
Komponenter du trenger
Komponenter du trenger
Komponenter du trenger
Komponenter du trenger
Komponenter du trenger

Her er listen over komponenter jeg brukte med koblingene og alternativene. Jeg bor i Shenzhen, Kina, og jeg kjøpte delene direkte på Taobao.

4-motorers robotchassis Alternativ: Et tilstrekkelig stort chassis vil gjøre det. Denne har 4 motorer for ekstra dreiemoment. Motorene er vanlige billige gule motorer, rater for

L293D Arduino Motor Shield rev.1 klon Alternativ: Bedre motorskjerm vurdert for mer strøm

Arduino Uno -klon Alternativ: Du kan bruke et hvilket som helst annet Arduino -kort uten vesentlige endringer i koden.

6V 4,5Ah Pb -batteri Alternativ: Det er mulig å eksperimentere med mindre LiPo -batterier hvis du vil ha lettere robot/bare bruke to motorer.

Banana Pi -alternativ: Kan bytte til Raspberry Pi 1/2/3 eller Orange Pi uten vesentlige kodeendringer. Jeg brukte Banana Pi bare fordi jeg hadde en liggende.

Alternativt webkamera: Bruk CSI -kamera for Raspberry Pi/Banana Pi/Orange Pi

Kamera Pan/tilt mount med sg60 servoer Alternativ: 3D Print tilt/pan mount for eksempel kan bruke denne.

3D -trykte deler Alternativ: La fantasien og 3D -designtalentene guide deg! Også det motsatte:)

Trinn 2: Koble motorene med L293D motorskjerm

Koble motorene med L293D motorskjerm
Koble motorene med L293D motorskjerm
Koble motorene med L293D motorskjerm
Koble motorene med L293D motorskjerm

Koble hver motor med motorskjermskrueterminaler. Her er koblingsskjemaet. Hvis du bare har to motorer og ikke vil endre koden, kan du koble dem til MOTOR 1 og MOTOR 3.

MERK: For de som bruker forskjellige motorer med høyere strømstyrke, trenger du kanskje en annen motorfører. Alternativt er en fin liten hack jeg lærte nylig at du kan piggyback ytterligere to L293D -drivere på toppen av den eksisterende (det er den midterste brikken på brettet)!

Trinn 3: Arduino Uno, motorskjerm

Arduino Uno, motorskjerm
Arduino Uno, motorskjerm

Sett Arduino Uno i saken og installer Motor Shield på toppen av den. Det er bare en måte å gjøre det på, hvis det ikke passer, gjør du noe-wong!

Arduino Uno tettsittende veske

Her er saken jeg brukte, modellen laget av Esquilo.

Trinn 4: Koble strømmen til Banana Pi og Arduino

Koble strømmen til Banana Pi og Arduino
Koble strømmen til Banana Pi og Arduino

Jeg brukte SATA -grensesnitt for å gi strøm til Banana Pi (6v). Hvis du har det samme kortet kan du også gjøre det, bare sørg for at spenningen er 5v-6v. Det er uregulert strømforsyning, så jeg antar at det er en beskyttelseskrets for SATA -strøm på Banana Pi M1.

OBS: For Raspberry Pi har du noen få alternativer: en trygg (ved hjelp av USB-kontakt for å gi 5v) og ikke så sikker (ved hjelp av GPIO-pinner). Her er lenken for å lese om tilkobling av strøm til Raspberry Pi GPIO -pinner. Vær sikker på at du

1) Bruk regulert strømforsyning

2) Sett spenningen til 5v

Det er ingen beskyttelseskrets for GPIO -pinner! Hvis du gjør noe galt, er det en alvorlig sjanse for å skade elektronikken på brettet.

For Arduino bare koble strømmen til inngangskrueterminalene på motorskjermen. Det kan ta opptil 12v.

Trinn 5: Sett Banana Pi i 3D -utskrevet etui, sett sammen resten av roveren

Sett Banana Pi i et 3D -trykt etui, sett sammen resten av roveren
Sett Banana Pi i et 3D -trykt etui, sett sammen resten av roveren
Sett Banana Pi i et 3D -trykt etui, sett sammen resten av roveren
Sett Banana Pi i et 3D -trykt etui, sett sammen resten av roveren

Jeg brukte denne saken til Banana Pi fra thingverse, laget av GermanRobotics. Omslaget til det laget jeg selv.

Sett Banana Pi i saken, dekk den med lokket, bruk limpistol for å feste Arduino Uno på toppen av Banana Pi -saken.

Dekk til batteriet med dette dekselet og fest webkameraet/vippefestet til toppen.

Hvis du bruker Banana Pi trenger du en USB -hub, siden den bare har to USB -spor (Raspberry 2, 3 har fire). Av estetiske hensyn bestemte jeg meg for å bruke en OTG 1-2 USB-hub og skjule ledningene inne i Banana Pi-saken.

Trinn 6: Maskinvare montering ferdig

Maskinvare montering ferdig!
Maskinvare montering ferdig!

La oss raskt oppsummere det vi har gjort så langt.

Vi har samlet robotplattformen, koblet strøm til Banana Pi, Arduino Uno, koblet motorer og servoer til motordriveren og brukt USB -hub for å koble USB -kamera og Arduino Uno til Banana Pi. Nå kan du teste og feilsøke maskinvaren. Koblingsskjema som viser alle tilkoblingene er på bildet for dette trinnet.

Trinn 7: Systemkonfigurasjon

Systemkonfigurasjon
Systemkonfigurasjon

Jeg brukte Raspbian Lite image for system på min pi. Lite-versjonen har ingen GUI, og kommer med bare grunnleggende pakker per installasjon. Men det tar mye mindre plass, noe som betyr at vi kan bruke mindre SD -kort. Hvis du ikke er komfortabel uten GUI, kan du også installere full image.

Koble pi -en til Internett med Ethernet -kabelen. Etter at den har startet opp, ville det første trinnet være å koble den til Wi-Fi.

Kjør følgende kommando i terminalen

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Rediger konfigurasjonsfilen til med din WiFi -legitimasjon

nettverk = {ssid = "testing" psk = "testingPassword"}

Start pi -en på nytt. Voila! Du er nå koblet til Wi-Fi.

Deretter må vi installere pip (Python Package Manager)

sudo apt-get install python-setuptools

sudo easy_install pip

Nå bruker vi pip til å installere Flask for å kjøre en webserver og pyserial for pi for å kommunisere med Arduino via seriell tilkobling.

sudo pip installere kolbe

sudo pip installer pyserial

Det siste vil være å installere og konfigurere bevegelsespakke, som vi bruker til å streame video fra webkameraet vårt.

Følg denne flotte instruksen for å gjøre dette.

Nå er vi klare til å rumle!

Trinn 8: Starte programvaren

Oppstart av programvaren
Oppstart av programvaren
Oppstart av programvaren
Oppstart av programvaren

Husker du hvordan jeg sa at vi er klare til å rumle?

Ok, litt mer sliping og så kan vi begynne å rumle:)

La oss laste ned alle nødvendige filer fra mitt github -depot.

git -klon

Last opp rover.ino til Arduino Uno. Hvis du har gjort maskinvareendringer (for eksempel ved å bruke et annet motorskjerm), må du endre skissen.

Hvis du bruker et webkamera, må du endre linjen nær bunnen av index.html -filen i malmappen. Endre nettadressen på IFRAME -linjen slik at den samsvarer med src -nettadressen for videostrømmen.

Nå kan du starte webserveren. Kjør følgende kommando

sudo python pi_rover.py

Hvis du fulgte bygningen min veldig nært og har Arduino tilkoblet, vil du se følgende (første bilde) i terminalen.

Skriv inn robotens ip -adresse i nettleseren (for eksempel i mitt tilfelle var det 192.168.1.104), du kan sjekke ip -adressen med $ ifconfig -kommandoen på Linux.

/gjør festdansen her!/

Hvis du har spørsmål, kan du spørre meg i kommentarene. Denne opplæringen er beregnet på nybegynnernivå, men ikke null-nybegynner, derfor var jeg ganske kort om tingene du bare kan google for (f.eks. Brenne systembilde til SD-kort, laste opp Arduino-skisse osv.).

Trinn 9: studiepoeng

Ideen og webserverkoden kommer fra denne flotte instruksen av jscottb. Jeg endret den for å bruke mer vanlig maskinvare, som Arduino Uno.

De 3D -trykte delene fra Thingverse.

www.thingiverse.com/thing:994827

www.thingiverse.com/thing:2816536/files

www.thingiverse.com/thing:661220

Anbefalt: