Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: 3D-Druck
- Schritt 2: Bereiten Sie den Arduino Nano vor
- Schritt 3: DC-Motor, DC-Motortreiber und Sensoren vorbereiten
- Schritt 4: Zusammenbauen
- Schritt 5: Code
- Schritt 6: Wie geht es weiter?
Video: MrK Blockvader - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Im Laufe der Jahre habe ich viele interessante 3D-gedruckte Rover-Roboterprojekte gesehen und ich liebe es, wie die 3D-Drucktechnologie der Roboter-Community geholfen hat, mehr Vielfalt in Bezug auf Design und Materialauswahl zu wachsen. Ich möchte einen kleinen Beitrag zur Robotik-Community leisten, indem ich MrK_Blockvader auf Instructable for the Maker Community veröffentliche.
MrK_Blockvader ist ein lustiger kleiner Roboter mit einem winzigen Summer, aber lassen Sie sich nicht von dem blockigen Aussehen täuschen. Er könnte mit dem Farbsensor, Entfernungssensor, einem Funkmodul ausgestattet sein, um mit anderen Blocky mit ähnlichen Fähigkeiten, mit einer Basis oder mit einem Controller zu kommunizieren.
MrK_Blockvader wird Teil eines Roboternetzwerks sein, in dem man einer Gruppe von Robotern als Kommandant zugeteilt werden kann, um das gleiche Ziel zu erreichen.
Lieferungen
1 * Arduino Nano
1 * DC-Motortreiber
2 * Gleichstrommotor mit Getriebe
1 * 650 mAh Venom LiPo-Akku
2 * 1/24 RC LKW-Räder
2 * weiße LEDs
1 * Distanzsensor
1 * Farbsensor
1 * nRF24-Breakout-Board
1 * nRF24-Funkplatine
1 * Summer
1 * Schalter
1 * 26 AUG Schwarzer Draht
1 * 26 AUG Blaues Kabel
1 * 22 AUG Schwarzer Draht
1 * 22 AUG Rotes Kabel
Schritt 1: 3D-Druck
Ich verwende den CEL Robox 3D-Drucker, der mit Carbonmaterial für geringes Gewicht und Haltbarkeit bedruckt ist. Ich werde die STL-Dateien unten anhängen. Bitte setzen Sie den Kommentar, wenn Sie Fragen zum 3D-Druckverfahren und der Einstellung haben.
Schritt 2: Bereiten Sie den Arduino Nano vor
Ich habe gelernt, dass die Vorbereitung aller elektrischen Komponenten der Schlüssel zu einem sauberen Projekt ist.
Dieses Projekt beinhaltet die Verdrahtung der nRF24 Breakout-Platine, ich habe dies in einem separaten Projekt namens NRF24 Wireless LED Box getan. Hier finden Sie die Informationen zum Verdrahten der nRF24-Breakout-Platine mit einem Arduino.
Hinweis: Ich verwende dickere 22 AWG-Draht für die Stromversorgung des Nano und dünne 26 AWG-blaue und schwarze Drähte für alle anderen Signalzwecke. Ich liebe diese 26 AWG-Drähte, sie sind flexibel, aber dennoch stark und bieten das Beste aus beiden Welten.
Vorbereitungen für Arduino Nano:
- Löten Sie die Signalstiftleiste an den Arduino Nano.
- Benetzen Sie diese Pins mit dem Lot, um das Löten später viel einfacher zu machen.
- Löten Sie eine Gruppe blauer Drähte an die 5V, um alle Sensoren und LEDs mit Strom zu versorgen.
- Löten Sie eine Gruppe schwarzer Drähte an GND, um alle Sensoren und LEDs zu erden.
Vorbereitungsarbeiten für das NRF 24 Breakout-Board:
- Löten Sie 5 Drähte an die nRF24-Breakout-Platine für die Signale.
- Löten Sie 2 Drähte an die nRF24-Breakout-Platine für die Stromversorgung.
- Überprüfen Sie den Link, um sicherzustellen, wie das Breakout-Board mit einem Arduino verbunden wird.
- Löten Sie die Signal-5-Drähte vom nRF24 zum Arduino Nana.
Summer Vorbereitungsarbeiten:
- Löten Sie ein schwarzes Kabel an eines der Summerbeine für Masse.
- Löten Sie ein blaues Kabel an das andere Summerbein zur Signalsteuerung.
Fotowiderstandsvorbereitungsarbeit: (Diagramm verfügbar)
- Löten Sie einen blauen Draht an einen der Fotowiderstandsschenkel für 5V.
- Löten Sie einen 10K-Widerstand an das andere Bein des Fotowiderstands.
- Löten Sie einen blauen Draht zwischen dem 10K-Widerstand und dem Fotowiderstand für das Signal.
- Löten Sie ein schwarzes Kabel an den 10K-Widerstand für Masse.
LED-Vorbereitung:
- Löten Sie einen blauen Draht von der positiven rechten LED zur positiven linken LED.
- Löten Sie einen schwarzen Draht von der negativen rechten LED zur negativen linken LED.
- Löten Sie ein blaues Kabel an die positive rechte LED zur Signalsteuerung.
- Löten Sie ein schwarzes Kabel an die negative rechte LED für Masse.
Schritt 3: DC-Motor, DC-Motortreiber und Sensoren vorbereiten
Der MrK_Blockvador verfügt über eine Reihe von Sensoroptionen und die zusätzlichen Sensoren haben keinen Einfluss auf den Gesamtbetrieb, der Farbsensor kann jedoch nicht installiert werden, nachdem der DC-Motor eingeklebt wurde.
Vorbereitungsarbeiten für Gleichstrommotoren:
- Löten Sie ein schwarzes und ein rotes Kabel an den Gleichstrommotor.
- Umwickeln Sie das Ende des Motors mit Learband.
- Füllen Sie den Bereich mit Heißkleber, um die Motoranschlüsse abzudichten.
DC-Motortreiber Vorbereitungsarbeit:
- Löten Sie die 6 Signaldrähte am Motortreiber.
- Löten Sie das Signalkabel an den richtigen Pin des Arduino Nano.
- Installieren Sie die 12-V-Kabel, um den Motortreiber von der Batterie zu versorgen. Stellen Sie sicher, dass die Drähte lang genug sind, um sie unter und aus der Rückseite des Roboters zu führen.
- Installieren Sie die 5V-Drähte, um den Arduino Nano vom Motortreiber mit Strom zu versorgen.
Vorbereitung des Farbsensors (optional):
- Löten Sie die 2 Drähte für das Signal.
- Löten Sie die 2 Drähte für die Stromversorgung.
- Löten Sie den 1 Draht, um die superhelle LED zu steuern.
Abstandssensor Vorbereitungsarbeit: (optional)
- Löten Sie ein blaues Kabel für das Signal.
- Löten Sie ein weiteres blaues Kabel am positiven Anschluss für positive 3V.
- Löten Sie ein schwarzes Kabel für den negativen Anschluss für Masse.
Schritt 4: Zusammenbauen
Nach all der Vorarbeit ist jetzt der Moment gekommen, in dem die Dinge zusammenlaufen.
Hinweis: Ich verwende Heißkleber für den DC-Motor und den DC-Motortreiber, da Heißkleber eine geringfügige Stoßdämpfung bieten kann und wenn Sie ihn entfernen müssen, wird der Heißkleber mit ein wenig Reinigungsalkohol sofort entfernt.
Montageprozess:
- Kleben Sie den Farbsensor mit Heißkleber auf das Chassis und führen Sie das Farbsensorkabel durch den Kanal. (Optional)
- Heißkleben Sie die DC-Motoren auf das Chassis, stellen Sie sicher, dass der DC-Motor bündig mit dem Chassis sitzt.
- Superkleber Blocvader Kopf an seinem Chassis sicherstellen, dass alle Drähte durchgehen.
- Abstandssensor für Heißkleber. (Optional)
- Heißklebe-LEDs für Blockvador-Augen.
- Führen Sie die DC-Motorkabel vollständig in den DC-Motortreiber ein und schrauben Sie sie fest.
- Führen Sie die 12-V-Stromkabel vom DC-Treiber nach unten unter und aus der Rückseite des Chassis für den Ein / Aus-Schalter.
- Stellen Sie sicher, dass alle Drähte von allen Sensoren frei sind, bevor Sie den DC-Motortreiber festkleben.
- Testcode hochladen und Fehler beheben, falls vorhanden.
Schritt 5: Code
Basiscode:
Der Roboter verwendet seinen Fotowiderstand und erkennt das Lichtniveau des Raumes und reagiert, wenn sich das Lichtniveau im Laufe der Zeit ändert
Das Herzstück des Codes:
Void Schleife () { lightLevel = analogRead (Photo_Pin); Serial.print ("Lichtstufe: "); Serial.println (lightLevel); Serial.print ("Aktuelles Licht: "); Serial.println (Current_Light); if (lightLevel >= 200){ Chill_mode();analogWrite(eyes_LED, 50);Serial.println("Chill mode");} if (lightLevel <180){ Active_mode();analogWrite(eyes_LED, 150);Serial. println("Aktiver Modus");} }
Der Roboter kann über eine Steuerung gesteuert und über die Steuerung in den teilautonomen Modus umgeschaltet werden.
Das Herzstück des Codes:
Void Schleife () {int Debug = 0; lightLevel = analogRead (Photo_Pin); Dis = analogRead (Dis_Pin); // Prüfen, ob Daten zu empfangen sind if (radio.available()) { radio.read(&data, sizeof(Data_Package)); if (data. C_mode == 0) {Trim_Value = 10; Direct_drive();} if (data. C_mode == 1){Trim_Value = 0; Autonomous_mode();} if (data. C_mode == 2){Trim_Value = 0; Chill_mode();} if(debug >= 1) { if (data. R_SJoy_State == 0){Serial.print("R_SJoy_State = HIGH; ");} if (data. R_SJoy_State == 1){Serial.print("R_SJoy_State = LOW; ");} if (data. S_Switch_State == 0){Serial.print("S_Switch_State = HIGH; ");} if (data. S_Switch_State == 1){Serial.print("S_Switch_State = LOW; ");} if (data. M_Switch_State == 0){Serial.println("M_Switch_State = HIGH");} if (data. M_Switch_State == 1){Serial.println("M_Switch_State = LOW");} Serial.print("\n"); Serial.print ("Rover-Modus: "); Serial.println (data. C_mode); Serial.print ("L_XJoy_Value = "); Serial.print (data. L_XJoy_Value); Serial.print ("; L_YJoy_Value = "); Serial.print (data. L_YJoy_Value); Serial.print ("; R_YJoy_Value = "); Serial.print (data. R_YJoy_Value); Serial.print ("; Throtle_Value = "); Serial.println (data. Throtle_Value); Verzögerung (debuggen * 10); } lastReceiveTime = millis(); // In diesem Moment haben wir die Daten erhalten } // Überprüfen Sie, ob wir weiterhin Daten empfangen, oder ob wir eine Verbindung zwischen den beiden Modulen haben currentTime = millis(); if (currentTime - lastReceiveTime > 1000) // Wenn die aktuelle Zeit mehr als 1 Sekunde vergangen ist, seit wir die letzten Daten empfangen haben, { //das bedeutet, dass wir die Verbindung verloren haben resetData(); // Wenn die Verbindung unterbrochen wird, setzen Sie die Daten zurück. Es verhindert unerwünschtes Verhalten, zum Beispiel wenn eine Drohne Gas gibt und wir die Verbindung verlieren, kann sie weiterfliegen, es sei denn, wir setzen die Werte zurück } }
Schritt 6: Wie geht es weiter?
Dieses Projekt ist der Beginn eines größeren Projekts, bei dem ein Netzwerk dieser kleinen Kerle zusammenarbeitet, um ein gemeinsames Ziel zu erreichen.
Diese Roboter müssten jedoch ihren Status an eine Kommunikationsstation melden, dann würde diese Station dann alle Berichte aller Bots kombinieren, um dann eine Entscheidung über die nächste erforderliche Aktion zu treffen.
Aus diesem Grund wäre die nächste Phase des Projekts eine Steuerung als Kommunikationsstation. Dies wird bei der Weiterentwicklung des Projekts helfen.
Der Controller selbst ist ein Roboter, jedoch passiver als der Blockader. Daher verlässt der Controller seinen eigenen anweisbaren Artikel, also schalten Sie ein für ein zukünftiges Projekt; D