Innehållsförteckning:

Robotbil med Bluetooth, kamera och MIT App Inventor2: 12 steg (med bilder)
Robotbil med Bluetooth, kamera och MIT App Inventor2: 12 steg (med bilder)

Video: Robotbil med Bluetooth, kamera och MIT App Inventor2: 12 steg (med bilder)

Video: Robotbil med Bluetooth, kamera och MIT App Inventor2: 12 steg (med bilder)
Video: Как сделать Bluetooth-смартфон для управления автомобилем-роботом и светодиодной подсветкой 2024, Juli
Anonim
Image
Image
Delar och programvara
Delar och programvara

Har du någonsin velat bygga din egen robotbil? Tja … det här är din chans !!

I denna instruktionsbok kommer jag att visa dig hur du gör en robotbil som styrs via Bluetooth och MIT App Inventor2. Var medveten om att jag är en nybörjare och att detta är min första instruktiva så var snäll i dina kommentarer.

Det finns många instruktioner där ute men i den här har jag försökt att kombinera många funktioner som: kameraströmning, hinderundvikande, ultraljudssensor, Larson -skanner (med charlieplexing) och batteriövervakning till en Android -app !!

Så låt oss komma igång och träffa Frankie (den använder idéer från många ställen … därifrån Robo Frankenstein)

Steg 1: Delar och programvara

Delar och programvara
Delar och programvara
Delar och programvara
Delar och programvara

Här, i min hemstad, är det svårt att få alla delar, därför kunde jag få de flesta av dem från www.aliexpress.com

Jag uppskattar att projektet kan byggas för 25 - 30 USD utan att beakta den gamla mobiltelefonen.

  • Bilchassi: 3 hjul, 2 motorer 6V (9 USD)
  • Arduino Nano (2 USD)
  • Bluetooth HC-05 (3 till 4 USD)
  • L293D -motordrivrutin för att driva hjulmotorer (1,50 USD för 5 delar)
  • Gammal mobil med kamera och Wi-Fi
  • Ultraljudssensor HC-SR04 för mätning till ett föremål i närheten (USD 1)
  • 6 lysdioder för Larson -skanner
  • ATtiny85 för Larson -skanner (1 USD)
  • Brödbräda (1 USD)
  • Trådar
  • 100K Ohm motstånd (4)
  • 1K Ohm motstånd (2)
  • 2K Ohm motstånd (1)
  • 270 Ohm motstånd (3)
  • Summer

Programvara:

  • Arduino IDE
  • IP -webbkamera (för gammal mobil Android)
  • MIT App Inventor2: Denna app är bra men fungerar bara för Android -operativsystemet (inga Iphones … förlåt!)

Steg 2: Byggprocess

Byggprocess
Byggprocess
Byggprocess
Byggprocess
Byggprocess
Byggprocess
Byggprocess
Byggprocess

Bilchassi är mycket lätt att montera; den har 2 motorer 6V som driver bakhjulen och ett 4 batteripaket.

Robotbilen styrs via Bluetooth och Wi-Fi. Bluetooth styr den seriella kommunikationen mellan bilen och MIT App inventor2 och Wi-Fi används för att kommunicera med kameran (gammal mobiltelefon) installerad framför bilen.

För detta projekt har jag använt två uppsättningar batterier: arduinoen drivs av ett 9V -batteri och bilmotorerna med 6V (fyra 1,5V AA -batterier).

Arduino Nano är hjärnan i detta projekt som styr bilen, summern, ultraljudssensorn HC-SR04, Bluetooth HC-05, Larson-skanner (ATtiny85) och övervakar batterierna. 9V batteri går till Vin (stift 30) och Arduinos stift 27 ger 5V reglerad effekt till brödbrädan. Behöver knyta alla grunder från alla IC: er och batterier tillsammans.

Bifogad, kretsdiagrammet gjorde det i Excel (Sorry …. Nästa gång ska jag försöka Fritzing). Jag har anslutit allt med hjälp av brödbräda och hane till hankontakter, mitt ser ut som ett råttbo.

Steg 3: L293D -motordrivrutin

L293D motorförare
L293D motorförare
L293D motorförare
L293D motorförare

L293D är en fyrdubbel högström halv-H-drivrutin som är utformad för att ge dubbelriktade drivströmmar på upp till 600 mA vid spänningar 4,5V till 36V. Den används för att köra bilhjulen.

Den drivs av ett 6V batteri (fyra 1,5V AA) för motorerna och använder 5V för logiken som kommer från reglerad 5V (stift 27) i Arduino Nano. Anslutningar visas i den bifogade schemat.

Det var inte nödvändigt att installera det i ett kylfläns.

Steg 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth drivs av 5V (arduino pin 27), men det är viktigt att förstå att logiknivån är 3,3V, det vill säga kommunikation (Tx och Rx) med 3,3V. Det är därför Rx måste konfigureras med maximalt 3,3V som kan uppnås med en nivåväxelomvandlare eller, som i detta fall, med en spänningsdelare med hjälp av ett 1K- och 2K -motstånd enligt kretsen.

Steg 5: Batteriövervakare

För att övervaka batterinivåerna har jag ställt in spänningsdelare för att få spänningsnivåer under 5V (Arduinos maxintervall). Spänningsdelaren minskar spänningen som mäts till inom området för Arduino analoga ingångar.

De analoga ingångarna A4 och A6 används och höga motstånd (100K ohm) används för att inte tömma batterierna för mycket i mätprocessen. Vi måste kompromissa, om motstånden är för låga (10K ohm), mindre belastningseffekt, är spänningsavläsningen mer exakt, men mer aktuell ritning; om de är för höga (1M ohm), mer laddningseffekt, är spänningsavläsningen mindre exakt, men mindre strömritning.

Batteriövervakning görs var 10: e sekund och visas direkt i din mobiltelefon.

Jag är säker på att det finns mycket utrymme för förbättringar i den här delen eftersom jag läser från två analoga stift och den interna MUX växlar mellan dem. Jag gör inte i genomsnitt flera mätningar och det är kanske det jag borde göra.

Låt mig förklara följande formel:

// Läs spänning från analog stift A4 och gör kalibrering för Arduino:

spänning1 = (analogLäs (A4)*5,0/1024,0)*2,0; //8.0V

Arduino nano-kortet innehåller 8-kanals, 10-bitars analog till digital omvandlare. Funktion analogRead () returnerar ett tal mellan 0 och 1023 som är proportionellt mot mängden spänning som appliceras på stiftet. Detta ger en upplösning mellan avläsningar av: 5 volt / 1024 enheter eller, 0,0049 volt (4,9 mV) per enhet.

Spänningsdelaren halverar spänningen och måste för att få sann spänning multiplicera med 2 !!

VIKTIGT: Jag är säker på att det finns ett mer effektivt sätt att driva en arduino än hur jag gör det !! Som nybörjare har jag lärt mig det hårda sättet. Arduino Vin pin använder en linjär spänningsregulator vilket innebär att du med ett 9V batteri kommer att bränna en stor bit av kraften i själva den linjära regulatorn! Inte bra. Jag gjorde det så här för att det var snabbt och bara för att jag inte visste bättre … men var säker på att i Robo Frankie version 2.0 kommer jag säkert att göra det annorlunda.

Jag tänker (högt) att en DC DC Step Up Switching Power Supply och ett uppladdningsbart litiumjonbatteri kan vara ett bättre sätt. Ditt vänliga förslag är mer än välkommet …

Steg 6: HC-SR04 ultraljudssensor

HC-SR04 ultraljudssensor
HC-SR04 ultraljudssensor

HC-SR04 är en ultraljudssensor. Denna sensor ger mätning från 2 cm till 400 cm med en noggrannhet på upp till 3 mm. I detta projekt används det för att undvika hinder när det når 20 cm eller mindre och också för att mäta avståndet till ett objekt som skickas tillbaka till din mobiltelefon.

Det finns en knapp på din mobilskärm som du måste klicka på för att begära avstånd till ett objekt i närheten.

Steg 7: Larson Scanner

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

Jag ville inkludera något roligt, så jag inkluderade Larson -skanner som liknar K. I. T. T. från Knight Rider.

För Larson -skannern har jag använt ATtiny85 med charlieplexing. Charlieplexing är en teknik för att driva en multiplexskärm där relativt få I/O -stift på en mikrokontroller används för att driva en rad lysdioder. Metoden använder tri-state-logikfunktionerna hos mikrokontroller för att få effektivitet jämfört med traditionell multiplexering.

I det här fallet använder jag 3 stift från ATtiny85 för att tända 6 lysdioder !!

Du kan tända "X" lysdioder med N -stift. Använd följande formel för att härleda hur många lysdioder du kan driva:

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

3 stift: 6 lysdioder;

4 stift: 12 lysdioder;

5 stift: 20 lysdioder … du förstår;-)

Ström flyter från positiv (anod) till negativ (katod). Tips på pilen är katod.

Det är viktigt att notera att stift 1 (i Arduino IDE -kod) hänvisar till fysisk stift 6 i ATtiny85 (se bifogad pinout).

Bifogad hittar du koden som måste laddas upp till ATtiny85 som styr Larson -skannern. Jag beskriver inte hur man laddar upp en kod till ATtiny85 eftersom det finns gott om instruktioner som gör så här.

Steg 8: Kod

Koda
Koda

Jag bifogar koden som måste laddas upp till ATtiny85 som styr Larson -skannern och koden för Arduino nano.

När det gäller Arduino nano har jag använt en del av koder från andra instruktioner (här) och gjort ändringar för att passa mina behov. Jag har inkluderat ett flödesschema (även i ord för en tydligare bild) av koden för att bättre förstå hur Switch - Case fungerar.

Viktigt: För att ladda upp CarBluetooth-kod till Arduino nano måste du koppla bort Rx och Tx från HC-05 Bluetooth-modulen!

Steg 9: Kamera

Kamera
Kamera
Kamera
Kamera

IP -webbkameraappen måste laddas ner från play store och installeras i din gamla mobiltelefon. Sök efter videoinställningar, justera upplösningen i enlighet med detta och slutligen gå ner till det sista kommandot "Start server" för att starta överföringen. Glöm inte att slå på Wi-Fi i mobilen !!

Steg 10: MIT App Inventor2

MIT App Inventor2
MIT App Inventor2

MIT App inventor2 är ett molnbaserat verktyg som hjälper till att bygga appar i din webbläsare. Denna app (endast för Android -baserad mobil) kan sedan laddas upp till din cell och styra din robotbil.

Jag bifogar.apk- och.aia -kod så att du kan se vad jag har gjort och kan ändra det som du vill. Jag har använt en kod från internet (MIT App) och gjort mina egna ändringar. Denna kod styr robotbilens rörelse, tar emot signal från ultraljudssensor, tänder lampor och piper på summern. Den tar också emot signaler från batterierna som låter oss veta spänningsnivån.

Med denna kod kommer vi att kunna ta emot två olika signaler från bilen: 1) avstånd till ett föremål i närheten och 2) spänning från motor och arduinos batterier.

För att identifiera den mottagna seriesträngen har jag inkluderat en flagga i Arduinos kod som anger vilken typ av sträng som skickats. Om Arduino skickar det uppmätta avståndet från ultraljudssensorn, skickar det en "A" röding framför strängen. Närhelst Arduino skickar batterinivåer skickar den en flagga med en "B" -tecken. I MIT App uppfinnare2 -kod har jag analyserat den seriella strängen som kommer från Arduino och kollat efter dessa flaggor. Som sagt, jag är nybörjare och jag är säker på att det finns mer effektiva sätt att göra detta och jag hoppas att någon kan upplysa mig på ett bättre sätt.

Skicka Arduino_Bluetooth_Car.apk till din mobiltelefon (via e -post eller Google Drive) och installera den.

Steg 11: Anslut din mobiltelefon till din RC -bil

Anslut din mobiltelefon till din RC -bil
Anslut din mobiltelefon till din RC -bil
Anslut din mobiltelefon till din RC -bil
Anslut din mobiltelefon till din RC -bil

Först och främst, slå på wi-fi i gammal mobiltelefon (den i RC-robot).

Slå på din Wi-Fi, Bluetooth och öppna Arduino_Bluetooth_Car.apk som du just installerat i din mobiltelefon. I slutet av skärmen (rulla ner om du inte kan se den) kommer du att se två knappar: Enheter och ANSLUT. Klicka på Enheter och välj Bluetooth från din RC -bil (ska vara något HC 05), klicka sedan på ANSLUT och du ska se meddelandet ANSLUTAD längst ned till vänster på skärmen. Första gången kommer du att bli ombedd att ange ett lösenord (ange 0000 eller 1234).

Det finns en ruta där du måste skriva IP -adressen för din gamla cell (mobiltelefon som finns i din RC -bil), i mitt fall är det

Detta IP-nummer kan identifieras i din Wi-Fi-router. Du måste komma in i din routerkonfiguration, välja Enhetslista (eller något liknande beroende på ditt routermärke) och du ska kunna se din gamla mobil, klicka på den och ange detta IP -nummer i den här rutan.

Välj sedan CAMERA och du bör börja se kameraströmningen från din RC -bil.

Steg 12: Du är klar

Du är färdig!
Du är färdig!

Du är färdig! Börja leka med det

Framtida förändringar: Jag kommer att byta 9V-batteri med Li-ion-batterier för att ladda dem och använda en DC-DC-stegerspänningsregulator, jag vill också förbättra batteriövervakaren genom att inkludera utjämning (genomsnitt) av de analoga avläsningarna. Planerar inte att inkludera A. I. än …;-)

Jag har deltagit i min första instruerbara tävling … så rösta gärna;-)

Rekommenderad: