Inhaltsverzeichnis:

OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung - Gunook
OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung - Gunook

Video: OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung - Gunook

Video: OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung - Gunook
Video: 5 Hoverboards That Truly Fly 2024, Juli
Anonim
OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung
OmniBoard: Skateboard- und Hoverboard-Hybrid mit Bluetooth-Steuerung

Das OmniBoard ist ein neuartiger Elektro-Skateboard-Hoverboard-Hybrid, der über eine Bluetooth-Smartphone-Anwendung steuerbar ist. Es ist in der Lage, sich mit allen drei Freiheitsgraden zu bewegen, die von beiden Boards kombiniert erreicht werden können, vorwärts zu gehen, um seine Achse zu drehen und seitwärts zu fliegen.

So können Sie sich in jede gewünschte Richtung bewegen und raffinierte Tricks ausführen, die Sie sonst mit Ihren üblichen Fortbewegungsmitteln wie (Elektro-)Skateboards, Hoverboards, Autos, Fahrrädern usw.

Mein Freund und ich beschlossen, das OmniBoard als lustige Übung und Herausforderung zu bauen und an einigen Instructables-Wettbewerben teilzunehmen, nämlich der Räder-Herausforderung. Wir wollten etwas machen, was noch nie zuvor gemacht wurde, cool ist und nützlich wäre. Da die öffentlichen Verkehrsmittel oft unzuverlässig sind und der Stadtverkehr während der Fahrt zur und von der Arbeit morgens und nachmittags schrecklich ist, sind alternative Verkehrsmittel wie Fahrrad oder Skateboard sinnvoll. Elektro-Skateboards und -Fahrräder sind für lange Fahrten nützlich, aber es gibt bereits viele Verbraucher- und Heimwerkerlösungen für dieses Thema. Also beschlossen wir, das Rad im wahrsten Sinne des Wortes neu zu erfinden und ein neues und unterhaltsames OmniBoard zu entwickeln.

Schritt 1: Werkzeuge und Materialien

Werkzeuge und Materialien
Werkzeuge und Materialien
Werkzeuge und Materialien
Werkzeuge und Materialien
Werkzeuge und Materialien
Werkzeuge und Materialien

Fahrsystem

  • (4) Omni-Räder
  • (4) 60 Zähne Riemenscheibe
  • (4) 20 Zähne Riemenscheibe
  • (4) GT2 Zahnriemen (wir haben 140 Zähne verwendet)
  • (8) Lager mit 7 mm Innendurchmesser, 19 mm Außendurchmesser*
  • (20) Maschinenschrauben M5 (oder ähnlicher Größe), ca. 25 mm lang*
  • (28) Muttern, gleiche Größe wie Maschinenschrauben*
  • (32) Nr. 2 Holzschrauben, 3/8" lang*
  • (16) Winkelhalterungen, vorzugsweise vier Löcher, müssen mindestens 1/2" von der Ecke zum Schraubenloch sein*
  • 1'x2' Sperrholzplatte*
  • Skateboard-Oberfläche

Elektronik:

Fahrsystem

  • (4) Gleichstrommotoren
  • (4) Elektronische Geschwindigkeitsregler (ESC)
  • Stromverteilungsplatine (PDB)
  • 16AWG Silikondraht - Rot und Schwarz
  • Parallel-Splitter mit XT90-Anschluss
  • XT90 Stecker männlich mit Schwanz
  • (8 Paare) 4mm Rundsteckverbinder
  • (4 Paare) XT60-Anschlüsse
  • (2) LiPo-Akkus

Fernbedienung

  • Doppelseitiges Perfboard*
  • LM7805 Spannungsregler*
  • 24AWG Massivkerndrähte - verschiedene Farben*
  • HC-05 Bluetooth-Modul*
  • Arduino Uno v3*
  • (32-polig) Doppelseitige Stiftleisten*
  • (12-polig) Einseitige Ale-Stiftleisten*

Werkzeuge:

  • Lötstation und Löt
  • Kabelschneider
  • Abisolierzangen
  • Zange
  • Schere
  • Bohrer:1-3/8", 3/4", 1/4"

Ausrüstung

  • 3D Drucker
  • Laserschneider
  • Bandsäge
  • Bohrmaschine

*Aus dem örtlichen Elektronikladen oder Baumarkt.

Schritt 2: Wie es funktioniert

Wie es funktioniert
Wie es funktioniert

Das Omniboard ist Elektro-Skateboard und Hoverboard in einem! Es ist in der Lage, sich vorwärts und rückwärts, von einer Seite zur anderen zu bewegen und zu drehen, alles gesteuert über einen Joystick auf Ihrem Telefon.

Das Omniboard wird von vier Motoren angetrieben, die jeweils an einem omnidirektionalen Rad befestigt sind. Da die Omni-Räder seitlich gleiten können, kann sich das Board durch Variieren der Geschwindigkeit und Richtung jedes Motors in jede beliebige Richtung bewegen, die der Benutzer wählt, wie in der Abbildung oben dargestellt.

Schritt 3: Zusammenbau der Omni-Radachsen

Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen
Montage der Omni-Radachsen

Die Teile, die Sie für die Montage der Achsen benötigen, sind:

  • (8) 3D-gedruckter Lagerabstandshalter
  • (4) 3D-gedruckter großer Riemenscheibenabstandshalter
  • (8) Lager
  • (4) Omni-Rad
  • (4) Große Riemenscheibe
  • (4) 3x3x80mm Schlüsselstock

Zuerst möchten Sie wie abgebildet einen Lagerabstandshalter am Ende der Welle anbringen. Der Abstandshalter ist sehr eng anliegend, daher empfehle ich, einen Schraubstock oder einen Hammer zu verwenden, um ihn anzubringen. Wenn es zu locker sitzt, schieben Sie es etwas weiter nach oben und befestigen Sie ein Halsband. Um ein Halsband für das andere Ende brauchen Sie sich keine Sorgen zu machen.

Als nächstes schieben Sie das Omni-Rad auf, gefolgt von einem Lagerabstandshalter, der in die entgegengesetzte Richtung zeigt. Sie können die Lager jetzt aufschieben (es spielt keine Rolle, da sie nicht fest sitzen) und es sollte wie auf dem Bild aussehen. Schließlich können Sie die langen dünnen Riemenscheiben-Abstandshalter in die Riemenscheiben stecken. Ziehen Sie zu diesem Zeitpunkt die Stellschrauben der Riemenscheibe nicht fest und legen Sie sie nicht auf den Schlüsselstock. Die kommen später.

Schritt 4: Schneiden und Bohren der Omni Wheel Trucks

Image
Image
Schneiden und Bohren der Omni Wheel Trucks
Schneiden und Bohren der Omni Wheel Trucks
Schneiden und Bohren der Omni Wheel Trucks
Schneiden und Bohren der Omni Wheel Trucks
Schneiden und Bohren der Omni Wheel Trucks
Schneiden und Bohren der Omni Wheel Trucks

Hier kommt Ihr Laserschneider und 3/8 dickes Sperrholz zum Einsatz! Das CAD zum Laserschneiden des Rahmens ist im.dxf-Format beigefügt.

Als nächstes bohren Sie zwei Löcher über die kleinen Kreuze, die der Laserschneider auf dem Sperrholz hinterlässt. Das etwas kleinere Kreuz wird mit dem 3/4"-Bohrer nur 1/4" durchgebohrt, während das größere Kreuz mit dem 1-3/8"-Bohrer ganz durchgebohrt wird. Es ist sehr wichtig dass Sie sich für die Hälfte der Stücke daran erinnern, die 3/4 "Löcher von einer Seite und die andere Hälfte von der anderen Seite zu schneiden. Als nächstes bohren Sie ein kleineres 3/8 "Loch durch die Mitte der 3/4" Löcher, ganz durch die Schicht, die Sie vorher nicht geschnitten haben.

Schließlich schrauben Sie die Winkel an den kürzeren Seiten der rechteckigen Teile fest. Sie haben jetzt fast alles, was Sie brauchen, um die Omni Wheel Trucks zusammenzubauen.

Schritt 5: Zusammenbau der Omni Wheel Trucks

Montage der Omni Wheel Trucks
Montage der Omni Wheel Trucks
Montage der Omni Wheel Trucks
Montage der Omni Wheel Trucks
Montage der Omni Wheel Trucks
Montage der Omni Wheel Trucks

Jetzt können wir die LKW-Montage beenden! Sie benötigen die Teile aus den letzten beiden Schritten plus:

  • (4) Zahnriemen
  • (4) 3D-gedruckter kleiner Riemenscheiben-Abstandshalter
  • (4) Kleine Riemenscheibe
  • (4) Motor

Schieben Sie jede Sperrholzseite auf die Lager. Wenn die 3/4 -Löcher nicht leicht über die Lager passen, verwenden Sie einen Dremel, um sie etwas breiter zu schleifen. Wenn sie passen, legen Sie die Riemenscheibe über den hervorstehenden Schlüsselschaft und ziehen Sie die Stellschrauben fest. Schrauben Sie das rechteckige Stück in die Kerbe über dem Omni-Rad.

Überprüfen Sie an dieser Stelle, ob sich Ihr Omni-Rad frei dreht. Wenn dies nicht der Fall ist, klemmt Ihre Riemenscheibe möglicherweise auf das Sperrholz. Heben Sie es etwas weiter den Schlüsselstock an.

Als nächstes werden wir die Motoren einbauen. Die 1-3/8 Löcher sind etwas zu klein, also schleifen Sie den inneren Kreis langsam mit einem Dremel, bis der Motor genau hineinpasst. Achten Sie darauf, den Motor nicht mit Gewalt hineinzudrücken und ihn zu verformen Sobald der Motor in Position ist, schieben Sie den Riemen über die kleinen Riemenscheiben, dann die kleinen Riemenscheiben über ihre Distanzstücke und auf die 3,175 mm Motorwelle. Ziehen Sie die Stellschrauben an.

Aus Gründen der Kompaktheit und Symmetrie sollten Sie die Riemenscheiben und Riemen für zwei davon auf einer Seite des LKWs und auf der anderen Seite für die anderen beiden platzieren.

Schritt 6: Montage an der Skateboard-Plattform

Montage an der Skateboard-Plattform
Montage an der Skateboard-Plattform
Montage an der Skateboard-Plattform
Montage an der Skateboard-Plattform
Montage an der Skateboard-Plattform
Montage an der Skateboard-Plattform

Jetzt werden wir die Achsen an der Skateboardplattform befestigen. Sie könnten Ihre aus Sperrholz und Griffband herstellen; unseres wurde von einem alten Skateboard genommen.

Zuerst möchten Sie 1/4 Löcher in beide Seiten des Sperrholzes bohren, wie in der Abbildung gezeigt. In jedem Loch befestigen Sie eine Winkelhalterung mit einer M5-Schraube und verdoppeln Sie sie auf der Innenseite, um zu verhindern, dass sie kommt sich durch Vibrationen lockern. Messen und bohren Sie die Löcher, die es Ihnen ermöglichen, die Trucks so nah an den Enden und in einem möglichst steilen Kegelwinkel zu montieren, während Sie innerhalb der Aufstandsfläche der Plattform bleiben. Jetzt drehen Sie sie um und führen Sie einen Belastungstest durch !

Schritt 7: Löten der Motoren

Image
Image
Löten der Motoren
Löten der Motoren

Löten Sie die 4 mm Rundstecker an einen Draht, der mit den Motoren verbunden wird, und löten Sie diesen Draht dann an die Motorklemmen. Zur Kabelorganisation werden alle Drähte auf 6 cm geschnitten und an beiden Enden abisoliert

Tipp: Es ist einfacher, die Drähte zuerst auf die Rundstecker zu löten und dann mit dem Motor zu verlöten, als umgekehrt.

Um den Rundstecker an den Draht zu löten, stecken Sie ihn auf eine isolierte Krokodilklemme der helfenden Hand (da die Wärme schnell vom Körper des Rundsteckers zum metallischen, wärmeleitenden Handkörper abgeführt wird). Bringen Sie dann etwas Lötmittel auf den Kugelverbinder, etwa auf halbem Weg, und tauchen Sie den Draht auf den Lötpool, während Sie das Bügeleisen im Stecker halten, wie im Video gezeigt. Dann den Draht und den Rundstecker heiß schrumpfen.

Legen Sie dann das Kabel neben die Motorklemme und halten Sie es mit der helfenden Hand aufrecht. Ich benutzte die Lötrolle, um den Motor auf dem Kopf zu halten. Löten Sie dann den Draht auf die Motorklemme. Die Reihenfolge und Farbe der Drähte sind nicht eindeutig und spielen keine Rolle, da die Reihenfolge umgeschaltet werden kann, um die Drehung umzukehren, was in den nächsten Schritten bei Bedarf erfolgen wird.

Schritt 8: Löten von ESC-Batterieanschlüssen

Löten von ESC-Batterieanschlüssen
Löten von ESC-Batterieanschlüssen
Löten von ESC-Batterieanschlüssen
Löten von ESC-Batterieanschlüssen

Schneiden Sie vor dem Löten etwas Schrumpfschlauch für jeden der Drähte, die verwendet werden, um die freiliegenden Lötenden zu isolieren.

Schneiden Sie eines der Kabel zum Batterieanschluss ab, streifen Sie es ab, schieben Sie den Schrumpfschlauch hinein und löten Sie es an den XT60-Anschluss, wobei der rote Anschluss an den Pluspol des XT60 und der schwarze an den Minuspol des XT60 angeschlossen wird.

Warnung: Schneiden Sie die ESC-Drähte nur einzeln durch, da sich zwischen den positiven und negativen Anschlüssen ein Kondensator befinden kann, der kurzgeschlossen wird, wenn die Schere oder der Drahtschneider beide gleichzeitig durchschneiden.

Um den Draht an den XT60-Stecker zu löten, halten Sie den Körper des XT60-Steckers mit den helfenden Händen fest. Bringen Sie dann etwas Lötmittel zum XT60-Anschluss ungefähr auf halbem Weg und tauchen Sie den Draht, während Sie den Lötkolben auf dem XT60-Anschluss halten, in das flüssige Lötmittel, wie im Video aus dem vorherigen Schritt gezeigt. Nach dem Abkühlen den Schrumpfschlauch nach unten schieben, um das freiliegende Ende zu isolieren und mit den Seiten des Lötkolbens zu erhitzen.

Wiederholen Sie dies für die restlichen Drähte der Batterieanschlüsse der ESCs.

Schritt 9: Löten der Power Distribution Board (PDB)

Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)
Löten des Power Distribution Boards (PDB)

Der PDB nimmt den Input von den beiden Lithium-Polymer-Akkus (LiPo) mit einer kombinierten Spannung und einem Strom von 11,1 V bzw. 250 A auf und verteilt ihn an die vier Regler.

Tipp: Es ist einfacher, zuerst die XT90-Steckerkabel an die PDB-Pads zu löten, dann die 16 AWG-Drähte an die ESCs, gefolgt von den XT60-Steckern an diese Drähte.

Schneiden Sie vor dem Löten der Drähte den Schrumpfschlauch so zu, dass er zu jedem der Drähte passt, damit er später auf das freiliegende gelötete Ende geschoben werden kann, um Kurzschlüsse zu vermeiden.

Um die Drähte auf die PDB-Pads zu löten, fand ich es am einfachsten, die Drähte (insbesondere das große XT90-Kabel) mit den helfenden Händen aufrecht zu halten und auf die auf dem Tisch ruhende PDB zu legen. Löten Sie dann den Draht um das PDB-Pad. Schieben Sie dann den Schrumpfschlauch nach unten und erhitzen Sie ihn, um die Schaltung zu isolieren.

Wiederholen Sie dies für den Rest der ESC-Drähte.

Um den XT60 zu löten, folgen Sie dem vorherigen Schritt, wie der ESC-Batterieanschluss durch XT60s ersetzt wurde.

Schritt 10: Anschließen der Drähte

Anschließen der Drähte
Anschließen der Drähte

Verbinden Sie die Motorkabel mit den Rundsteckerklemmen des ESC. Stecken Sie dann den weißen Signalstift vom ESC an Pin 9 und den schwarzen Massestift an den GND-Pin des Arduino. Dual Lock Strips wurden verwendet, um alle ESCs und Drähte an der Platine zu sichern.

Um zu überprüfen, ob die Drehung der Motoren korrekt ist (sich nach vorne drehen), führen Sie den Beispielcode auf dem Arduino unten aus.

#enthalten

Servomotor;

Byte im Uhrzeigersinn Geschwindigkeit = 110; langes Intervall ohne Vorzeichen = 1500; int motorPin = 9;

Void-Setup ()

{ Serial.begin (9600); motor.attach (motorPin); Serial.println ("Beginning test"); }

Leere Schleife ()

{ motor.write (UhrzeigersinnGeschwindigkeit); Serial.println ("Stopp Motor vom Drehen"); Verzögerung (Intervall); }

Die Reihenfolge der vom Regler zum Motor angeschlossenen Drähte bestimmt die Drehung des Motors. Wenn der Motor gegen den Uhrzeigersinn dreht, notieren Sie sich den Motor und ändern Sie den Booleschen Wert im Controller-Code in Schritt "Programmieren des Omniboard-Controllers". Wenn es sich im Uhrzeigersinn nach vorne dreht, ist die Drehung korrekt. Tun Sie dies für jeden der vier Motoren. Wenn sich der Motor nicht dreht, überprüfen Sie alle Ihre Anschlüsse, ob kaltes Lötmittel vorhanden ist, das zu einer lockeren Verbindung führt.

Schritt 11: Ändern des ESC-Modus

Ändern des ESC-Modus
Ändern des ESC-Modus

Standardmäßig befinden sich die gebürsteten ESCs im Übungsmodus. Dies wird durch das blinkende LED-Licht angezeigt. Um einen Motor programmgesteuert in die Rückwärtsrichtung zu steuern, ist der Steigmodus erforderlich.

Um auf diesen Modus zuzugreifen, verbinden Sie den ESC mit dem Arduino, indem Sie den weißen Signalstift vom ESC an Pin 9 und den schwarzen Massestift an den GND-Pin des Arduino anschließen. Laden Sie dann das folgende Programm auf das Arduino-Board hoch und führen Sie es aus:

#enthalten

Servomotor;

Byte stopSpeed = 90; langes Intervall ohne Vorzeichen = 1500; int motorPin = 9;

Void-Setup ()

{ Serial.begin (9600); motor.attach (motorPin); Serial.println ("Beginn Test"); }

Leere Schleife ()

{ motor.write (stopSpeed); Serial.println ("Stopp Motor vom Drehen"); Verzögerung (Intervall); }

Schalten Sie den ESC ein und halten Sie dann die Programmiertaste zwei Sekunden lang gedrückt. Die LED-Anzeige leuchtet nun konstant, anstatt zu blinken, was bedeutet, dass der Modus erfolgreich in den Klettermodus geändert wurde.

Schritt 12: Schnittstelle mit Bluetooth-Modul und Telefon

Schnittstelle mit Bluetooth-Modul und Telefon
Schnittstelle mit Bluetooth-Modul und Telefon
Schnittstelle mit Bluetooth-Modul und Telefon
Schnittstelle mit Bluetooth-Modul und Telefon
Schnittstelle mit Bluetooth-Modul und Telefon
Schnittstelle mit Bluetooth-Modul und Telefon

Das HC-05 Bluetooth-Modul ermöglicht es dem Arduino, sich mit einem Telefon zu verbinden, um die drahtlose Steuerung des Skateboards über eine App zu ermöglichen. Da ich festgestellt habe, dass die Schnittstellen des Bluetooth-Moduls fehlerhaft sind, ist es besser, es zuerst zu testen, bevor Sie die endgültige Schaltung löten.

Wir werden 4 der 6 Pins des Bluetooth-Moduls verwenden. Diese sind: Tx (Senden), Rx (Empfangen), 5V und GND (Masse). Verbinden Sie die Tx- und Rx-Pins des HC-05-Bluetooth-Moduls mit den Pins 10 bzw. 11 des Arduino. Verbinden Sie dann den 5V-Pin und die GND-Pins mit den Pins mit dem gleichen Etikett auf dem Arduino.

Fügen Sie in der Blynk-App die Bluetooth- und Schaltflächen-Widgets hinzu, wie in den Bildern oben gezeigt. Weisen Sie dann der Taste den digitalen Pin D13 zu, der mit der eingebauten LED des Arduino Uno verbunden ist.

Laden Sie den folgenden Code hoch und führen Sie ihn mit dem angeschlossenen Bluetooth-Modul auf dem Arduino aus und öffnen Sie den seriellen Monitor, um zu sehen, ob das Bluetooth-Modul verbunden ist. Schalten Sie dann die Ein / Aus-Taste um und beobachten Sie die eingebaute LED am Arduino-Wechsel.

#define BLYNK_PRINT-Seriennummer

#enthalten

#enthalten

// Sie sollten das Auth-Token in der Blynk-App abrufen.

// Gehe zu den Projekteinstellungen (Nuss-Symbol). char auth = "Ihr Authentifizierungstoken";

SoftwareSeriell SerialBLE(10, 11); // RX, TX

BLYNK_WRITE(V1)

{ int pinValue = param.asInt(); // Zuweisen eines eingehenden Werts von Pin V1 zu einer Variablen}

Void-Setup ()

{ Serial.begin (9600); // Debug-Konsole SerialBLE.begin (9600); Blynk.begin(SerialBLE, auth); Serial.println("Warten auf Verbindungen…"); }

Leere Schleife ()

{ Blynk.run(); }

Schritt 13: Löten des Arduino-Shields

Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields
Löten des Arduino Shields

Um die Schaltung und lose Überbrückungsdrähte des Prototyps zu bereinigen, werden wir ein Arduino-Shield löten, das mit jedem der ESCs und dem Bluetooth-Modul sowie einer Stromversorgung des Arduino verbunden ist.

Löten Sie den folgenden Schaltplan oben auf ein doppelseitiges Perfboard.

Ich habe zuerst die doppelseitigen Stiftleisten auf die Arduino-Buchsenleisten dimensioniert und eingesteckt und dann für beide Seiten an die Oberseite des Perfboards gelötet. Sobald sie gelötet waren, entfernte ich es von der Arduino-Platine, um den unteren Teil der Platine zu löten. Dann lötete ich die ESC Single-Sided Male Pin Headers in 4 Sätzen von 3 auf die Unterseite des Perfboards. Danach habe ich das HC-05 Bluetooth-Modul aufrecht gestellt und die Anschlüsse auch auf die Unterseite des Perfboards gelötet.

Da das Bluetooth-Modul einen 5V-Spannungseingang benötigt und der PDB nur auf 12V geregelt wird, habe ich einen LM7805 verwendet, um den Strom zu reduzieren, um die Stromaufnahme vom Arduino zu begrenzen. Dieselbe 5-V-Versorgung ist auch mit dem 5-V-Pin des Arduino verbunden, so dass der Arduino im Gegensatz zu einem zusätzlichen Barrel-Buchsenadapter über das Schild mit Strom versorgt werden kann.

Die Pins des LM7805 wurden an die Unterseite des Perfboards gelötet, wobei die Spannungsreglerkomponente auf dem Perfboard sitzt, wie im Bild oben gezeigt. Ich lötete alle Stromanschlüsse an jede der Komponenten und ESC-Stiftleisten und das HC-05-Bluetooth-Modul wie im Schaltplan beschrieben. Der 12-V-Ausgang des PDB wurde dann an den VCC-Eingang (ganz links) und den Massestift (Mitte) des Spannungsreglers LM7805 gelötet. Schließlich wird jeder der ESC-Signalstiftleisten und die Tx- und Rx-Pins des HC-05-Bluetooth-Moduls über die doppelseitigen Stiftleisten mit den digitalen Arduino-Pins verbunden, wie im Schaltplan gezeigt.

Schritt 14: Erstellen der App über Blynk

Erstellen der App über Blynk
Erstellen der App über Blynk

Das Omniboard wird über Bluetooth mit jedem Smartphone über die Blynk App gesteuert. Blynk ist eine Android- und iOS-App, die es ermöglicht, Module und Widgets zu verwenden, die mit mehreren Mikrocontrollern mit Bluetooth- oder Wireless-Funktionen oder Bluetooth / Wireless-Modulen wie dem HC-05 verbunden werden können.

1. Installieren Sie Blynk auf Ihrem Telefon.

2. Erstellen Sie ein Konto und melden Sie sich an

3. Erstellen Sie ein neues Projekt und benennen Sie es. Ich habe meinen "Omniboard-Controller" genannt, Arduino Uno als Mikrocontroller und Bluetooth als Schnittstellentyp ausgewählt.

4. Ziehen Sie die folgenden Widgets per Drag & Drop auf den Bildschirm: Bluetooth, Karte, 2 Tasten und Joystick

Schritt 15: Widgets mit Arduino verbinden

Widgets mit Arduino verbinden
Widgets mit Arduino verbinden
Widgets mit Arduino verbinden
Widgets mit Arduino verbinden
Widgets mit Arduino verbinden
Widgets mit Arduino verbinden

Die Taste wird verwendet, um zwischen Hoverboard-Modus und Skateboard-Modus umzuschalten. Der Hoverboard-Modus ermöglicht eine präzise Kontrolle von Spin und Strafe, während eine Reisegeschwindigkeit gehalten wird. Der Skateboard-Modus ermöglicht eine präzise Kontrolle der Vorwärtsgeschwindigkeit und des Spins. Der Joystick steuert das Skateboard mit zwei Freiheitsgraden, die durch die Umschalttaste ausgetauscht werden. Die Karte zeigt Ihren aktuellen Standort sowie Wegpunkte für andere Orte an. Über Bluetooth kann die Schnittstelle mit einem Bluetooth-Modul verbunden werden.

Joystick-Einstellungen:

Wählen Sie als Ausgangstyp "Merge" und weisen Sie ihn dem virtuellen Pin V1 zu

Tasteneinstellung:

  • Nennen Sie den ersten Button "Hover Mode" und den zweiten Button "Cruise Control".
  • Weisen Sie den Ausgang der ersten Taste dem virtuellen Pin V2 zu und ändern Sie den Modus auf "Switch".
  • Weisen Sie den Ausgang der zweiten Taste dem virtuellen Pin V3 zu und ändern Sie den Modus auf "Switch".
  • Benennen Sie die Umschaltnamen der ersten Schaltflächen in "Hover" und "Skate" um und behalten Sie "ON" und "OFF" bei.

Karteneinstellungen:

Weisen Sie dem Eingang V4 zu

Bluetooth-Einstellungen:

Wählen Sie das Bluetooth-Widget in der Blynk-App aus und verbinden Sie sich mit Ihrem Modul. Das Standardpasswort für das Bluetooth-Modul ist '1234'

Schritt 16: Programmierung des Omniboard-Controllers

Programmierung des Omniboard-Controllers
Programmierung des Omniboard-Controllers
Programmierung des Omniboard-Controllers
Programmierung des Omniboard-Controllers
Programmierung des Omniboard-Controllers
Programmierung des Omniboard-Controllers

Die Dynamik des Omniboards wurde basierend auf dem Dynamikalgorithmus programmiert, der aus dem Abschnitt "So funktioniert's" abgeleitet wurde. Jeder der 3 Freiheitsgrade Vorwärts, Strafe und Spin wird unabhängig berechnet und überlagert, um eine vollständige Bewegungssteuerung des Omniboards zu ermöglichen. Die Steuerung der einzelnen Motoren erfolgt linear proportional zur Bewegung des Joysticks. Laden Sie den folgenden Code hoch und führen Sie ihn auf dem Arduino aus.

#define BLYNK_PRINT-Seriennummer

#enthalten

#enthalten

#enthalten

ServomotorFR; ServomotorFL; ServomotorBR; ServomotorBL;

bool motorFRrev = true;

bool motorFLrev = true; bool motorBRrev = true; bool motorBLrev = true;

SchwimmermotorFRang = 330,0*PI/180,0;

SchwimmermotorFLang = 30,0*PI/180,0; SchwimmermotorBRang = 210,0*PI/180,0; SchwimmermotorBLang = 150,0*PI/180,0;

SchwimmermotorFRspeedT;

SchwimmermotorFLspeedT; SchwimmermotorBRspeedT; SchwimmermotorBLspeedT;

SchwimmermotorFRspeedR;

SchwimmermotorFLspeedR; SchwimmermotorBRspeedR; SchwimmermotorBLspeedR;

float maxAccel = 10;

Byte vorwärtsGeschwindigkeit = 110;

Byte backSpeed = 70; Byte stopSpeed = 90; // auf experimentell ermittelte Zahl umstellen

int cruiseControl;

int yawMode;

// Sie sollten das Auth-Token in der Blynk-App abrufen.

// Gehe zu den Projekteinstellungen (Nuss-Symbol). char auth = "8523d5e902804a8690e61caba69446a2";

SoftwareSeriell SerialBLE(10, 11); // RX, TX

BLYNK_WRITE(V2) {cruiseControl = param.asInt();}

BLYNK_WRITE(V3) {yawMode = param.asInt();} WidgetMap myMap(V4);

BLYNK_WRITE(V1)

{ int x = param[0].asInt(); int y = param[1].asInt();

if (!cruiseControl) calcTranslation(x, y);

if (yawMode) calcRotation(x, y); sonst { motorFRspeedR = 0; MotorFLGeschwindigkeitR = 0; motorBRspeedR = 0; motorBLspeedR = 0; } writeToMotors(); }

Void-Setup ()

{ motorFR.attach(9); motorFL.attach(6); motorBR.attach(5); motorBL.attach(3); Verzögerung (1500); // warten, bis die Motoren initialisiert sind // Debug-Konsole Serial.begin (9600);

SerialBLE.begin(9600);

Blynk.begin(SerialBLE, auth);

Serial.println("Warten auf Verbindungen…");

// Wenn Sie alle Punkte entfernen möchten:

//myMap.clear();

int-Index = 1;

Float lat = 43,653172; Float lon = -79,384042; myMap.location(index, lat, lon, "Wert"); }

Leere Schleife ()

{ Blynk.run(); }

void calcTranslation(int joyX, int joyY)

{ float normX = (joyX - 127.0)/128.0; float normY = (joyY - 127,0)/128,0; motorFRspeedT = (normY*cos(motorFRang) + normX*sin(motorFRang))*(1 - 2*motorFRrev); motorFLspeedT = (normY*cos(motorFLang) + normX*sin(motorFLang))*(1 - 2*motorFLrev); motorBRspeedT = (normY*cos(motorBRang) + normX*sin(motorBRang))*(1 - 2*motorBRrev); motorBLspeedT = (normY*cos(motorBLang) + normX*sin(motorBLang))*(1 - 2*motorBLrev); }

void calcRotation(int joyX, int joyY)

{ float normX = (joyX - 127.0)/128.0; float normY = (joyY - 127,0)/128,0; motorFRspeedR = joyX*(1 - 2*motorFRrev); motorFLspeedR = -joyX*(1 - 2*motorFLrev); motorBRspeedR = -joyX*(1 - 2*motorBRrev); motorBLspeedR = joyX*(1 - 2*motorBLrev); }

void writeToMotors()

{ float motorFRspeed = motorFRspeedT + motorFRspeedR; float motorFLspeed = motorFLspeedT + motorFLspeedR; Schwimmer motorBRspeed = motorBRspeedT + motorBRspeedR; Schwimmer motorBLspeed = motorBLspeedT + motorBLspeedR;

long motorFRmapped = map((long) (100*motorFRspeed), -100, 100, backSpeed, forwardSpeed);

long motorFLmapped = map((long) (100*motorFLspeed), -100, 100, backSpeed, forwardSpeed); long motorBRmapped = map((long) (100*motorBRspeed), -100, 100, backSpeed, forwardSpeed); long motorBLmapped = map((long) (100*motorBLspeed), -100, 100, backSpeed, forwardSpeed); motorFR.write (motorFRmapped); motorFL.write (motorFL zugeordnet); motorBR.write (motorBRmapped); motorBL.write (motorBL zugeordnet); }

Schritt 17: Installation des Elektronikgehäuses

Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses
Einbau des Elektronikgehäuses

Um zu verhindern, dass alle Drähte und Teile aus dem Boden baumeln, drucken Sie das angebrachte Gehäuse in 3D aus und schrauben Sie es dann mit M5-Schrauben auf das Skateboard.

Schritt 18: Malerei

Gemälde
Gemälde
Gemälde
Gemälde
Gemälde
Gemälde

Die Inspiration für das Top-Deck-Design sind PCB-Schaltungen und -Muster. Um dies zu tun, wird zuerst die Unterseite des Skateboards mit meinem Malerband umwickelt. Dann wird das gesamte Oberdeck mit weißer Farbe beschichtet. Nach dem Trocknen wird es mit dem Negativ des Schaltungsmusters maskiert und dann mit einem schwarzen Mantel neu lackiert. Dann vorsichtig die Maskierungen von der obersten Schicht abziehen und voila, ein cool aussehendes Skateboard.

Ich ermutige Sie, das Design für Ihr eigenes Omniboard zu personalisieren und Ihre kreative Freiheit auszuüben.

Schritt 19: Test und Demo

Image
Image

Zweiter Preis beim Wheels Contest 2017

Fernbedienungswettbewerb 2017
Fernbedienungswettbewerb 2017

Erster Preis beim Remote Control Contest 2017

Empfohlen: