Liste der Anhänge anzeigen (Anzahl: 1)
Neuartiger (?) Roboter mit MicroPython als Betriebssystem
Hallo Forum, nach langer, arbeitslastbedingter Forumsabwesenheit versuche ich ab heute rund eine Stunde/Tag in die Entwicklung eines Roboters zu investieren und hier darüber zu berichten. Dabei verfolge ich folgende
Ziele
1. Umsetzung der Idee eines Roboters der Spezies "landgängiger Kopffüßer" (Robot Geocephalopoda?) :-)
2. Einfaches Konzept, schnelle Ergebnisse.
3. Python lernen (Bisher habe ich nur gelegentlich fremde Python-Codeschnipsel wiederverwendet. Ich bin also Anfänger).
4. Interesse an MicroPython wecken. MicroPython ist frei und quelloffen (FOSS). Siehe hier: https://github.com/micropython/micro...python-project
Es enthält eine stattliche Teilmenge der interpretierten Programmiersprache Python - speziell für Mikrocontroller entwickelt. (Ich finde es sehr gut, dass man interaktiv mit dem Roboter sprechen/testen/debuggen kann, keine Toolchain benötigt bzw. nichts kompilieren muss).
Umsetzung
So, genug Vorrede. Es geht los. Der Komponentenhaufen sieht vorläufig wie folgt aus:
Anhang 31320
Bildinhalt
- STM32F4-Microcontrollerboard (hier ein etwas teureres PyBoard ca. 25 EUR, günstiger wäre STM32F4-Discovery ab ca. 15 EUR. Oder in Kürze* ein ESP8266-Board ab ca. 10 EUR oder noch weniger)
- Zwei Miniservos (je ca. 5 EUR)
- USB-Powerbank 1000mAh (ca. 3 EUR)
- Breadboard in Miniausführung (ca. 2 EUR)
- Sharp Distanz-Sensor GP2D120 bzw. GP2Y0A21 (ca. 9 EUR)
- Piezo-Signalgeber Rmp-14p/Hat (ca. 1,50 EUR)
- Stiftleisten
- Doppelseitiges Klebeband/Montageband
- Isolierband/PVC
Als nächstes sollte wohl überprüft werden, ob das Controllerboard funktioniert.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
* Hinweis: Seit etwa drei Wochen läuft eine bereits mehrfach überzeichnete Geldsammelaktion https://www.kickstarter.com/projects...fully-easy-iot. Ziel ist es, MicroPython auf den beliebten/billigen WLAN-Chip ESP8266 zu bringen. MicroPython für ESP8266 wird in etwa zwei Wochen in Erstfassung vorliegen. Gute ESP8266-Boards sind ab etwa 10 EUR erhältlich!
Liste der Anhänge anzeigen (Anzahl: 1)
Es folgt eine kurze
Funktionsprüfung des Controllerboards:
1. Das Board verbinde ich mit dem PC mittels USB-Kabel (Micro-B zu Typ-A Stecker). Die USB-Verbindung ist hier sowohl für die Stromversorgung des Boards als auch für die Kommunikation zuständig.
2. Die gelbe LED des Boards blitzt kurz auf (gut!).
3. Auf meinem Linux-PC werfe ich meine lieblings Terminal-Emulation an: picocom.Hinweis: Wer mit Windows arbeitet, kann z.B. PuTTY (putty.exe) einsetzen, muss zuvor aber Treiber installieren. Bei Mac OS X funktioniert es wie bei Linux "out of the box".
4. Nachdem die Verbindung zum Board steht, sieht mein Terminal Fenster wie folgt aus:
Anhang 31322
Auf dem Bild ist zu sehen, dass man, nachdem die Terminal-Emulation gestartet ist, direkt im Python-Prompt landet. Das Board hat den ersten Eignungstest aus meiner Sicht bestanden.
Als nächstes werden die Stiftleisten an das Board gelötet und kleine Peripherietests mit dem Piezo-Signalgeber und mit einem Servo unternommen. Zuvor "beantrage" ich noch ein Youtube-Konto :cool:
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 2)
Um keine Langeweile aufkommen zu lassen während ich die Stiftleisten anlöte, verlinke ich als Zwischeninformation für eventuell Interessierte auf die Kurzreferenz des hier verwendeten Controllerboards (pyboard PYBv1.0):
Anhang 31323
http://docs.micropython.org/en/lates.../quickref.html
Übrigens werden häufig Buchsenleisten an Stelle von Stiftleisten angebracht:
Anhang 31324
https://micropython.org/doc/tut-servo
Mir passt das aber nicht so recht ins Konzept.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 3)
So, die Stiftleisten sind angelötet.
Anhang 31326
Diese Anordnung der Stiftleisten ist deshalb ausgewählt, damit
1. das Controllerboard auf das kleine Steckbrett passt und
2. zugleich die Servo-Pins nach oben frei zugänglich sind.
Anhang 31328
Bei dem kleinen Steckbrett muss Bestückung bzw. Verdrahtung unterhalb des Controllerboards wegen Überbreite desselben erfolgen :rolleyes:
3. Außerdem lässt sich bei dieser Stiftleistenanordnung gut auf der Powerbank herumreiten :cool:
Anhang 31329
Als nächstes wird ein Servo am Board getestet.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 2)
Heute stand das akustische Organ des zukünftigen Roboters auf dem Stundenplan.
An den Piezo Signalgeber habe ich zunächst etwas stärkere Kupferdrähte angelötet, damit das Teil nicht herumhängt. Dann wurde angeschlossen ...
Anhang 31342
Anhang 31343
... und anschließend so lange geübt, bis das Pfeifen klang, wie es sollte:
https://youtu.be/TBrJSGHhRPg
[Nicht nur Bild, sondern auch Ton sind stark verbesserungsfähig: Zu leise! Mikrofon auf kameraabgewandter Seite des Telefons #@§! Naja, darauf gepfiffen!]
Der zugehörige Python-Code sieht so aus:
Code:
def pfeifen():
import pyb
piezo = pyb.Pin(pyb.Pin.board.Y12, pyb.Pin.OUT_PP)
led = pyb.LED(4)
for t in range(5):
print('Pfiff',t)
for i in range(600, 10, -1):
piezo.value(1)
pyb.udelay(i)
piezo.value(0)
led.intensity(i)
pyb.delay(200)
for i in range(600, 10, -1):
piezo.value(1)
pyb.udelay(i)
piezo.value(0)
led.intensity(i)
for i in range(10, 1200, 1):
piezo.value(1)
pyb.udelay(i)
piezo.value(0)
led.intensity(i)
led.off()
pyb.delay(1000)
Die blaue Controllerboard-LED wurde "mitgenommen", damit man im Video auch sieht, wann gepfiffen wird :rolleyes:
Als Nächstes ist die Optik an der Reihe.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 1)
Leider habe ich heute wenig Zeit. Deshalb dokumentiere ich nur kurz den neuesten Stand:
Anhang 31346
Auf dem Bild ist der Versuchsaufbau für den Distanz-Sensor zu erkennen. Der Sensor ist mit doppelseitigem Klebeband auf dem Servo angebracht. Zugleich wird hiermit ein erster Ansatz des Roboterkopfs präsentiert.
Mit folgendem Code wird der Distanz-Sensor geprüft:
Code:
def sehen():
import pyb
irsinn = pyb.ADC(pyb.Pin.board.X1)
while True:
print(irsinn.read())
pyb.delay(20)
Testergebnisse bleibe ich bis morgen schuldig.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 3)
Es folgt ein kurzer Zwischenbericht aus der Mechanik.
Heute war ich beim Baumarkt und habe ein hartes/steifes Kunststoffprofil 20x20x1,5 mm gekauft. Danach war ich beim Schlosser und habe den vor einiger Zeit bestellten Federstahldraht abgeholt:
Anhang 31373
Beim Federstahldraht handelt es sich um Meterstücke in den Stärken 1,0 mm, 1,5 mm und 2,0 mm. Die verschiedenen Stärken habe ich aus Unsicherheit über Beanspruchung bzw. Durchbiegung bestellt. Jetzt, da ich sie in der Hand halte, werde ich mich wohl auf Verwendung der Stärke 1,0 mm beschränken.
Mit zwei Zangen habe ich ein ca. 24 cm langes Stück in Form gebracht:
Anhang 31374
Es ist hoffentlich nicht schwer zu erraten, dass es sich um Füße handelt:
Anhang 31375
Beim nächsten Mal kümmere ich mich wieder etwas mehr um Softwareanforderungen, denn eigentlich war die heutige Fußarbeit :) etwas verfrüht.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 2)
So, die Füße sind mittels PVC-Tape am Servo angebracht:
Anhang 31377
Man sieht im Hintergrund, dass der Charakterkopf des Roboters an Kontur gewinnt :-). Im Vordergrund ist zu sehen, dass ich ein Stück aus dem Kunststoff-Winkelprofil zurechtgeschnitten und zusammen mit einem Servohorn mit Kontaktkleber versehen habe.
Nach Verklebung und Montage sieht der neue Versuchsaufbau wie folgt aus:
Anhang 31378
Als nächstes, planmäßig heute gegen Abend, folgt ein kurzer Bericht mitsamt Python-Code und eventuellem Video über das Zusammenwirken zwischen Distanzerkennung und akustischer Signalisierung.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 4)
Und wieder zunächst ein kurzer Ausflug in die Mechanik. Mir war gerade danach, den Kopf des Geocephalopoden :cool: fertigzustellen.
Dazu habe ich in den bereits verwendeten Kunststoffwinkel mittels Taschenmesser ein Loch gebohrt:
Anhang 31387
Das Loch ist notwendig, damit das angeklebte Servohorn ...
Anhang 31388
... noch in sein Servo eingeschraubt werden kann:
Anhang 31389Anhang 31390
Den Kopf betrachte ich als planmäßig fertiggestellt. Er ist auf seinem Prüfstand befestigt, damit die Tests zur Beweglichkeit und Distanzmessung, die heute Abend im Zeitfenster 18:00 - 18:30 Uhr stattzufinden haben, unverzüglich beginnen können. Was ein Stress :).
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
Liste der Anhänge anzeigen (Anzahl: 2)
MicroPython-Roboter (Robot Geocephalopoda)
Hier liefere ich die Hochzeitsbilder.
Kurz zuvor:
Anhang 31396
Und kurz danach:
Anhang 31397
Sprachorgan und Gestell :confused: (Prototyp im Hintergrund) waren noch nicht montiert, folgten jedoch alsbald.
Wir üben jedenfalls gerade das Vorwärtskommen miteinander und berichten in Code und Video heute Abend.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar
MicroPython Robot Geocephalopoda
Erste Schritte in der realen Welt
Wie in vorangegangner Meldung angekündigt, haben wir heute Abend die Vorwärtsbewegung geübt. Anfangs lief alles gut. Dann agierte der Geocephalopode plötzlich leider kopflos:
https://www.youtube.com/watch?v=fyHgIPhzjI4
https://youtu.be/fyHgIPhzjI4
Wir kleben ihn morgen früh wieder zusammen und üben weiter.
Anregungen oder Fragen?
Demnächst mehr.
Gruß
/barbar