Asuro Robot

Einleitung

Asuro Robot Der Asuro Roboter ist ein kleines in C programmierbarer Roboter. Der Roboter kommt als Bausatz und hatte die folgende Eigenschaften: AVR-Mikrocontroller, zwei Antriebsmotoren, zwei Signal-LEDs, 2 Tacho-Sensoren, eine Linie folg Sensor, sechs Kollision Schalter, eine Status-LED und eine serielle Kommunikation (Infrarot) mit einem PC.

Ein umfassendes Handbuch wird mitgeliefert, um den Asuro Roboter zu assemblieren. Werfen Sie bitte einen Blick auf "Meine Änderungen an der Asuro Roboter" vor der Montage des Asuro Roboter.

Entwicklungsumgebung

Asuro development environment Der Asuro Roboter kommt mit Software zum Schreiben von Programmen für den Asuro Roboter und für das Flashen den AVR-Mikrocontroller auf der Asuro. Die Software ist aber ein wenig alt (2003).

Ich installierte für mich eine Entwicklungsumgebung auf einem Linux-System. Ich benutze Genie um das Programm zu schreiben. Dieses Programm wird mit dem avr-gcc Compiler kompiliert. Für das Flashen verwende ich die Windows-Version des Flash-Programms über Wine. Dies weil die mitgelieferten Linux-Version auf einem modernen Linux-System aufgrund seines Alters nicht mehr nutzbar ist.
Für die Kommunikation mit dem Asuro Roboter über den USB-Infrarot Transceiver verwende ich das Programm CuteCom.

Es gibt auch ein alternatives Flash-Programm für Linux: AsuroFlash

Klicken Sie hier für eine Anleitung um eine Entwicklungsumgebung für den Asuro Roboter auf einem Linux-System zu installieren.

Meine Änderungen an den Asuro Roboter (1)

Modification of the odometer sensors. Nach der Montage des Asuro Roboter habe ich die Sensoren getestet. Ich schrieb ein kleines Programm, das weiterhin die Daten von den Tacho-Sensoren und der Linie folgen Sensor über die Infrarot-Transceiver nach den PC sendet.

Tacho-Sensoren:

Problem: Das Zahnrad mit dem Tacho Reflexion Aufkleber hat eine Menge von schlaff (ca. 3 mm).

Zahnrad auf minimale Entfernung (0 mm):
Motor Links, weiße Oberfläche: 862, schwarze Oberfläche: 476
Motor rechts, weiße Oberfläche: 915, schwarze Oberfläche: 675

Zahnrad auf maximale Entfernung (3 mm):
Motor Links, weiße Oberfläche: 885, schwarze Oberfläche: 642
Motor rechts weißen Oberfläche: 937, schwarze Oberfläche: 804

Modifikationen:

Ich bewegte die vier Achsen des Asuro Roboter 3 mm nach außen, um Platz für ein Schließsystem auf die Achsen mit der Zahnrad mit dem Tacho Reflexion Aufkleber zu machen. Auf die Achsen mit den Rädern installierte ich kleine Abstandscheibe um das Getriebe und das Rad korrekt auszurichten. Das Schließsystem besteht aus einer Lüsterklemme.

Das Ergebnis von der Modifikation ist eine stabile Messung der Tacho-Sensoren, die vergleichbar ist mit der Messungen mit 0 mm Abstand.

Meine Änderungen an den Asuro Roboter (2)

Modification of the line follow sensor.

Linie folgen Sensor:

Problem: Das umgebende Licht hat Einfluss auf die Linie folgen Sensor.

Der Linie folgen Sensor ist eine Lichtquelle, die es Licht nach unten scheint und zwei Licht abhängigen Sensoren, die das reflektierte Licht von dem Oberfläche auffangen. Ich habe zwei Messungen gemacht, eine normale und eine wo bei der Asuro Roboter mit zwei Händen bedeckt war.

Normal:
Sensor links, weiße Oberfläche: 970
Sensor links, schwarze Oberfläche: 262
Sensor rechts, weiße Oberfläche: 912
Sensor rechts, schwarze Oberfläche: 298

Abgedeckt:
Sensor links, weiße Oberfläche: 600
Sensor links, schwarze Oberfläche: 160
Sensor rechts, weiße Oberfläche: 514
Sensor rechts, schwarze Oberfläche: 146

Das folgen einer Linie ist basiert auf den Unterschied zwischen die zwei Lichtsensoren, die absoluten Werte sind dafür nicht so wichtig.
Aber ich möchte auch eine Kreuzung erkennen. Die Kreuzung haben eine graue Farbe. Ich möchte eine bestimmte grau auf einen absoluten Wert der abhängigen Lichtsensoren verknüpfen.

Modifikationen:

Ich baute ein kleines Kappe um die Linie folgen Sensor. Dieser Kappe ist eine alte Kappe von einen 9-poligen SUB-D Stecker, von dem ich die obere Hälfte entfernt habe. De Entfernung zwischen dem Kappe und der Oberfläche ist minimal (ca. 0,5 mm) und das ist, warum das Umgebungslicht jetzt keine Einfluss hasst.

Mit dem Kappe:
Sensor links, weiße Oberfläche: 520
Sensor links, graue Oberfläche: 375
Sensor links, schwarze Oberfläche: 91
Sensor rechts, weiße Oberfläche: 440
Sensor rechts, graue Oberfläche: 310
Sensor rechts schwarze Oberfläche: 70

Das Ergebnis von der Modifikation ist eine zuverlässige Messung für weiß, grau und schwarz.

Mein erstes Programm für den Asuro Roboter

Dies ist ein Video von meinem ersten Programm für den Asuro Roboter. Das Programm verwendet die Linie folgen Sensor um auf die schwarze Linie zu bleiben.

Meine Änderungen an den Asuro Roboter (3)

Modification of the motor and the odometer sensors. Nach dem Experimentieren mit der Asuro Roboter für eine Weile gab es ein Problem. Seltsame Dinge geschehen während der Ausführung eines Programms, und auch hatte das Programm aus einem unerklärlichen Grund angehalten.
Ich schrieb eine Programm, die die Motoren und die LEDs mit den Schaltern steuert. Ich begann den Asuro Roboter zu testen und das Problem tritt auf beim Drehen des linken Motors, aber nicht immer.
Nachdem ich den Motor von der Platine entfernt hatte war das Problem verschwunden. Mein Abschluss ist, dass die Metallabdeckung des Motors einen Kurzschluss auf der Platine verursacht. Ich legte ein Stück Isolierband auf der Platine und das Problem ist gelöst. Ein zusätzlicher Vorteil ist, dass das Isolierband viel weniger rutschig ist und der Motor viel besser an seinem Platz bleibt. Ich habe dies auch für den rechter Motor getan.

Ich habe auch eine Abdeckung für die Odometrie Sensoren gemacht. Bei starken Sonnenlicht funktionieren die Odometrie Sensoren nicht korrekt. Dies hat eine Wirkung auf den Asuro Roboter beim fahren in einer geraden Linie oder beim drehen. Die Abdeckung besteht aus Karton.

Meine Änderungen an den Asuro Roboter (4)

Modification of the asuro.c software. Nicht jeder Asuro Roboter ist genau das gleiche. Dies wirkt sich auf die Messwerte der Sensoren. Es gibt Möglichkeiten in der Software (asuro.c - v2.61), dies zu korrigieren. Ich habe die folgenden Korrekturen gemacht.

Die Funktion: ISR (ADC_vect)

Ich habe eine temporäre Änderung, in asuro.c, in der Funktion ISR (ADC_vect) gemacht, die den Wert des tmp [toggle] von einer der Odometrie Sensoren an den PC sendet. Ich habe ein Diagramm dieser Werte gemacht und dies hilft, die besten Schalter-Werte zu bestimmen. Meine Werte sind < 190 und > 200.

Die Funktion: Go()

Ich benutze die 6 + 6 reflektierende Aufkleber auf mein Asuro Roboter. Ich schrieb ein kleines Programm, das der Asuro Roboter 200 mm nach vorne fahrt. In Wirklichkeit war dies nicht 200 mm.
Eine kleine Korrektur in der Funktion Go() löste dieses Problem:
enc_count=abs((100L * distance) / 200L);

Die Funktion: Turn()

Danach schrieb ich ein kleines Programm, das den Asuro Roboter 180 Grad dreht. Eine kleine Korrektur in der Funktion Turn() bietet eine richtige Wendung:
enc_count=abs(degree)*0166L;

Die Funktion: PollSwitch()

Ich schrieb auch ein kleines Programm, das den Wert der Schalter auf dem Asuro Roboter an dem PC sendet.
Ich habe den Standard Wert von 61 nach 63 geändert.

Die Funktion: LineData()

Danach schrieb ich ein kleines Programm, das den Wert des Linie folgen Sensor auf dem Asuro Roboter an dem PC sendet. Es war ein Unterschied zwischen links und rechts von 20%.
Eine kleine Korrektur in der Funktion LineData() hatte dieses Problem gelöst:
data[1] = (((ADCL + (ADCH << 8)) * 120L) / 100L);

Dies ist mein zweites Programm für mein Asuro-Roboter.

Dieses Mal größer und schwieriger Weg und ein Hindernis! Das Programm verwendet die Linie folgen Sensor um auf die schwarze Linie zu bleiben und Schalter zur Erkennung einer Kollisions.



Das Programm für den Asuro Robo und das Kurs für den Asuro Robot.

Meine Änderungen an den Asuro Roboter (5)

Alternative library for the Asuro robot. Wenn Sie ein Programm für den Asuro Roboter schreiben, verwende Sie der Asuro Bibliothek. In meinem Fall verwende ich die Asuro Bibliothek v2.61. Diese Bibliothek hat Funktionen, um den Tacho-Sensoren und Linie folgen Sensoren zu lesen, Sie können Umdrehungen machen oder eine bestimmte Entfernung fahren und noch viel mehr.

Ich entdeckte, dass das Lesen der Tacho-Sensoren durch andere Funktionen gestört wurde. Wenn Sie Information von anderen Sensoren bekommen, wird das Lesen des Tacho-Sensoren gestoppt. Das bedeutet, dass das Tacho-Sensor System nicht sehr zuverlässig ist, wenn die Asuro Roboter einer Linie folgt.

Ich entschied mich, eine persönliche Asuro-Bibliothek basierend auf der Asuro-Bibliothek v2.61 zu erstellen. Die Hauptunterschiede sind:
Tacho-Sensoren und Linie folgen Sensoren werden jetzt kontinuierlich ausgelesen und die Werte der Sensoren stehen kontinuierlich als globalen Variablen zur Verfügung. Die Tacho-Zählern werden ebenfalls fortlaufend aktualisiert und stehen auch als globale Variablen zur Verfügung. Alle 1 ms wird einer der vier Sensoren ausgelesen, also alle 4 ms sind alle werte aktualisiert.
Die Motoren werden jetzt nur noch durch ein Variable pro Motor angesteuert. Der Bereich ist von -255 bis +255, das Minus bedeutet Rückwärts-geschwindigkeit, Positiv ist Vorwärts-geschwindigkeit und der Motor bremst, wenn der Wert Null ist.
Eine Interrupt-Routine zur Erkennung der Schalter und verbesserte Routinen zum Drehen und Fahren mit den Tacho-Sensoren.

Meine Änderungen an den Asuro Roboter (6)

Switching voltage regulator for the Asuro robot. Die Elektronik des Asuro Roboters wird durch eine Batterie angetrieben. Sie können vier normal oder vier wiederaufladbare Batterien verwenden. Das Problem besteht darin, dass die Batterie-Spannung nicht immer dieselben ist, neuen oder völlig beladenen Batterien haben eine höhere Spannung als Batterien, die eine Zeit lang verwendet worden sind.
Die Tacho-Sensoren sind weniger zuverlässig, wenn die Spannung niedrig ist. Wenn Sie die Linie Folge Sensor verwenden, um Farben zu entdecken, sind sie auch weniger zuverlässig, wenn die Spannung nicht stabil ist. Und die Fahrgeschwindigkeit ist auch von der Batterie-Spannung abhängig.

Eine Lösung ist, einen Spannungsregler zu verwenden. Aber ein normaler (lineare) Spannungsregler verwendet ungefähr 2 Volt, um seinen Job zu tun. Das bedeutet, dass Sie mehr Batterien brauchen, um die zusätzlichen 2 Volt zu kompensieren, und die Leistungsfähigkeit dieser Spannungsregler sind nicht groß.

Eine bessere Lösung ist, einen schaltenden Spannungsregler zu verwenden. Ich verwendete jetzt einen schaltende Spannungsregler, der auf einem XL6009 von XLSEMI beruht. Aber es gibt ein kleines Problem, wenn die Eingangsspannung zwischen 2,75 Volt und 3,75 Volt ist, ist die Ausgangsspannung viel größer als die normale Ausgangsspannung. Die Lösung ist, einen kleinen Stromkreis zu machen, der den schaltende Spannungsregler nur einschaltet wenn die Eingangsspannung höher ist als 4,15 Volt.

Mit diesem System ist die Spannung für die Asuro Elektronik jetzt immer 5,95 Volt, wenn die Eingangsspannung zwischen 4,15 Volt und 6.30 Volt ist.
Der Extra Schalter ist notwendig, weil der schaltenden Spannungsregler immer arbeitet, und die Batterie langsam leer macht.

Meine Änderungen an den Asuro Roboter (7)

Battery-pack upgrade for the Asuro robot. Mehr Leistung… Der Asuro Roboter wird durch vier normal oder vier wiederaufladbare AAA Batterien angetrieben. Meine wiederaufladbaren AAA Batterien haben eine Kapazität von 900 mAh. Ich wollte ein kleines bisschen mehr als das und entschied mich dafür, das Batterie-System zu verbessern.

Zuerst installierte ich einen einfachen Stecker (PCB Header) auf dem Asuro Roboter. Dann nahm ich einen kleinen Stecker (3 Nadeln) von einem alten PC und verband das mit dem ursprünglichen Batterie-Satz. Der Stecker auf dem Asuro Roboter hat eine Extranadel, die das verhindert, das der Stecker vom Batterie-Satz auf die falsche Weise verbunden wird.

Ich machte auch einen zweiten Batterie-Satz mit vier wiederaufladbaren AA Batterien, die eine Kapazität von 1300 mAh haben. In der Zukunft werde ich einen anderen Batterie-Satz mit der Kapazität von 2500 mAh machen.

Der Vorteil besteht darin, dass ich jetzt einen Batterie-Satz auf dem Asuro Roboter verwenden und den anderen Batterie-Satz beladen kann. Und das Tauschen der Batterie-Sätze ist sehr einfach.

Der Asuro-Roboter und ein Labyrinth

Diesmal fahrt der Asuro-Roboter durch ein Labyrinth. Der Asuro-Roboter lernt das Labyrinth und kann den kürzesten Weg fahren . Wenn ein Hindernis vorhanden ist, fährt der Asuro-Roboter eine alternative Route.

Aktualisiert: 2019-05-12 13:22:03