Inhaltsverzeichnis:

Bluetooth RC Auto mit STM32F103C und L293D - Günstig - Gunook
Bluetooth RC Auto mit STM32F103C und L293D - Günstig - Gunook

Video: Bluetooth RC Auto mit STM32F103C und L293D - Günstig - Gunook

Video: Bluetooth RC Auto mit STM32F103C und L293D - Günstig - Gunook
Video: Bluetooth Controlled RC Tracked Robot with Arduino UNO, Motor Shield and HC-06 2024, Juni
Anonim
Image
Image
Zerstöre den Batteriefresser!
Zerstöre den Batteriefresser!

Ich habe ein Bluetooth-Arduino-Auto wie das hier abgebildete von Ardumotive_com gemacht. Das Problem, das ich hatte, waren Batterien und ihr Gewicht sowie ihre Kosten. Seitdem sind günstige Powerbanks für Handys sehr erschwinglich geworden. Ich musste nur das Gewicht reduzieren. Da ich billig bin, bin ich auf den STM32F103C-Mikrocontroller umgestiegen. Der STM32F103C-Mikrocontroller kann für weniger als 2 US-Dollar gekauft werden und ist viel kleiner als ein Arduino. Ich habe ein wenig an der Codierung geändert, um auch mit dem STM32F103C zu arbeiten.

Lieferungen

  • Ein billiges ferngesteuertes Auto, das Batterien frisst. Ja, genau wie das, das Ardumotive_com verwendet. Sie schalten das System aus und verwenden stattdessen eine Telefon-Powerbank. Wenn Sie die Ressourcen haben, um Ihr eigenes Chassis zu bauen, haben Sie es in der Hand. Ich ging zum Spielzeugladen die Straße runter und kaufte ein billiges Auto für unter 10 Dollar. Das Auto frisst Batterien und die Fernbedienung frisst Batterien – perfekt für Verbesserungen.
  • Eine Telefonpower-Bank-- Sie sind jetzt supergünstig. Gehen Sie von den Powerbanks ab, die einen Power-Knopf an der Seite haben. Sie können Ihrem Auto nicht folgen und die Taste gedrückt halten. Das ist dumm.
  • Ein L293D-Chip - Dies ist die duale H-Brücke, die die Elektromotoren steuert.
  • Ein HC-06 Bluetooth-Modul
  • Ein Schalter - Ich habe einen einfachen Ein- / Ausschalter verwendet.
  • Etwas Draht - Telefondraht wäre in Ordnung, aber ein etwas größeres 20-Gauge-Litze wäre besser.
  • Ein Proto Board oder ein Stück Plastik oder Pappe, um Ihre Blue Pill und L293D zu montieren. Ich bin billig, also habe ich mir ein etwas anderes System aus dünner Wellpappe ausgedacht - wie aus einer Glühbirnenschachtel.
  • Zwei günstige USB-Ladekabel - Diese können bei einem Dollar Tree erworben werden. Verwenden Sie nicht Ihr schönes Programmierkabel. Einer wird für den Ein-/Ausschalter geschnitten und der andere lädt den Akku.

Optional

  • 4 LEDs - wenn Sie Scheinwerfer und Rücklichter wollen.
  • 4 220-Ohm-Widerstände - für die LEDs in einem 3,3-V-System.
  • Ein Piezo- oder kleiner Lautsprecher für ein Horn.

Werkzeuge

  • Lötkolben und Lot
  • Heißklebepistole – Meine Tochter ist ein Heißklebepistolen-Ninja!
  • Abisolierzangen und Scheren
  • HINWEIS: Wenn Sie die von mir verwendete Kartontechnik anstelle eines Proto-Boards verwenden, benötigen Sie einen Dremel oder einen kleinen Bohrer

Schritt 1: Zerstöre den Battery Eater

Zerstöre den Batteriefresser!
Zerstöre den Batteriefresser!

Es ist Zeit, Spaß zu haben, den Batteriefresser zu zerstören! Ja, GUT DAS DING! Seien Sie stolz darauf, dass Sie Ihren Teil dazu beitragen, die Welt grüner zu machen – Okay, das ist eine Strecke, aber trotzdem… Kommen Sie zum Rahmen.

Oben ist die gleiche Einheit, die ich die Arduino-Version gemacht habe. Die Arduino-Version verwendete ernsthafte Batterieleistung, die das Auto schwerer machte. Also habe ich es zurück zum Rahmen gebracht. Ich hatte einige Kotflügel aus einer Plastikflasche und Heißkleber hinzugefügt und die Karosserie angepasst. Zur Leiche später mehr.

Sobald Sie den Rahmen mit den Motoren und der Lenkung frei haben, finden Sie heraus, welche Seite der Motorklemmen welche sind. Verwenden Sie eine Batterie oder ein 5-V-Ladegerät, um den Motor zu testen.

Beschriften Sie am Lenkmotor, wenn die Räder nach rechts drehen, das Pluskabel der Batterie "3" und das Minuskabel "6".

Wenn sich die Räder vorwärts drehen, beschriften Sie am Antriebsmotor das Pluskabel der Batterie mit "14" und das Minuskabel "11".

Schritt 2: Der Code in der Arduino IDE

Der Code in der Arduino-IDE
Der Code in der Arduino-IDE
Der Code in der Arduino-IDE
Der Code in der Arduino-IDE

Es ist möglicherweise am besten, wenn Sie die Elektronik Ihres Autos zuerst auf einem Steckbrett prototypieren.

OK, das ist einer der kniffligen Teile. Die "Blue Pill" kann nicht über den USB-Port programmiert werden. Ich habe keine einfachere Programmiererklärung für die "Blue Pill" gefunden als das Youtube-Video von Joop Brokking. Es erklärt alles, was Sie wissen müssen, einschließlich der STMduino-Bibliothek von Roger Clarke. Es gibt eine Möglichkeit, einen Bootloader zu installieren, sodass Sie den USB verwenden können, um die "Blue Pill" zu programmieren, aber Sie müssen den Bootloader sowieso über den seriellen Bus programmieren.

Leider wird der Serial Bus auch vom Bluetooth-Adapter verwendet. Das Programm muss über die Pins Serial Bus, PA9 und PA10 installiert werden, zuerst über ein FTDI, dann können Sie alle Ihre Einstellungen mit dem Bluetooth-Adapter überprüfen.

Verwenden Sie ein Steckbrett und legen Sie alles auf dem Steckbrett an, genau wie in der obigen Fritzing-Skizze. Trennen Sie die seriellen TX- und RX-Leitungen des Bluetooth-Adapters von den PA9- und PA10-Pins des STM32F103C. Hängen Sie Ihr FTDI ein und programmieren Sie. Stellen Sie sicher, dass die seriellen Busleitungen gekreuzt sind, RX zu Tx und Tx zu RX. Einer empfängt und der andere gibt.

Sobald das Programm geladen ist, können Sie die serielle Konsole öffnen und senden

um zu sehen, ob die Lichter funktionieren. Wenn die Lichter funktionieren, können Sie senden

erneut, um sie wieder auszuschalten.

Stellen Sie Ihr Auto auf einen Block, um die Reifen anzuheben und zu senden

Die Räder sollten vorwärts gehen. Wenn dies nicht der Fall ist, vertauschen Sie die Drähte. Denken Sie daran, wie wir die Drähte früher beschriftet haben. Die entsprechenden Pins des L293D sollten aufeinander abgestimmt sein.

Um zu stoppen, sende

Schauen wir uns die wesentlichen Änderungen im Code an.

Im kommentierten Abschnitt sollten Sie zu Beginn den Urheber der Dateien von Ardumotive sehen. Die nächsten Kommentare erklären, wo ich etwas geändert habe, um den STM32F103C widerzuspiegeln.

/* * Erstellt von Vasilakis Michalis // 12-12-2014 Ver.2

* Projekt: RC-Auto über Bluetooth mit Android-Smartphone steuern * Weitere Informationen unter https://www.ardumotive.com * * Dieser Code wurde für STM32F103 von Jim Garbe, [email protected] geändert * Weitere Informationen unter https://github.com/jgarbe/RCCAR_STM32F103C * Beachten Sie, dass 8-Bit-Werte 0-255 geändert wurden in * 16-Bit-Werte 0-65535 widerspiegeln */ /******************** ********* * Beim STM32 funktioniert das analoge Schreiben immer noch mit 8-Bit 255, * Sie können jedoch die volle Funktion des PWM-Bereichs 0-65535 erhalten, indem Sie den Pin als PWM deklarieren *AND pwmWrite() anstelle von analogWrite() verwenden ****************************/

Vor allem werden die Pins zwischen dem Arduino und dem STM32F103C nicht gleich benannt. Wir deklarieren die Pins mit den nächsten Zeilen. Es gibt noch einen Pin, der ganz unten in der Schleife deklariert ist. In Zeile 197 wird PA5 verwendet, um den Batteriestand abzulesen.

////L293 Anschluss

const int motorA1 = PB6; // an Pin 15 von L293 const int motorA2 = PB7; // an Pin 10 von L293 const int motorB1 = PB8; // an Pin 7 von L293 const int motorB2 = PB9; // an Pin 2 von L293 // LEDs an STM32F103C angeschlossen Pin A12 const int leuchtet = PA12; // Summer / Lautsprecher an Arduino UNO Pin A8 const int Summer = PA8; // Bluetooth (HC-06 JY-MCU) Zustandspin auf Pin A11 von STM32F103C const int BTState = PA11;

Auch mit analogWrite(); wird weiterhin an der "BluePill" arbeiten. Aber es ist besser, die PWM-Pins mit zu deklarieren, pinMode (, PWM);

Dann benutze

pwmWrite(,);

HINWEIS: 8-Bit = 0-255, 16-Bit = 0-65535

Zeilen 32-44 sind Änderungen an der Batterie. Wenn Sie die Batteriestandsprüfung verwenden möchten, müssen Sie einen Spannungsteiler für die Batterie verwenden, die Sie haben. Dieser Teil spiegelt sich nicht in der Fritzing-Skizze wider. Auf Youtube gibt es viele Erklärungen, wie man einen Spannungsteiler erstellt. Da der STM32F103C ein 3,3-V-Chip ist, habe ich den Code hier korrigiert, um physisch einen Spannungsteiler zu verwenden. Der Arduino kann durch die mitgelieferten ADCs einige höhere Spannungen tolerieren, die "Blue Pill" jedoch nicht.

/* Batteriestand wird an Pin PA5 geprüft

* Die nächste Zeile für den STM32F103C geändert, da der ADC * nichts über 3,3 V verarbeiten kann * Ich habe es nur auskommentiert * Ein Spannungsteiler mit zwei Widerständen muss berechnet und verwendet werden * um den ADC-Eingang weiter unten im Code zu messen * Beispiel: * GND---2K-Widerstand------------------1K-Widerstand ------5v * | * | * 3.3v */ // const float maxBattery = 3.3; // Wert auf Ihre maximale Batteriespannung ändern!

Schritt 3: Alles zusammenfügen

Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen
Setzen Sie alles zusammen

Normalerweise verwende ich eine Proto-Platine, um die Teile zu platzieren und zwischen den Löchern zu löten, um alles zu verbinden. Manchmal "deadbug löten" ich alles zusammen, um eher ein Frankenstein / 3D-Klumpen von Lötzinn-Look zu erhalten.

Ich habe diese Hybridmethode gewählt, um das Gerät sauber und leicht zu machen - und natürlich BILLIG!

Diese Methode ermöglicht auch eine Beschriftung. Einer der schlimmsten Teile des Deadbug-Lötens ist, wenn Sie einen IC-Chip von unten betrachten und vergessen, welcher Pin was ist.

Die Bilder oben sind irgendwie selbsterklärend. Ich denke, der schwierige Teil besteht darin, den Karton zu finden, der dünn genug ist, um Grübchen zu machen und gleichzeitig steif zu sein. Sie können auch Kunststoff verwenden, aber das Markieren ist etwas schwieriger. Sobald ich die Stifte auf die Platine drücke und die Grübchen markiere, verwende ich einen Dremel, um jedes Stiftloch durchzubohren.

Falls es euch noch nicht aufgefallen ist, ich habe die Lichter nur als Zubehörstecker auf der Platine. Ich benutze weder die Batterieanzeige noch den Piepser. Das liegt daran, dass mein Projekt einem anderen Zweck dient. Es ist selbsterklärend, sobald Sie das fertige Ergebnis mit Karosserie sehen. …aber das bringt eine andere Idee mit sich. Es gibt viele unbenutzte Pins in diesem Projekt. Vielleicht ein Kofferraumöffner, Autotüröffner, Feuerwerkskörperzünder, … … oder sogar ein Mini-Galvani-Edison Luminiferous Aether Disturbance Generator!

Sobald das Löten abgeschlossen ist, testen Sie, bevor Sie die Verbindungen heiß kleben, um die Drähte zu entlasten.

Ich habe dieselbe Android-App wie Ardumotive verwendet. Sie finden sie unter

Nachdem Sie die Funktionen des Autos getestet haben, ist es Zeit, die Batterie zu platzieren und zu wechseln. Gehen Sie zum nächsten Schritt.

Schritt 4: Batterie und Schalter

OK, hier können Sie meinen Plan nicht genau befolgen.

Irgendwie müssen Sie einen guten Platz finden, um Ihre Batterie im Auto zu platzieren, entweder mit einer Möglichkeit, die Batteriebank über einen Dongle aufzuladen oder den Batteriestecker direkt aufzuladen. Im Einführungsvideo habe ich nur den Akku und den Mikrocontroller an den Rahmen geklebt und ihn laufen lassen. Als ich aufhören wollte, habe ich einfach den Akku ausgesteckt. Das Problem bei diesem Setup ist die Verderblichkeit der Stecker Ihres USB-Kabels und/oder Ihrer Powerbank. Es ist besser, einen Schalter zu haben.

Sie müssen auch einen guten Platz für den Schalter finden, an dem die Karosserie noch zugänglich ist. Ich habe einen einfachen Druckknopfschalter (kein Momentschalter) verwendet und ihn an der Unterseite des Rahmens montiert, wo sich das ursprüngliche Batteriefach befindet.

Sie müssen ein USB-Kabel halbieren und den Schalter zwischen dem Akku und dem STM32F103C-USB-Anschluss platzieren. Ja, Sie können den STM32F103C über den USB-Anschluss mit Strom versorgen. Sie können es einfach nicht über den USB-Anschluss programmieren. Ich habe wieder einen Dremel verwendet, um einige Löcher für die Lötstifte des Schalters zu bohren. Nach dem Löten habe ich Heißkleber verwendet, um die Verbindungen wieder zu verstärken.

Schritt 5: Setzen Sie Ihre Karosserie auf den Rahmen

OK, ich sagte, dass ich die ursprüngliche Arduino-Version dieses Autos wiederverwendet habe. Das eigentliche Endprodukt war dann eine Bühnenrequisite für das Ballett "Der Nussknacker", aufgeführt von unserer lokalen Ballettkompanie. In der Eröffnungsszene lief eine Maus mit Drosselmeyers zufälliger Magie über die Bühne. Ich benutzte eine IKEA-Ratte und montierte sie auf den Rahmen, Arduino und einen viel größeren Akku. Die Stütze war schwer und nicht wiederaufladbar. Das ist viel besser!

Viel Spaß mit Ihrem Auto. Denken Sie daran, dass am STM32F103C noch viele weitere Pins verwendet werden können. Vielleicht ein Stinktier ähnlich dem in "Toy Story 4".

Empfohlen: