Inhoudsopgave:
- Stap 1: Onderdelen en software
- Stap 2: Bouwproces
- Stap 3: L293D-motorstuurprogramma
- Stap 4: HC-05 Bluetooth
- Stap 5: Batterijmonitor
- Stap 6: HC-SR04 ultrasone bereiksensor
- Stap 7: Larson-scanner
- Stap 8: Coderen
- Stap 9: Camera
- Stap 10: MIT App Inventor2
- Stap 11: sluit uw mobiele telefoon aan op uw RC-auto
- Stap 12: Je bent klaar
Video: Robot Car Met Bluetooth, Camera en MIT App Inventor2 - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Heb je ooit je eigen robotauto willen bouwen? Nou… dit is je kans!!
In deze Instructable zal ik je laten zien hoe je een robotauto kunt maken die wordt bestuurd via Bluetooth en MIT App Inventor2. Houd er rekening mee dat ik een nieuweling ben en dat dit mijn eerste instuctable is, dus wees voorzichtig in uw opmerkingen.
Er zijn veel instructables die er zijn, maar in deze heb ik geprobeerd veel functies te combineren, zoals: camerastreaming, obstakelvermijding, ultrasone afstandssensor, Larson-scanner (met charlieplexing) en batterijbewaking naar een Android-app !!
Dus laten we aan de slag gaan en Frankie ontmoeten (het gebruikt ideeën van veel plaatsen … vandaar Robo Frankenstein)
Stap 1: Onderdelen en software
Hier, in mijn woonplaats, is het moeilijk om alle onderdelen te krijgen, daarom kon ik de meeste van www.aliexpress.com krijgen
Ik schat dat het project kan worden gebouwd voor $ 25 - 30 zonder rekening te houden met de oude mobiele telefoon.
- Autochassis: 3 wielen, 2 motoren 6V (USD 9)
- Arduino Nano (USD 2)
- Bluetooth HC-05 (USD 3 tot 4)
- L293D-motoraandrijving om wielmotoren aan te drijven (USD 1,50 voor een partij van 5 stuks)
- Oude mobiel met camera en wifi
- Ultrasone sensor HC-SR04 voor meting naar een nabijgelegen object (USD 1)
- 6 LED's voor Larson-scanner
- ATtiny85 voor Larson-scanner (USD 1)
- Breadboard (USD 1)
- Draden
- 100K Ohm weerstand (4)
- 1K Ohm weerstand (2)
- 2K Ohm weerstand (1)
- 270 Ohm weerstand (3)
- Zoemer
Software:
- Arduino IDE
- IP-webcam (voor oude mobiele Android)
- MIT App Inventor2: deze app is geweldig, maar werkt alleen voor het Android-besturingssysteem (geen iPhones … sorry!)
Stap 2: Bouwproces
Autochassis is zeer eenvoudig te monteren; het heeft 2 motoren 6V die de achterwielen aandrijven en een 4 batterijpakket.
De robotauto wordt bestuurd via Bluetooth en Wi-Fi. Bluetooth regelt de seriële communicatie tussen de auto en de uitvinder van de MIT-app2 en Wi-Fi wordt gebruikt om te communiceren met de camera (oude mobiele telefoon) die voor de auto is geïnstalleerd.
Voor dit project heb ik twee sets batterijen gebruikt: de arduino wordt aangedreven door een 9V-batterij en de automotoren door 6V (vier 1,5V AA-batterijen).
Arduino Nano is het brein van dit project dat de auto, zoemer, ultrasone afstandssensor HC-SR04, Bluetooth HC-05, Larson-scanner (ATtiny85) aanstuurt en de batterijen bewaakt. 9V-batterij gaat naar Vin (pin 30) en Arduino's pin 27 geeft 5V gereguleerde stroom naar breadboard. Noodzaak om alle gronden van alle IC's en batterijen samen te binden.
Bijgevoegd, het schakelschema is gemaakt in Excel (Sorry … de volgende keer zal ik Fritzing proberen). Ik heb alles aangesloten met behulp van breadboard en mannelijke naar mannelijke draadconnectoren, de mijne ziet eruit als een rattennest.
Stap 3: L293D-motorstuurprogramma
L293D is een viervoudige high-current half-H driver die is ontworpen om bidirectionele aandrijfstromen tot 600 mA te leveren bij spanningen van 4,5 V tot 36 V. Het wordt gebruikt om de autowielen aan te drijven.
Het wordt aangedreven door een 6V-batterijpakket (vier 1,5V AA) voor de motoren en gebruikt 5V voor de logica die afkomstig is van gereguleerde 5V (pin 27) in Arduino Nano. De aansluitingen zijn weergegeven in het bijgevoegde schema.
Het was niet nodig om het in een koellichaam te installeren.
Stap 4: HC-05 Bluetooth
HC-05 Bluetooth wordt aangedreven door 5V (arduino pin 27), maar het is belangrijk om te begrijpen dat het logische niveau 3,3V is, d.w.z. communicatie (Tx en Rx) met 3,3V. Daarom moet Rx worden geconfigureerd met maximaal 3,3 V, wat kan worden bereikt met een niveauverschuiver-converter of, zoals in dit geval, met een spanningsdeler door gebruik te maken van 1K- en 2K-weerstanden zoals te zien in het circuit.
Stap 5: Batterijmonitor
Om de batterijniveaus te controleren, heb ik spanningsdelers ingesteld om de spanningsniveaus onder de 5V te brengen (het maximale bereik van Arduino). De spanningsdeler verlaagt de gemeten spanning tot binnen het bereik van de analoge Arduino-ingangen.
De analoge ingangen A4 en A6 worden gebruikt en er worden hoge weerstanden (100K ohm) gebruikt om de batterijen niet te veel te ontladen tijdens het meetproces. We moeten een compromis sluiten, als weerstanden te laag zijn (10K ohm), minder laadeffect, spanningsmeting is nauwkeuriger, maar meer stroomverbruik; als ze te hoog zijn (1M ohm), meer laadeffect, spanningsmeting is minder nauwkeurig, maar minder stroomafname.
Batterijcontrole wordt elke 10 seconden uitgevoerd en direct weergegeven in uw controller-mobiel.
Ik weet zeker dat er veel ruimte voor verbetering is in dit deel, aangezien ik van twee analoge pinnen lees en de interne MUX ertussen wisselt. Ik neem niet het gemiddelde van meerdere metingen en misschien is dat wat ik zou moeten doen.
Laat me de volgende formule uitleggen:
// Lees spanning van analoge pin A4 en maak kalibratie voor Arduino:
spanning1 = (analoog lezen(A4)*5.0/1024.0)*2.0; //8.0V
Het Arduino nano-bord bevat een 8-kanaals, 10-bit analoog naar digitaal converter. De functie analogRead() retourneert een getal tussen 0 en 1023 dat evenredig is met de hoeveelheid spanning die op de pin wordt toegepast. Dit levert een resolutie tussen metingen op van: 5 volt / 1024 eenheden of.0049 volt (4,9 mV) per eenheid.
Spanningsdeler halveert de spanning en moet, om echte spanning te krijgen, met 2 vermenigvuldigen!!
BELANGRIJK: ik weet zeker dat er een efficiëntere manier is om een Arduino van stroom te voorzien dan de manier waarop ik het doe!! Als nieuweling heb ik het op de harde manier geleerd. Arduino Vin-pin gebruikt een lineaire spanningsregelaar, wat betekent dat je met een 9V-batterij een groot deel van de stroom in de lineaire regelaar zelf verbrandt! Niet goed. Ik deed het op deze manier omdat het snel was en gewoon omdat ik niet beter wist … maar wees er zeker van dat ik het in Robo Frankie versie 2.0 zeker anders zal doen.
Ik denk (hardop) dat een DC DC Step up Switching Power Supply en een oplaadbare Li-ion batterij misschien een betere manier zijn. Uw vriendelijke suggestie is meer dan welkom…
Stap 6: HC-SR04 ultrasone bereiksensor
HC-SR04 is een ultrasone bereiksensor. Deze sensor biedt metingen van 2 cm tot 400 cm met een nauwkeurigheid tot 3 mm. In dit project wordt het gebruikt om obstakels te vermijden wanneer het 20 cm of minder bereikt en ook om de afstand tot een object te meten, dat wordt teruggestuurd naar uw mobiele telefoon.
Er is een knop in het scherm van uw mobiele telefoon waarop moet worden geklikt om afstand tot een object in de buurt op te vragen.
Stap 7: Larson-scanner
Ik wilde iets leuks toevoegen, dus ik heb de Larson-scanner opgenomen die lijkt op K. I. T. T. van Knightrider.
Voor de Larson-scanner heb ik ATtiny85 met charlieplexing gebruikt. Charlieplexing is een techniek voor het aansturen van een multiplex display waarbij relatief weinig I/O-pinnen op een microcontroller worden gebruikt om een reeks LED's aan te sturen. De methode maakt gebruik van de tri-state logische mogelijkheden van microcontrollers om efficiëntie te winnen ten opzichte van traditionele multiplexing.
In dit geval gebruik ik 3 pinnen van ATtiny85 om 6 LED's te verlichten!!
Je zou "X" LED's kunnen oplichten met N-pinnen. Gebruik de volgende formule om af te leiden hoeveel LED's u kunt aansturen:
X= N(N-1) LED's met N pinnen:
3 pinnen: 6 LED's;
4 pinnen: 12 LED's;
5 pinnen: 20 LED's … je snapt het idee;-)
Stroom vloeit van positief (anode) naar negatief (kathode). Punt van de pijl is kathode.
Het is belangrijk op te merken dat pin 1 (in Arduino IDE-code) verwijst naar fysieke pin 6 in ATtiny85 (raadpleeg de bijgevoegde pinout).
Bijgevoegd vindt u de code die moet worden geüpload naar ATtiny85 die de Larson-scanner bestuurt. Ik beschrijf niet hoe je een code uploadt naar ATtiny85, omdat er genoeg instructables zijn die dat doen zoals deze.
Stap 8: Coderen
Ik voeg de code toe die moet worden geüpload naar ATtiny85 die de Larson-scanner en de code voor Arduino nano's bestuurt.
Wat betreft de Arduino nano, ik heb een deel van de codes van andere instructables (hier) gebruikt en wijzigingen aangebracht om aan mijn behoeften te voldoen. Ik heb een stroomschema (ook in woord voor een duidelijker beeld) van de code toegevoegd om beter te begrijpen hoe de Switch - Case werkt.
Belangrijk: om CarBluetooth-code naar Arduino nano te uploaden, moet u Rx en Tx loskoppelen van de HC-05 Bluetooth-module!
Stap 9: Camera
De IP Webcam-app moet worden gedownload uit de Play Store en op uw oude mobiele telefoon worden geïnstalleerd. Controleer op videovoorkeuren, pas de resolutie dienovereenkomstig aan en ga ten slotte naar het laatste commando "Start server" om de verzending te starten. Vergeet niet om wifi in mobiel te zetten!!
Stap 10: MIT App Inventor2
MIT App Inventar2 is een cloudgebaseerde tool die helpt bij het bouwen van apps in uw webbrowser. Deze app (alleen voor op Android gebaseerde mobiele telefoons) kan vervolgens naar je mobiele telefoon worden geüpload en je robotauto besturen.
Ik voeg.apk- en.aia-code toe, zodat je kunt zien wat ik heb gedaan en het naar wens kunt aanpassen. Ik heb een code van internet (MIT App) gebruikt en mijn eigen wijzigingen aangebracht. Deze code regelt de beweging van de robotauto, ontvangt een signaal van een ultrasone sensor, doet de lichten aan en laat de zoemer horen. Het ontvangt ook een signaal van de batterijen om ons het spanningsniveau te laten weten.
Met deze code kunnen we twee verschillende signalen van de auto ontvangen: 1) afstand tot een object in de buurt en 2) spanning van motor en arduino's batterijen.
Om de ontvangen seriële string te identificeren, heb ik een vlag in de Arduino-code opgenomen die het type string aangeeft dat is verzonden. Als Arduino de afstand verzendt die is gemeten vanaf de ultrasone sensor, stuurt het een "A" -teken voor de snaar. Telkens wanneer Arduino batterijniveaus verzendt, verzendt het een vlag met een "B" -teken. In de code van MIT App-uitvinders2 heb ik de seriële reeks van Arduino geparseerd en gecontroleerd op deze vlaggen. Zoals ik al zei, ik ben een nieuweling en ik weet zeker dat er efficiëntere manieren zijn om dit te doen en ik hoop dat iemand me op een betere manier kan informeren.
Stuur Arduino_Bluetooth_Car.apk naar je mobiel (via e-mail of Google Drive) en installeer het.
Stap 11: sluit uw mobiele telefoon aan op uw RC-auto
Schakel allereerst wifi in de oude mobiele telefoon in (die in de RC-robot).
Zet in je controller-mobiel je wifi, Bluetooth aan en open Arduino_Bluetooth_Car.apk die je zojuist hebt geïnstalleerd. Aan het einde van het scherm (scroll naar beneden als je het niet kunt zien) zie je twee knoppen: Apparaten en VERBINDEN. Klik op Apparaten en selecteer Bluetooth van je RC Car (zou iets HC 05 moeten zijn), klik vervolgens op VERBINDEN en je zou het bericht VERBONDEN links onderaan je scherm moeten zien. De eerste keer wordt u om een wachtwoord gevraagd (voer 0000 of 1234 in).
Er is een vak waar je het IP-adres van je oude cel moet typen (mobiele telefoon die in je RC Car zit), in mijn geval is dit
Dit IP-nummer kan worden gedetecteerd in uw wifi-router. U moet naar uw routerconfiguratie gaan, Apparatenlijst selecteren (of iets dergelijks, afhankelijk van uw routermerk) en u zou uw oude mobiele apparaat moeten kunnen zien, erop klikken en dit IP-nummer in dit vak invoeren.
Selecteer vervolgens CAMERA en u zou moeten beginnen met het bekijken van de camerastreaming vanaf uw RC Car.
Stap 12: Je bent klaar
Je bent klaar! Begin ermee te spelen
Toekomstige veranderingen: ik zal de 9V-batterij vervangen door Li-ion-batterijen om ze op te laden en een DC-DC step-up spanningsregelaar te gebruiken, ook wil ik de batterijmonitor verbeteren door de analoge metingen af te vlakken (gemiddelden). Niet van plan om A. I. nog …;-)
Ik heb meegedaan aan mijn eerste instructable wedstrijd… dus stem alsjeblieft;-)
Aanbevolen:
Een IoT Halloween-pompoen - Bedien LED's met een Arduino MKR1000 en Blynk-app ???: 4 stappen (met afbeeldingen)
Een IoT Halloween-pompoen | Bedien LED's Met een Arduino MKR1000 en Blynk App ???: Hallo allemaal, Een paar weken geleden was het Halloween en volgens de traditie heb ik een mooie pompoen uitgesneden voor op mijn balkon. Maar toen ik mijn pompoen buiten had, realiseerde ik me dat het best vervelend was om elke avond de deur uit te moeten om de kaars aan te steken. En ik
Een Android-app maken met Android Studio: 8 stappen (met afbeeldingen)
Een Android-app maken met Android Studio: in deze zelfstudie leert u de basisprincipes van het bouwen van een Android-app met behulp van de Android Studio-ontwikkelomgeving. Naarmate Android-apparaten steeds gebruikelijker worden, zal de vraag naar nieuwe apps alleen maar toenemen. Android Studio is een eenvoudig te gebruiken (een
Aan de slag met de M5StickV AI + IOT-camera: 6 stappen (met afbeeldingen)
Aan de slag met de M5StickV AI + IOT-camera: kort overzicht De M5StickV is een kleine AI + IOT-camera met een diameter van bijna 2 munten. degelijke specificaties. De camera wordt aangedreven door ongelooflijke
Android-applicatie maken voor kleine bedrijven met behulp van MIT APP en Google Fusion Table: 7 stappen
Android-applicatie maken voor kleine bedrijven met behulp van MIT APP en Google Fusion Table: Heb je ooit je eigen applicatie willen maken die beschikbaar kan zijn in de Google Play Store !!! Als u een bedrijf heeft, zal deze tutorial uw leven veranderen. Na deze zorgvuldig te hebben gelezen, kunt u uw eigen Aanvraag maken. Voor
Domotica met BLYNK-app: 7 stappen (met afbeeldingen)
Domotica met behulp van de BLYNK-app: in dit project heb ik laten zien hoe iedereen zijn / haar huishoudelijke apparaten op afstand kan bedienen met zijn / haar mobiele telefoon. Hiervoor moet een applicatie op uw mobiel zijn geïnstalleerd. De naam van deze applicatie is BLYNK App (Downloadlink wordt gegeven in besch