Inhaltsverzeichnis:

Roboterauto mit Bluetooth, Kamera und MIT App Inventor2 - Gunook
Roboterauto mit Bluetooth, Kamera und MIT App Inventor2 - Gunook

Video: Roboterauto mit Bluetooth, Kamera und MIT App Inventor2 - Gunook

Video: Roboterauto mit Bluetooth, Kamera und MIT App Inventor2 - Gunook
Video: How to make a Android Application control Robot Camera | MIT App inventor based Android Application 2024, November
Anonim
Image
Image
Teile und Software
Teile und Software

Wollten Sie schon immer Ihr eigenes Roboterauto bauen? Nun … das ist Ihre Chance!!

In diesem Instructable werde ich Sie darin führen, wie Sie ein Roboterauto herstellen, das über Bluetooth und MIT App Inventor2 gesteuert wird. Seien Sie sich bewusst, dass ich ein Neuling bin und dass dies meine erste Anleitung ist, also seien Sie bitte sanft in Ihren Kommentaren.

Es gibt viele instructables da draußen, aber in diesem habe ich versucht, viele Funktionen wie: Kamera-Streaming, Hindernisvermeidung, Ultraschall-Entfernungssensor, Larson-Scanner (mit Charlieplexing) und Batterieüberwachung mit einer Android-App zu kombinieren !!

Also lass uns anfangen und Frankie treffen (es nutzt Ideen von vielen Orten….daher Robo Frankenstein)

Schritt 1: Teile und Software

Teile und Software
Teile und Software
Teile und Software
Teile und Software

Hier in meiner Heimatstadt ist es schwierig, alle Teile zu bekommen, daher konnte ich die meisten von ihnen über www.aliexpress.com beziehen

Ich schätze, dass das Projekt für 25 - 30 USD gebaut werden kann, ohne das alte Handy zu berücksichtigen.

  • Autochassis: 3 Räder, 2 Motoren 6V (USD 9)
  • Arduino-Nano (USD 2)
  • Bluetooth HC-05 (3 bis 4 USD)
  • L293D-Motortreiber zum Antrieb von Radmotoren (1,50 USD für ein Los von 5 Stück)
  • Altes Handy mit Kamera und WLAN
  • Ultraschallsensor HC-SR04 zur Messung auf ein nahes Objekt (USD 1)
  • 6 LEDs für Larson-Scanner
  • ATtiny85 für Larson-Scanner (USD 1)
  • Steckbrett (USD 1)
  • Drähte
  • 100K Ohm Widerstand (4)
  • 1K Ohm Widerstand (2)
  • 2K Ohm Widerstand (1)
  • 270 Ohm Widerstand (3)
  • Summer

Software:

  • Arduino-IDE
  • IP-Webcam (für altes Mobilfunk-Android)
  • MIT App Inventor2: Diese App ist großartig, funktioniert aber nur für das Android-Betriebssystem (keine Iphones…sorry!)

Schritt 2: Bauprozess

Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess
Konstruktionsprozess

Autochassis ist sehr einfach zu montieren; Es hat 2 Motoren 6V, die die Hinterräder und einen 4er Akku antreiben.

Das Roboterauto wird über Bluetooth und Wi-Fi gesteuert. Bluetooth steuert die serielle Kommunikation zwischen dem Auto und dem Erfinder der MIT App2 und Wi-Fi wird verwendet, um mit der Kamera (altes Handy) zu kommunizieren, die vor dem Auto installiert ist.

Für dieses Projekt habe ich zwei Batterien verwendet: Das Arduino wird mit einer 9-V-Batterie und die Automotoren mit 6 V (vier 1,5-V-AA-Batterien) betrieben.

Arduino Nano ist das Gehirn dieses Projekts, das das Auto, den Summer, den Ultraschall-Entfernungssensor HC-SR04, den Bluetooth HC-05, den Larson-Scanner (ATtiny85) steuert und die Batterien überwacht. Die 9-V-Batterie geht an Vin (Pin 30) und der Pin 27 von Arduino liefert 5 V geregelte Leistung an das Steckbrett. Sie müssen alle Erdungen aller ICs und Batterien zusammenbinden.

Anbei hat es der Schaltplan in Excel geschafft (sorry…. beim nächsten Mal versuche ich es mit Fritzing). Ich habe alles mit Steckbrett und Stecker mit Stecker verbunden, meins sieht aus wie ein Rattennest.

Schritt 3: L293D Motortreiber

L293D Motortreiber
L293D Motortreiber
L293D Motortreiber
L293D Motortreiber

L293D ist ein vierfacher Hochstrom-Halb-H-Treiber, der für bidirektionale Treiberströme von bis zu 600 mA bei Spannungen von 4,5 V bis 36 V ausgelegt ist. Es wird verwendet, um die Autoräder anzutreiben.

Es wird von einem 6V-Batteriepack (vier 1,5V AA) für die Motoren gespeist und verwendet 5V für die Logik, die von geregelten 5V (Pin 27) in Arduino Nano kommt. Die Anschlüsse sind im beigefügten Schaltplan dargestellt.

Es war nicht erforderlich, es in einem Kühlkörper zu installieren.

Schritt 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth wird mit 5V (Arduino Pin 27) versorgt, aber es ist wichtig zu verstehen, dass der Logikpegel 3,3V beträgt, d.h. die Kommunikation (Tx und Rx) mit 3,3V. Aus diesem Grund muss Rx mit maximal 3,3 V konfiguriert werden, was mit einem Level-Shifter-Wandler oder wie in diesem Fall mit einem Spannungsteiler durch Verwendung von 1K- und 2K-Widerständen, wie in der Schaltung gesehen, erreicht werden kann.

Schritt 5: Batteriemonitor

Um die Batteriestände zu überwachen, habe ich Spannungsteiler eingestellt, um die Spannungspegel unter 5 V (Arduinos maximaler Bereich) zu bringen. Der Spannungsteiler verringert die gemessene Spannung auf den Bereich der Arduino-Analogeingänge.

Es werden die analogen Eingänge A4 und A6 verwendet und hohe Widerstände (100K Ohm) verwendet, um die Batterien beim Messvorgang nicht zu sehr zu entladen. Wir müssen Kompromisse eingehen, wenn die Widerstände zu niedrig sind (10K Ohm), weniger Belastungseffekt, die Spannungsmessung ist genauer, aber mehr Stromaufnahme; wenn sie zu hoch sind (1M Ohm), mehr Belastungseffekt, Spannungsmessung ist weniger genau, aber weniger Stromaufnahme.

Die Batterieüberwachung erfolgt alle 10 Sekunden und wird direkt in Ihrem Controller-Handy angezeigt.

Ich bin mir sicher, dass es in diesem Teil viel Raum für Verbesserungen gibt, da ich von zwei analogen Pins lese und der interne MUX zwischen ihnen wechselt. Ich werte nicht mehrere Messungen aus und vielleicht sollte ich das tun.

Lassen Sie mich die folgende Formel erklären:

// Spannung vom analogen Pin A4 lesen und Kalibrierung für Arduino durchführen:

Spannung1 = (analogRead(A4)*5,0/1024,0)*2,0; //8.0V

Das Arduino-Nano-Board enthält einen 10-Bit-Analog-Digital-Wandler mit 8 Kanälen. Die Funktion analogRead() gibt eine Zahl zwischen 0 und 1023 zurück, die proportional zur an den Pin angelegten Spannung ist. Dies ergibt eine Auflösung zwischen den Messwerten von: 5 Volt / 1024 Einheiten oder 0,0049 Volt (4,9 mV) pro Einheit.

Spannungsteiler halbiert die Spannung und muss mit 2 multipliziert werden, um die wahre Spannung zu erhalten!

WICHTIG: Ich bin mir sicher, dass es einen effizienteren Weg gibt, ein Arduino mit Strom zu versorgen, als ich es tue !! Als Neuling habe ich es auf die harte Tour gelernt. Der Arduino Vin-Pin verwendet einen linearen Spannungsregler, was bedeutet, dass Sie mit einer 9-V-Batterie einen großen Teil der Leistung im Linearregler selbst verbrennen! Nicht gut. Ich habe es so gemacht, weil es schnell war und weil ich es nicht besser wusste … aber seien Sie sicher, dass ich es in Robo Frankie Version 2.0 sicherlich anders machen werde.

Ich denke (laut), dass ein DC-DC-Aufwärtsschaltnetzteil und ein Lithium-Ionen-Akku der bessere Weg sein könnten. Ihr freundlicher Vorschlag ist mehr als willkommen…

Schritt 6: HC-SR04 Ultraschall-Bereichssensor

HC-SR04 Ultraschall-Bereichssensor
HC-SR04 Ultraschall-Bereichssensor

HC-SR04 ist ein Ultraschall-Entfernungssensor. Dieser Sensor bietet Messungen von 2 cm bis 400 cm mit einer Messgenauigkeit von bis zu 3 mm. In diesem Projekt wird es verwendet, um ein Hindernis zu vermeiden, wenn es 20 cm oder weniger erreicht, und um die Entfernung zu einem Objekt zu messen, das an Ihr Mobiltelefon zurückgesendet wird.

Es gibt eine Schaltfläche auf Ihrem Handy-Bildschirm, die angeklickt werden muss, um die Entfernung zu einem nahe gelegenen Objekt abzufragen.

Schritt 7: Larson-Scanner

Larson-Scanner
Larson-Scanner
Larson-Scanner
Larson-Scanner
Larson-Scanner
Larson-Scanner

Ich wollte etwas Lustiges einbauen, also habe ich den Larson-Scanner hinzugefügt, der K. I. T. T. ähnelt. von Ritterreiter.

Für den Larson-Scanner habe ich ATtiny85 mit Charlieplexing verwendet. Charlieplexing ist eine Technik zum Ansteuern eines Multiplex-Displays, bei der relativ wenige I/O-Pins auf einem Mikrocontroller verwendet werden, um ein Array von LEDs anzusteuern. Das Verfahren nutzt die Tri-State-Logikfähigkeiten von Mikrocontrollern, um gegenüber herkömmlichem Multiplexing effizienter zu werden.

In diesem Fall verwende ich 3 Pins von ATtiny85, um 6 LEDs zu beleuchten !!

Sie könnten "X"-LEDs mit N-Pins aufleuchten. Verwenden Sie die folgende Formel, um abzuleiten, wie viele LEDs Sie ansteuern können:

X= N(N-1) LEDs mit N Pins:

3 Pins: 6 LEDs;

4 Pins: 12 LEDs;

5 Pins: 20 LEDs… Sie haben die Idee;-)

Strom fließt von positiv (Anode) nach negativ (Kathode). Spitze des Pfeils ist Kathode.

Es ist wichtig zu beachten, dass sich Pin 1 (im Arduino IDE-Code) auf den physischen Pin 6 in ATtiny85 bezieht (siehe beigefügte Pinbelegung).

Im Anhang finden Sie den Code, der auf ATtiny85 hochgeladen werden muss, der den Larson-Scanner steuert. Ich beschreibe nicht, wie man einen Code in ATtiny85 hochlädt, da es viele instructables gibt, die das wie dieses tun.

Schritt 8: Code

Code
Code

Ich hänge den Code an, der auf ATtiny85 hochgeladen werden muss, der den Larson-Scanner und den Code für Arduino Nano steuert.

Was den Arduino Nano betrifft, habe ich einen Teil von Codes von anderen instructables (hier) verwendet und Änderungen an meine Bedürfnisse vorgenommen. Ich habe ein Flussdiagramm (auch in Wort für ein klareres Bild) des Codes eingefügt, um besser zu verstehen, wie das Switch - Case funktioniert.

Wichtig: Um CarBluetooth-Code in Arduino nano hochzuladen, müssen Sie Rx und Tx vom HC-05 Bluetooth-Modul trennen!

Schritt 9: Kamera

Kamera
Kamera
Kamera
Kamera

Die IP-Webcam-App muss aus dem Play Store heruntergeladen und auf Ihrem alten Mobiltelefon installiert werden. Überprüfen Sie die Videoeinstellungen, passen Sie die Auflösung entsprechend an und gehen Sie schließlich zum letzten Befehl „Server starten“, um die Übertragung zu starten. Vergessen Sie nicht, Wi-Fi im Handy einzuschalten!

Schritt 10: MIT App Inventor2

MIT App Erfinder2
MIT App Erfinder2

MIT App Inventor2 ist ein Cloud-basiertes Tool, mit dem Sie Apps in Ihrem Webbrowser erstellen können. Diese App (nur für Android-basierte Mobiltelefone) kann dann auf Ihre Zelle hochgeladen werden und Ihr Roboterauto steuern.

Ich hänge.apk- und.aia-Code an, damit Sie sehen können, was ich getan habe, und ihn nach Belieben ändern können. Ich habe einen Code aus dem Internet (MIT App) verwendet und eigene Modifikationen vorgenommen. Dieser Code steuert die Bewegung des Roboterautos, empfängt das Signal vom Ultraschallsensor, schaltet das Licht ein und gibt den Summer aus. Es empfängt auch Signale von den Batterien, die uns den Spannungspegel mitteilen.

Mit diesem Code können wir zwei verschiedene Signale vom Auto empfangen: 1) Entfernung zu einem nahe gelegenen Objekt und 2) Spannung von Motor- und Arduino-Batterien.

Um die empfangene serielle Zeichenfolge zu identifizieren, habe ich ein Flag in den Arduino-Code eingefügt, das den Typ der gesendeten Zeichenfolge angibt. Wenn Arduino den vom Ultraschallsensor gemessenen Abstand sendet, sendet es ein "A" -Zeichen vor der Zeichenfolge. Immer wenn Arduino Batteriestände sendet, sendet es ein Flag mit einem "B" -Zeichen. Im Code von MIT App Inventors2 habe ich die serielle Zeichenfolge von Arduino geparst und auf diese Flags überprüft. Wie gesagt, ich bin ein Neuling und ich bin mir sicher, dass es effizientere Möglichkeiten gibt, dies zu tun, und ich hoffe, dass mich jemand besser aufklären kann.

Senden Sie Arduino_Bluetooth_Car.apk an Ihr Mobiltelefon (per E-Mail oder Google Drive) und installieren Sie es.

Schritt 11: Verbinden Sie Ihr Mobiltelefon mit Ihrem RC Car

Verbinden Sie Ihr Mobiltelefon mit Ihrem RC Car
Verbinden Sie Ihr Mobiltelefon mit Ihrem RC Car
Verbinden Sie Ihr Mobiltelefon mit Ihrem RC Car
Verbinden Sie Ihr Mobiltelefon mit Ihrem RC Car

Schalten Sie zunächst Wi-Fi in einem alten Mobiltelefon (dem in einem RC-Roboter) ein.

Schalten Sie in Ihrem Controller-Handy Ihr Wi-Fi, Bluetooth ein und öffnen Sie Arduino_Bluetooth_Car.apk, das Sie gerade installiert haben. Am Ende des Bildschirms (scrollen Sie nach unten, wenn Sie ihn nicht sehen können) sehen Sie zwei Schaltflächen: Geräte und VERBINDEN. Klicken Sie auf Geräte und wählen Sie Bluetooth von Ihrem RC Car aus (sollte etwas HC 05 sein), klicken Sie dann auf VERBINDEN und Sie sollten die Meldung VERBUNDEN unten links auf Ihrem Bildschirm sehen. Beim ersten Mal werden Sie nach einem Passwort gefragt (Geben Sie 0000 oder 1234) ein.

Es gibt ein Feld, in das Sie die IP-Adresse Ihres alten Handys (Handy, das sich in Ihrem RC Car befindet) eingeben müssen, in meinem Fall ist es

Diese IP-Nummer kann in Ihrem WLAN-Router erkannt werden. Sie müssen in Ihre Router-Konfiguration einsteigen, Geräteliste auswählen (oder etwas Ähnliches je nach Router-Marke) und Sie sollten Ihr altes Mobilfunkgerät sehen können, darauf klicken und diese IP-Nummer in dieses Feld eingeben.

Wählen Sie dann KAMERA und Sie sollten beginnen, das Kamera-Streaming von Ihrem RC Car anzuzeigen.

Schritt 12: Sie sind fertig

Du bist fertig!
Du bist fertig!

Du bist fertig! Fang an damit zu spielen

Zukünftige Änderungen: Ich werde die 9V-Batterie durch Li-Ionen-Batterien ersetzen, um sie aufzuladen und einen DC-DC-Aufwärtsspannungsregler zu verwenden, außerdem möchte ich den Batteriemonitor durch Glätten (Mittelung) der analogen Messwerte verbessern. Nicht geplant, KI einzubeziehen noch …;-)

Ich habe an meinem ersten anweisbaren Wettbewerb teilgenommen … also bitte abstimmen;-)

Empfohlen: