In den letzten Tagen haben wir einige der am öftesten angefragten API Erweiterungen für vorhandene Bricks und Bricklets implementiert:
get_chip_temperature (Temperatur vom Mikrocontroller auslesen, verfügbar auf allen Bricks).
reset (Software Reset von Mikrocontroller und Stack, verfügbar auf allen Bricks).
monoflop (Dual Relay Bricklet)
USB Hotplug (Es ist jetzt möglich den USB Stecker in den Master eines Stacks zu stecken, während der Stack schon per Step-Down Power Supply mit Strom versorgt wird. Der Stack startet neu und registriert sich dann ganz normal am PC).
Minimale Periode vom Servo Brick ist jetzt 1us (war vorher 2000us).
Zeitbasis vom Stepper Brick ist jetzt konfigurierbar (Dies erlaubt z.B. so etwas wie “ein Schritt pro 2,5 Sekunden”).
get_all_data/all data Callback (Erlaubt alle wichtigen Nachrichten vom Stepper Brick auf einmal zu bekommen).
new_state Callback (Benachrichtigung bei Statusänderung vom Stepper Brick, es lässt sich damit z.B. herausbekommen wann der Schrittmotor seine volle Geschwindigkeit erreicht hat).
Und viele kleine Verbesserungen am Brick Viewer.
Alle Änderungen und Links zu den neuen Version können im Veröffentlichungs-Thread auf tinkerunity gefunden werden.
Nach viel hin und her bei der Implementierung (wir haben das Protokoll zwei mal geändert) ist sie jetzt mit Modbus RTU als Protokoll auf der RS485 Schnittstelle implementiert. Dies ist zwar nicht das effizienteste Protokoll für unsere Datenpakete, allerdings wird dieses Protokoll vor allem in der Hausautomatisierung und in der Industrie eingesetzt. Es gibt fertige Gateways die Modbus auf TCP/IP umwandeln können usw. Dadurch ist es zum einen möglich die RS485 Extension in vorhandene Modbus Netzwerke einzubinden, vor allem ist es aber auch möglich direkt mit einem RS485 Stapel aus Bricks und Bricklets via Modbus zu kommunizieren, ähnlich wie es schon über TCP/IP möglich ist (Dokumentation dafür folgt in kürze). Dafür haben wir die Möglichkeit geschaffen Baudrate, Parität und Stopbits zu konfigurieren.
Die Standardkonfiguration sieht eine Baudrate von 2Mbit vor, damit ist die RS485 Extension schneller als die USB 1.1 Verbindung und kann dadurch im System nicht zum Flaschenhals werden! Falls es bei einem sehr großen RS485 Bus zu Timeouts kommt und der CRC Error Zähler rapide steigt, sollte die Baudrate verringert werden.
Um die Installation von vielen kleinen RS485 Stapeln so einfach wie möglich zu machen haben wir auch noch ein USB Netzteil mit in den Shop aufgenommen:
Dies ist natürlich nicht geeignet um damit Motoren zu betreiben, ist aber für kleine RS485-Slave-Stapel gut geeignet!
Wir haben einen neuen Brick Viewer veröffentlicht, damit ist es jetzt möglich nicht nur Bricklets sondern auch Bricks zu flashen und dies automatisch bei uns vom Server, ohne das die passende Firmware händisch heruntergeladen werden muss.
Damit fällt jetzt SAM-BA als notwendiges “Drittanbieter-Tool” weg. Gefühlt hat das Atmel Tool viele Probleme gemacht und es gab auch keine Mac OS X Version. Desweiteren haben wir einige Sachen neu implementiert um Abhängigkeiten loszuwerden, so gibt es jetzt keine pylab, scipy und matplotlib Abhängigkeiten mehr für den brickv, was die Installation auf embedded Geräten und obskuren Linux Distributionen einfacher machen sollte.
Puh! Wir haben gestern Abend/Nacht noch einen Großteil der offenen IMU Brick Bestellungen verpackt und die Versandemail sollte auch schon raus sein.
Diese lange Verzögerung tut uns wirklich leid! Wir werden in Zukunft Produkt die wir das erste mal in großen Stückzahlen machen erst in den Shop stellen wenn wir sie Versandfertig hier liegen haben. Die Gyroskop/Beschleunigungssensor/Magnetometer ICs haben ein Quad Flat No Leads Package (QFN), d.h. die Pads sind unter dem Chip. Lötbrücken können also nach dem löten nicht mehr optisch erkannt werden. Damit gab es leider einige Probleme, die zu weiteren Verzögerungen geführt haben (die IMU Bricks mussten geröntgt werden).
Es sollten alle IMU Brick Bestellungen als versandt markiert sein in denen kein Dual Relay Bricklet drin ist. Diese sind uns leider gestern Abend unerwarteterweise ausgegangen. Das ist aber nicht weiter schlimm, wir kriegen heute Abend einen Schub neue!
Bei der automatischen Kalibrierung hatten wir Probleme das Magnetfeld der Servomotoren vernünftig rauszurechnen (dies ist definitiv möglich und wir werden das auch auf Dauer tun). Damit sich das ganze nicht noch mehr verzögert haben wir bei den ersten 250 IMUs die Magnetometer erstmal schnell von Hand kalibriert. Die Präzision hat da sicher drunter gelitten, dies ist aber auch nicht weiter schlimm. Bei den allermeisten Anwendungsfällen muss das Magnetometer sowieso neu kalibriert werden (IMU wird in der nähe von einem Motor o.ä. betrieben).
Und das versprochene Video:
Die Hardware basiert zu 100% auf den von Sebastian O.H. Madgwick veröffentlichten “Gimbal Komponenten”. Die Servos und Halter sind von Servo City und die Steuerung erfolgt natürlich über ein Servo Brick. Der Code für die Kalibrierung ist im IMU Brick git.