Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

M1 Rover

Komponenten und Verbrauchsmaterialien

SparkFun Dual H-Bridge Motortreiber L298
× 1
DC-Motor (generisch)
× 4
Arduino UNO
× 1
LED (generisch)
× 8
Widerstand 221 Ohm
× 8
Servos (Tower Pro MG996R)
× 1
Ultraschallsensor - HC-SR04 (Generic)
× 1

Apps und Onlinedienste

Arduino-IDE
Microsoft Visual Studio 2015
Microsoft Windows 10 IoT Core

Über dieses Projekt

Nachdem ich eine Reihe von Indoor-Robotern gebaut hatte, beschloss ich, einen Outdoor-Roboter zu bauen, der durch unwegsames Gelände reisen kann. Ich nenne es „M1-Roboter“.

Der M1-Roboter-Motor kann problemlos vier Gleichstrommotoren mit Arduino antreiben, sodass er perfekt für jedes Robotikprojekt geeignet ist kratzen.

Es ist nicht nur ein RC-Auto, es kann so programmiert werden, dass es selbstfahrend folgt, einer Reihe von Anweisungen folgt oder sogar von einem Remote-Computer aus gesteuert wird, und es kann über Gamecontroller und benutzerdefinierte Joysticks wie ein ferngesteuertes Auto verwendet werden.

Schritt 1:Design

Das Entwerfen Ihres eigenen Produkts oder Prototyps macht viel Spaß, aber es wird komplizierter, wenn Sie sich entschieden haben, es in einer Live-Größenskala zu erstellen. Daher habe ich Google Sketch-up 2017 als leistungsstarkes und einfaches Designtool gewählt, mit dem Sie die Blaupausen Ihres Modells auf eine Laserschneidmaschine oder sogar einen 3D-Drucker exportieren können.

Ich habe die ersten drei Wochen damit verbracht, den Rumpf des Roboters zu entwerfen und zu konstruieren.

Was die Materialien angeht, wurde mir ein 3 mm dickes Holzbrett zur Verfügung gestellt.

Die nicht ganz so schöne letzte Verkabelung des Roboters, die aus Zeitgründen darin bestand, den gesamten Roadkill in den Rumpf zu stopfen.

Ich dachte, ein passender Name für meinen Roboter wäre M1Rover. Da ich vorhabe, eine Version davon in einer Reihenfolge mit Namen wie M2, M3 usw. zu entwickeln. Es wurde in einem Bausatz entworfen, Sie müssen es nur mit einigen Schrauben zusammenbauen.

Schritt 2:Komponenten und Funktionen

⦁ Bis zu drei Stunden Laufzeit!

⦁ Entwickelt für Arduino Uno, Mega und Nano.

⦁ 5V-9V DC Betriebsspannung

⦁ Ein 3 mm dickes Holzchassis

⦁ Laufräder mit 68 mm Durchmesser L298N Dual H-Bridge Motor/Stepper

⦁ 9-V-Batterien zum Antreiben der Gleichstrommotoren

⦁ 9-V-Batterien zum Einschalten des Arduino

⦁ LED-Leuchten 7 für hinten und vorne

⦁ HC-06 Bluetooth-Modul

⦁ Arduino-Sensorschild v5.0

⦁ Ultraschallwandler HC SR04

Schritt 3:Die Motorsteuerung

H-Brücken werden normalerweise zur Steuerung von Motordrehzahl und -richtung verwendet, können aber auch für andere Projekte verwendet werden, wie z. B. zum Steuern der Helligkeit bestimmter Beleuchtungsprojekte wie Hochleistungs-LED-Arrays.

⦁ Stellen Sie sicher, dass alle Ihre Grundstücke zusammengebunden sind; Arduino, Stromquelle und der Motorcontroller.

⦁ Die PWM-Pins sind unnötig, wenn Sie keine PWM-Funktionen steuern möchten.

Schritt 4:Gehäuse zusammenbauen

Das Chassis wurde mit Laserschneider in wenigen Teilen geschnitten, und wie bereits erwähnt, wurde das Modell in einem einfach zu montierenden Bausatz erstellt, so dass Sie nur die folgenden Anweisungen befolgen müssen.

Auch das Design war wichtig und bei RC-Cars sollte es Front- und Rücklichter enthalten. An der Vorderseite des M1-Robot habe ich 4 weiße LEDs angebracht, von denen jede an einen 220 Ohm Widerstand angeschlossen ist, und auf der Rückseite habe ich 2 rote LEDs mit jeweils 220 Ohm Widerstand angebracht. Diese LEDs können von derselben Anwendung gesteuert werden

Schritt 5:Schaltungen

Die Schaltung war etwas knifflig, denn wenn Sie sich entschieden haben, viele elektronische Teile gleichzeitig zu steuern, sollten Sie auf die Reihenfolge der einzelnen Teile achten.

⦁ Arduino Sensor Shield 5.0

⦁ Arduino Uno R3 L298N Dual H-Brücken-Motor/Schrittmotor

⦁ 9-V-Batterie zum Antreiben der Gleichstrommotoren

⦁ LED-Leuchten 7 (2 hinten) und (4 vorne)

⦁ HC-06 Bluetooth-Modul

⦁ Ultraschallwandler HC SR04

⦁ Servomotor 9g

⦁ Aktiver Summer

⦁ 4 Gleichstrommotoren mit Rädern

Schritt 6:Software

Ich habe beim Schreiben des Codes von M1-Robot eine Menge Dinge bedacht, und mit GUI-Software können Sie mehr Informationen über den Roboterstatus erhalten.

Der Basic Code für das Starterkit, kann per Handy oder Laptop über Bluetooth gesteuert werden:

int frontled =3; // LED Int Rearled =4; Int outPin1 =5; // Motor1 Int outPin2 =6; // Motor1 Int outPin4 =11; // motor2 int outPin3 =12; // motor2 char bt =0; // BT int BuzzerPin =2; const int pingPin =9; // Trigger-Pin des Ultraschallsensorsconst int echoPin =8; // Echo-Pin des Ultraschallsensors/*---------------------------------------------------- --------------------------------------*/void setup () { Serial.begin (9600); pinMode (outPin1, OUTPUT); pinMode (outPin2, OUTPUT); pinMode (outPin3, OUTPUT); pinMode (outPin4, OUTPUT); PinMode (frontled, AUSGANG); pinMode (buzzerPin, OUTPUT);} void loop() { if (Serial.available()> 0) {bt =Serial.read(); digitalWrite (vorgeschaltet, 1); lange Dauer, Zoll, cm; pinMode (pingPin, AUSGANG); digitalWrite (pingPin, LOW); VerzögerungMikrosekunden(2); digitalWrite (pingPin, HIGH); VerzögerungMikrosekunden(10); digitalWrite (pingPin, LOW); pinMode (echoPin, EINGANG); Dauer =pulseIn(echoPin, HIGH); Zoll =MikrosekundenToInches(Dauer); cm =MikrosekundenToCentimeters(Dauer); if (cm> 10) {// Entfernung zum Stopp /*__________________________________________________________*/ if(bt =='F') // vorwärts bewegen { DigitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HOCH); digitalWrite (outPin4, LOW); aufrechtzuerhalten. Sonst if (bt =='B') // rückwärts bewegen { DigitalWrite (outPin1, LOW); digitalWrite (outPin2, HOCH); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HOCH); } else if (bt =='S') //stop!! { DigitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); aufrechtzuerhalten. Sonst if (bt =='R') // rechts { DigitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, LOW); aufrechtzuerhalten. Sonst if (bt =='L') // links { DigitalWrite (outPin1, LOW); digitalWrite (outPin2, LOW); digitalWrite (outPin3, HOCH); digitalWrite (outPin4, LOW); aufrechtzuerhalten. Sonst if (bt =='I') // Vorwärts rechts { DigitalWrite (outPin1, HIGH); digitalWrite (outPin2, LOW); digitalWrite (outPin3, LOW); digitalWrite (outPin4, HOCH); aufrechtzuerhalten. Sonst if (bt =='G') // vorwärts links { DigitalWrite (outPin1, LOW); digitalWrite (outPin2, HOCH); digitalWrite (outPin3, HOCH); digitalWrite (outPin4, LOW); } } Else{ DigitalWrite (buzzerPin, HIGH); Verzögerung (500); digitalWrite (SummerPin, LOW); Verzögerung (500); } }}lange MikrosekundenToInches(lange Mikrosekunden) { Rückgabe Mikrosekunden / 74 / 2;}lange MikrosekundenToCentimeters(lange Mikrosekunden) { Rückgabe Mikrosekunden / 29 / 2;} 

Der Arduino-Code ist mit allen Arten von Controllern kompatibel, da alle elektronischen Teile so programmiert sind, dass sie über serielle Port-Bestellungen funktionieren, sodass Sie Bluetooth-Modul-Sender / -Empfänger, PCs und Mobiltelefone verwenden können.

⦁ C#-Windows-Anwendung (Screenshot angehängt)

Schritt 7:Pakete

STARTER

Dieses M1-Robot-Paket umfasst grundlegende Komponenten, während die obere Platte die einfache Montage von Sensor-, Manipulations- oder Computerhardware ermöglicht. Schließen Sie einfach die Sensoren an die Bord- und Rover-Netzteile an, um loszulegen.

ENTDECKER

Das Explorer-Paket ermöglicht grundlegende autonome Funktionen im Innen- und Außenbereich, und anstelle einer IP-Kamera habe ich eine Handykamera verwendet, die über eine IP-Adresse mit dem Internet verbunden ist.

MAPPING

Das Explorer-Paket ermöglicht natürlich grundlegendes GPS-Tracking, während sich das Fahrzeug im Freien befindet. Es ist sehr cool, wenn Sie die Koordinatenpfade in Echtzeit beobachten.

MANIPULATION

Interaktion mit der Welt mit einem Roboterarm und einem 50-mm-Zweifingergreifer.

Wichtiger Tipp:

Nicht alle Servos haben eine volle 180-Grad-Drehung. Viele nicht. Sie können einen Test schreiben, um festzustellen, wo die mechanischen Grenzen liegen. Verwenden Sie servo.writeMicroseconds anstelle von servo.write Das gefällt mir besser, da Sie 1000-2000 als Basisbereich verwenden können. Und viele Servos unterstützen außerhalb dieses Bereichs, von 600 bis 2400.

Probieren Sie also verschiedene Werte aus und sehen Sie, wo Sie das Summen bekommen, das Ihnen sagt, dass Sie das Limit erreicht haben. Dann bleib nur beim Schreiben innerhalb dieser Grenzen. Sie können diese Grenzen einstellen, wenn Sie servo.attach (pin, min, max) verwenden

Bearbeiten:Ich sollte sagen, dass Sie, wenn Sie möchten, die minimalen und maximalen Mikrosekunden im Anhang einstellen können, dann verwenden Sie einfach servo.write. Es verwendet map(), um den 0-180-Grad-Wert, den Sie übergeben, in einen Mikrosekundenwert zu ändern.

Wird es bald sein, wenn Sie es am Endanschlag halten - es zieht viel Strom und heizt sich schnell auf - es ist allzu einfach, ein Servo zu "garen", indem Sie es auf diese Weise für längere Zeit laden.

Finden Sie den wahren Bewegungsbereich und stellen Sie sicher, dass der Code nicht versucht, ihn über die Endanschläge hinauszuschieben. Die Arduino-Funktion Constrain() ist dafür nützlich:

servo.write (constrain (Winkel, 10, 160)); // Beschränke den Winkel im Bereich 10..160 

Kundenspezifische Teile und Gehäuse

m1rover_dxf_hackaday_4o7WTGHUGE.dxf

Schaltpläne


Herstellungsprozess

  1. Zurückhaltungsmotor
  2. Raspoulette-Prototyp
  3. Rover
  4. Einfacher Pi-Roboter
  5. UFO-Angriff!
  6. 3D RGB Arduclock
  7. Bipolare Schrittmotorbibliothek
  8. Guitar Speed ​​Pick and Stomp Pedal!
  9. Was ist ein Linearmotor?
  10. Was ist ein Servomotor?