Innholdsfortegnelse:

Robotbil med Bluetooth, kamera og MIT App Inventor2: 12 trinn (med bilder)
Robotbil med Bluetooth, kamera og MIT App Inventor2: 12 trinn (med bilder)

Video: Robotbil med Bluetooth, kamera og MIT App Inventor2: 12 trinn (med bilder)

Video: Robotbil med Bluetooth, kamera og MIT App Inventor2: 12 trinn (med bilder)
Video: Arduino Robot Car Bluetooth | Arduino Robot Making | Arduino Car Bluetooth | Arduino Bluetooth Car 2024, Juli
Anonim
Image
Image
Deler og programvare
Deler og programvare

Har du noen gang ønsket å bygge din egen robotbil? Vel … dette er din sjanse !!

I denne instruksjonsboken vil jeg veilede deg i hvordan du lager en robotbil kontrollert via Bluetooth og MIT App Inventor2. Vær oppmerksom på at jeg er en nybegynner, og at dette er min første ustabilitet, så vær forsiktig i kommentarene dine.

Det er mange instruktører der ute, men i denne har jeg prøvd å kombinere mange funksjoner som: kamerastrømming, hindring av hindringer, ultralydssensor, Larson -skanner (med charlieplexing) og batteriovervåkning til en Android -app !!

Så la oss komme i gang og møte Frankie (den bruker ideer fra mange steder … derav Robo Frankenstein)

Trinn 1: Deler og programvare

Deler og programvare
Deler og programvare
Deler og programvare
Deler og programvare

Her, i hjembyen min, er det vanskelig å få tak i alle delene, derfor kunne jeg få de fleste av dem fra www.aliexpress.com

Jeg anslår at prosjektet kan bygges for USD 25 - 30 uten å ta hensyn til den gamle mobiltelefonen.

  • Bilchassis: 3 hjul, 2 motorer 6V (USD 9)
  • Arduino Nano (USD 2)
  • Bluetooth HC-05 (USD 3 til 4)
  • L293D -motorfører for å kjøre hjulmotorer (USD 1,50 for en del på 5 deler)
  • Gammelt mobilnett med kamera og Wi-Fi
  • Ultralydssensor HC-SR04 for måling til et objekt i nærheten (USD 1)
  • 6 lysdioder for Larson -skanner
  • ATtiny85 for Larson -skanner (USD 1)
  • Brødbrett (USD 1)
  • Ledninger
  • 100K Ohm motstand (4)
  • 1K Ohm motstand (2)
  • 2K Ohm motstand (1)
  • 270 Ohm motstand (3)
  • Summer

Programvare:

  • Arduino IDE
  • IP -webkamera (for gammel mobil Android)
  • MIT App Inventor2: Denne appen er flott, men fungerer bare for Android -operativsystemet (ingen Iphones … beklager!)

Trinn 2: Byggeprosess

Byggeprosess
Byggeprosess
Byggeprosess
Byggeprosess
Byggeprosess
Byggeprosess
Byggeprosess
Byggeprosess

Bilchassis er veldig enkelt å montere; den har 2 motorer 6V som driver bakhjulene og en 4 batteripakke.

Robotbilen styres via Bluetooth og Wi-Fi. Bluetooth styrer den serielle kommunikasjonen mellom bilen og MIT App inventor2, og Wi-Fi brukes til å kommunisere med kameraet (gammel mobiltelefon) installert foran bilen.

Til dette prosjektet har jeg brukt to sett med batterier: arduinoen drives av et 9V batteri og bilmotorene med 6V (fire 1,5V AA batterier).

Arduino Nano er hjernen i dette prosjektet som styrer bilen, summer, ultralydssensor HC-SR04, Bluetooth HC-05, Larson skanner (ATtiny85) og overvåker batteriene. 9V batteri går til Vin (pin 30) og Arduinos pin 27 gir 5V regulert strøm til brødbrettet. Trenger å knytte alle grunner fra alle ICene og batteriene sammen.

Vedlagt gjorde kretsdiagrammet det i Excel (Beklager …. neste gang skal jeg prøve Fritzing). Jeg har koblet alt ved hjelp av brødbrett og hann til mannlige ledningskontakter, mitt ser ut som et rotterede.

Trinn 3: L293D -motordriver

L293D motor driver
L293D motor driver
L293D motor driver
L293D motor driver

L293D er en firdoble halvstrøm H-driver som er designet for å gi toveis drivstrømmer på opptil 600 mA ved spenninger 4,5V til 36V. Den brukes til å kjøre bilhjulene.

Den drives av en 6V batteripakke (fire 1,5V AA) for motorene og bruker 5V for logikken som kommer fra regulert 5V (pin 27) i Arduino Nano. Tilkoblinger er vist i vedlagte skjema.

Det var ikke nødvendig å installere det i en kjøleribbe.

Trinn 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth drives av 5V (arduino pin 27), men det er viktig å forstå at logikknivået er 3,3V, dvs. kommunikasjon (Tx og Rx) med 3,3V. Det er derfor Rx må konfigureres med maks 3.3V som kan oppnås med en nivåskifteromformer eller, som i dette tilfellet, med en spenningsdeler ved å bruke 1K og 2K motstander som sett i kretsen.

Trinn 5: Batterimonitor

For å overvåke batterinivåene har jeg satt spenningsdelere for å bringe spenningsnivåer under 5V (Arduinos maksimal rekkevidde). Spenningsdeleren reduserer spenningen som måles til innenfor området for Arduino analoge innganger.

De analoge inngangene A4 og A6 brukes og høye motstander (100K ohm) brukes for ikke å tømme batteriene for mye i måleprosessen. Vi må inngå kompromisser hvis motstandene er for lave (10K ohm), mindre belastningseffekt, spenningsavlesning er mer nøyaktig, men mer nåværende tegning; hvis de er for høye (1M ohm), mer lasteeffekt, er spenningsavlesningen mindre nøyaktig, men mindre gjeldende tegning.

Batteriovervåkning utføres hvert 10. sekund og vises direkte i kontrolleren.

Jeg er sikker på at det er mye rom for forbedring i denne delen siden jeg leser fra to analoge pinner og den interne MUX bytter mellom dem. Jeg er ikke i gjennomsnitt flere målinger, og det er kanskje det jeg burde gjøre.

La meg forklare følgende formel:

// Les spenningen fra analog pin A4 og foreta kalibrering for Arduino:

spenning1 = (analogLes (A4)*5.0/1024.0)*2.0; //8.0V

Arduino nano-kortet inneholder 8-kanals, 10-bits analog til digital omformer. Funksjon analogRead () returnerer et tall mellom 0 og 1023 som er proporsjonalt med mengden spenning som tilføres pinnen. Dette gir en oppløsning mellom avlesninger på: 5 volt / 1024 enheter eller, 0,0049 volt (4,9 mV) per enhet.

Spenningsdeleren halverer spenningen, og for å få ekte spenning må den multipliseres med 2 !!

VIKTIG: Jeg er sikker på at det er en mer effektiv måte å drive en arduino på enn måten jeg gjør det på !! Som nybegynner har jeg lært på den harde måten. Arduino Vin pin bruker en lineær spenningsregulator som betyr at du med et 9V batteri vil brenne en stor del av strømmen i selve den lineære regulatoren! Ikke bra. Jeg gjorde det på denne måten fordi det var raskt og bare fordi jeg ikke visste bedre … men vær sikker på at i Robo Frankie versjon 2.0 vil jeg sikkert gjøre det annerledes.

Jeg tenker (høyt) at en DC DC Step up Switching Power Supply og et Li-ion oppladbart batteri kan være en bedre måte. Ditt hyggelige forslag vil være mer enn velkommen …

Trinn 6: HC-SR04 ultralydssensor

HC-SR04 ultralydssensor
HC-SR04 ultralydssensor

HC-SR04 er en ultralydssensor. Denne sensoren gir måling fra 2 cm til 400 cm med en rekkevidde på opptil 3 mm. I dette prosjektet brukes det til å unngå hindringer når det når 20 cm eller mindre, og også for å måle avstanden til et objekt som sendes tilbake til mobiltelefonen.

Det er en knapp på mobiltelefonskjermen som du må klikke for å be om avstand til et objekt i nærheten.

Trinn 7: Larson Scanner

Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner

Jeg ønsket å inkludere noe morsomt, så jeg inkluderte Larson -skanner som ligner K. I. T. T. fra Knight Rider.

For Larson -skanneren har jeg brukt ATtiny85 med charlieplexing. Charlieplexing er en teknikk for å kjøre en multiplekset skjerm der relativt få I/O -pinner på en mikrokontroller brukes til å drive en rekke lysdioder. Metoden bruker tri-state-logikkfunksjonene til mikrokontrollere for å oppnå effektivitet i forhold til tradisjonell multiplexing.

I dette tilfellet bruker jeg 3 pins fra ATtiny85 til å tenne 6 lysdioder !!

Du kan lyse opp "X" LED -er med N -pinner. Bruk følgende formel for å utlede hvor mange lysdioder du kan kjøre:

X = N (N-1) lysdioder med N-pinner:

3 pinner: 6 lysdioder;

4 pinner: 12 lysdioder;

5 pins: 20 lysdioder … du skjønner;-)

Strøm flyter fra positiv (anode) til negativ (katode). Tips på pilen er katode.

Det er viktig å merke seg at pin 1 (i Arduino IDE -kode) refererer til fysisk pin 6 i ATtiny85 (se vedlagte pinout).

Vedlagt finner du koden som må lastes opp til ATtiny85 som styrer Larson -skanneren. Jeg beskriver ikke hvordan du laster opp en kode til ATtiny85 siden det er mange instruktører som gjør det som denne.

Trinn 8: Kode

Kode
Kode

Jeg legger ved koden som må lastes opp til ATtiny85 som styrer Larson -skanneren og koden for Arduino nano.

Når det gjelder Arduino nano, har jeg brukt deler av koder fra andre instruktører (her) og gjort endringer for å passe mine behov. Jeg har inkludert et flytdiagram (også i ord for et tydeligere bilde) av koden for å bedre forstå hvordan Switch - Case fungerer.

Viktig: For å laste opp CarBluetooth-kode til Arduino nano, må du koble Rx og Tx fra HC-05 Bluetooth-modulen!

Trinn 9: Kamera

Kamera
Kamera
Kamera
Kamera

IP -webkamera -appen må lastes ned fra spillbutikken og installeres i din gamle mobiltelefon. Se etter videoinnstillinger, juster oppløsningen deretter og gå til slutt til den siste kommandoen "Start server" for å starte overføringen. Ikke glem å slå på Wi-Fi i mobiltelefonen!

Trinn 10: MIT App Inventor2

MIT App Inventor2
MIT App Inventor2

MIT App inventor2 er et skybasert verktøy som hjelper deg med å bygge apper i nettleseren din. Denne appen (bare for Android -basert mobil) kan deretter lastes opp til cellen din og kontrollere robotbilen din.

Jeg legger ved.apk- og.aia -kode, slik at du kan se hva jeg har gjort og kan endre den som du vil. Jeg har brukt en kode fra internett (MIT App) og gjort mine egne modifikasjoner. Denne koden styrer bevegelsen av robotbilen, mottar signal fra ultralydssensor, tenner lys og piper på summeren. Den mottar også signal fra batteriene som gir oss beskjed om spenningsnivået.

Med denne koden vil vi kunne motta to forskjellige signaler fra bilen: 1) avstand til et objekt i nærheten og 2) spenning fra motor og arduinos batterier.

For å identifisere den mottatte seriestrengen, har jeg tatt med et flagg i Arduinos kode som angir typen streng som er sendt. Hvis Arduino sender avstanden målt fra ultralydssensoren, sender den en "A" røye foran strengen. Når Arduino sender batterinivåer, sender den et flagg med en "B" -tegn. I MIT App inventors2 -kode har jeg analysert seriestrengen som kommer fra Arduino og sjekket for disse flaggene. Som jeg sa, jeg er en nybegynner, og jeg er sikker på at det finnes mer effektive måter å gjøre dette på, og jeg håper noen kan opplyse meg på en bedre måte.

Send Arduino_Bluetooth_Car.apk til mobiltelefonen din (via e -post eller Google Disk) og installer den.

Trinn 11: Koble mobiltelefonen til RC -bilen

Koble mobiltelefonen til RC -bilen
Koble mobiltelefonen til RC -bilen
Koble mobiltelefonen til RC -bilen
Koble mobiltelefonen til RC -bilen

Først av alt, slå på wi-fi i gammel mobiltelefon (den i RC-robot).

Slå på Wi-Fi, Bluetooth i kontrolleren din og åpne Arduino_Bluetooth_Car.apk som du nettopp har installert. På slutten av skjermen (rull ned hvis du ikke kan se det) vil du se to knapper: Enheter og KOBLE. Klikk på Enheter og velg Bluetooth fra RC -bilen din (skal være noe HC 05), klikk deretter KOBLE inn, og du vil se meldingen TILKOBLET nederst til venstre på skjermen. Første gang blir du bedt om et passord (skriv inn 0000 eller 1234).

Det er en boks der du må skrive inn IP -adressen til din gamle celle (mobiltelefon som er i RC -bilen), i mitt tilfelle er den

Dette IP-nummeret kan oppdages i Wi-Fi-ruteren. Du må gå inn i ruterkonfigurasjonen din, velge Enhetsliste (eller noe slikt avhengig av rutemerket), og du bør kunne se den gamle mobilenheten, klikke på den og skrive inn dette IP -nummeret i denne boksen.

Velg deretter CAMERA, og du bør begynne å se kamerastrømmen fra RC -bilen din.

Trinn 12: Du er ferdig

Du er ferdig!
Du er ferdig!

Du er ferdig! Begynn å leke med det

Fremtidige endringer: Jeg vil bytte 9V-batteri med Li-ion-batterier for å lade dem opp og bruke en DC-DC trinnvis spenningsregulator, jeg vil også forbedre batterimonitoren ved å inkludere utjevning (gjennomsnitt) av de analoge avlesningene. Har ikke tenkt å inkludere A. I. ennå …;-)

Jeg har deltatt i min første instruerbare konkurranse … så vær så snill å stemme;-)

Anbefalt: