Just a moment ;-)
Projekte
[BASH] U3 Version von Firefox erstellen
20. Dez
So wie versprochen hier das BASH-Skript um unter Linux eine portable Version von Firefox zu erstellen. Das Ganze ist relativ einfach und benötigt nur das jeweilige 7-Zip Paket für die gewählte Distribution und wget für den Download. Wget sollte eigentlich bei jeder ernstzunehmenden Distribution beiliegen und bereits installiert sein.
In Zeile 17 muss dann nur der Ort für die Resourcen (Loader, Icon usw) angegeben werden.
Nach dem das Skript mit chmod ausführbar gemacht wurde, wird mit der Übergabe der gewünschten Release-Nummer automatisch alles herunter geladen, entpackt und für eine U3-Version manipuliert. Das war es dann auch schon, und im gleichen Verzeichnis sollte eine U3-Version zu finden sein.
Weekend Special : AVR Christmas Sound
13. Dez
Hatte am Wochenende etwas Zeit und Langeweile und habe mir mal wieder meinen kleinen ATMega8 geschnappt. Zwar ist es eine absolut miese Bildqualität, aber es kommt ja auf den Ton an. Warum ich einen ATMega8 und nicht mein Arduino-Board?
Beim Arduino muss man sich nicht selbst um die Timer kümmern und lernt daher auch nicht wirklich etwas über die Architektur. Zumal es einfach zu viel im Netz gibt und man da schnell was zusammen klaut. Außerdem wollt ich ja Zeit rumkriegen.
Update:
Nachdem das Ganze irgendwie süchtig macht, habe ich noch ein paar Melodien hinzugefügt.
* Itchy & Scratchy Theme
* KnightRider Theme
* The Simpsons Theme
* Star Wars Theme
* Star Trek Next Generation Theme
* Star Trek Voyager Theme
* SuperMario Bros Theme
* Airwolf Theme
* SuperMan Theme
* Scatman* Poison
* TakeOnMe
* Biene Maja Theme
* The final countdown
* Pink Panther Theme
* Adams Family Theme
* Axel Foley Theme
* The Flintstone Theme
* Indiana Jones Theme
* Little Drummer Boy
[Linux] Uptime umrechnen
29. Jul
Eigentlich sehr trivial, wenn man auf die Idee kommt. Da die vorgestellte Möglichkeit die Linux-uptime auszugeben nur die Sekunden seit dem Booten ausgibt müsste man diese natürlich noch umrechnen.Die meiner Meinung nach einfachste und eleganteste Variante ist einfach den Rest der Division zu ermitteln.Dabei wird der alte Modulo-Operator genutzt und jeweils der Quotient zur nächsten Einheit gebildet.
Kryptisch zusammen gebacken sieht das Ganze so aus :
sprintf(sequence, "%ldh %ldm %lds", (uptime / 60 / 60 ) % 60, (uptime / 60) % 60 , uptime % 60 );
Ein wenig länger, dafür aber übersichtlicher wäre dann wohl diese Variante :
long hours = (uptime / 60 / 60 ) % 60;
long minutes = (uptime / 60 ) % 60;
long seconds = (uptime % 60);
sprintf(sequence, "%ldh %ldm %lds", hours , minutes , seconds);
Letzteres ist sicherlich nicht am effektivsten was die Ressourcen angeht, unsigned short oder ähnliche Typen für die Variablen hätten es auch getan, aber so bleibt es übersichtlicher. Mir gefällt die erste Variante eh besser.
[Linux] Uptime mit C auslesen
27. Jul
Brauch man ja ab und an um sich ein Bild über die aktuelle Laufzeit des jeweiligen Systems zu machen oder um sich einzugestehen, dass man einfach zu lange vor der Kiste sitzt.
#include <sys/sysinfo.h>
long getTickCount() // Zeit seit dem Booten in Sekunden
{
struct sysinfo si;
if(sysinfo(&si) == 0) return si.uptime;
else return -1L;
}
int main()
{
printf("Uptime : %2.0f min",(getTickCount()/60.0));
return 0;
}
[Electronics] Arduino Plattform
27. Jul
Mikrocontroller sind meist die eierlegende “Wollmilch-Sau” und für jedes erdenkliche Elektronik Projekt zu gebrauchen. Sei es ein kleiner MP3-Player oder nur ein LCD-Interface welches den Systemstatus darstellt, prinzipiell ist alles möglich. Leider bedarf es einiges an Einarbeitungszeit um einen Mikrocontroller vernünftig programmieren zu können, daher ist der Einstieg für Menschen ohne Elektrotechnik-Studium oder einer ähnlichen Ausbildung oftmals sehr schwierig, wenn auch gleich unmöglich. Ein Nicht-Elektrotechniker-Mikrocontroller-Board, hat sich das Arduino-Projekt zur Aufgabe gemacht und versucht dank einfacher API und klar strukturierter Softwareumgebung, Mikrocontroller für Designer und Künstler interessant zu machen. Mit Erfolg würde ich sagen.
Aber abgesehen von den obigen Gründen, ist das Projekt auch für begeisterte Elektroniker interessant. Wer nicht ständig mit Mikrocontrollern zu tun hat und eben mal einen Prototyp oder eine einfache Messdatenaufnahme schaffen möchte ist hier genau richtig. Nach längerem Zögern und Beobachten des Projekts habe ich mir nun auch ein Arduino Duemilanove mit einem ATMega328 + Ethernet-Schield gegönnt und warte nun sehnlichst das Eintreffen des Pakets ab. Geplant sind erst einmal ein Wake-On-Lan-Sender mit Webinterface, eine mit 2-Achsen versehende Webcam-Steuerung (die ebenfalls per Webinterface gesteuert werden kann) und natürlich ein Klassiker, der Temperatur-Logger. Alles in Allem ist das Ganze nicht weiter tragisch, da es bereits fertige Bibliotheken für die Ansteuerung von Servos, des EthernetShields und einfacher Sensoren gibt. Dazu kommt noch, dass alles Schematics und Layouts für das Projekt Open-Source sind und sich daher eine fast riesige Community gebildet hat, wo es viele interessante Projekte gibt. Nicht zu vergessen der schon vor Ewigkeiten gepostete Artikel über das Wii-Nunchuk gesteuerte Arduino-Board.
Natürlcih hab ich mich vorab ein wenig umgesehen und einige interessante Links herausgepickt, die mich zum Erwerb verführt haben :
- freedunio : Größtes deutschsprachiges Arduino Portal, Blog, Wiki, Community und viele Tutorials zu der Open Source Hardware und Software Entwicklungsumgebung.
- netzwelten : privates Blog, mit einigen guten Tutorials
- ladyada : persönliche Seite von Limor aka ladyada, hier gibt es fast alles was mit Elektronik zu tun hat. Darunter auch Anleitungen bzl. Arduino und einiger Schields.
- Robotfreak Blog : pritvates Blog, auf das ich schon früher durch das BTM-222 aufmerksam geworden bin
- Mats Vanselow : pritvates Blog, wo ich das Arduino+Twitter-Projekt sehr genial finde
- Daily Duino : englsichsprachige Newsseite die über Neuentwicklungen und Projekte bzgl. des Arduino-Projekts berichtet
- Hack N Mod : recht coole Sammlung an Ardunio-Projekten und jeder Menge Hardware-Mods
So das war es erst einmal, mehr gibt es dann eventuell wenn das Zeug hier ist. So muss nun aber weiter für die Prüfung in der theoretischen Elektrotechnik lernen.
- Arduino Duemilanove
- Arduino IDE
Qt : JoyStick + OpenGL
12. Mai
Weil laufende Zahlen recht langweilig sind und sich bewegende 3D-Modelle halt irgendwie weitaus cooler sind, hier eine OpenGL-Demo die auf der schon vorgestellten Klasse.Zu sehen ist ein einfacher Quader im Koordinatenursprung, der über einen Logitech 3d Extreme in allen 3 Achsen manipuliert werden kann und mit der vierten Achsen ist das Zoomlevel einstellbar. Sicher nichts außergewöhnliches, aber als Baustein für weitere Sachen schon recht brauchbar. Die Videos sollte man glaube ich im Fullscreen sich ansehen, sonst ist da irgendwie nicht wirklich was zu erkennen.
Joystick : Qt 4.5 und SDL
10. Mai
Wie in den Kommentaren über den ProBot 128 schon angedeutet, bastel ich mir gerade Soft- und Hardware um das Spielzeug ein wenig interessanter zu machen. Neben einer Joystick-Steuerung und eines kleinen LC-Displays, werden weite Ideen und Ausbaustufen folgen. Letztes Wochenende hatte Thomas mich erst wieder daran erinnert, dass das kleine Teil doch noch auf dem Regal steht und völlig sinnlos einstaubt.
Daher hab ich mal ein wenig mit SDL und Qt 4.5 gespielt und zu mindestens eine rudimentäre, plattformübergreifende Möglichkeit geschaffen einen USB-Joystick auszulesen. Ein I²C-fähiges Display wurde ebenso bestellt.
*Display ist nicht unbedingt nötig, aber es ist wesentlich einfacher die Kommunikation damit zu verfolgen.
Im Übrigen hat Thomas sich die Mühe gemacht und dem Bootloader der C-Control auf den Zahn gefühlt. Herausgekommen ist ein kleiner .NET-Loader, der Mono kompatibel ist und es ermöglicht hex-Files ohne IDE auf den Kontroller zu brennen.
Als nächstes werden per UART-Schnittstelle die Fahrbefehle fit gemacht und eventuell Events für die Knöpfe implementiert. Später soll die kabelgebundene Schnittstelle durch einen BTM-222 ersetzt werden, womit dann eine Steuerung über die RS232-Emulation der Bluetooth-Schnittstelle möglich ist.
Fedora x64:
und unter Windows Vista x64
Soviel zum Plan, bleibt nur noch das Ganze auch umzusetzen.
Neue Version von progswitch (Linux)
08. Apr
Hab in den letzten Tagen wieder vermehr mit meinem myAVR-USBBoard gearbeitet und musste feststellen, dass eines an meinem Progswitch sehr nervig ist. Bei jedem WEchsel des Betriebsmodi muss das Device angegeben werden, was sehr nervt, wie ich finde. Also habe ich die Optionen angepasst und nun wird als Standard-Device “dev/ttyUSB0″ gesetzt ist. Will man ein anderes Device nutzen, dann müsste man wieder die Interfaceschalter (-i/dev/Xy) benutzen.Weiter hat sich nicht viel geändert, den aktuellen State des Prommers kann ich ledier nicht auslesen, da mein Prommer nicht wie im Datenblatt antwortet.
progswitch (Unix) -Da fällt mir ein, wer Probleme unter Linux haben sollte mit dem Prommer zu kommunizieren, der sollte den vierten DIP-Schalter, nach dem Anschalten, kurz von OFF auf On und wieder zurück schalten und somit einen Reset des Prommers erzeugen. Scheinbar initialisiert er sich nicht richtig, zumindestens ist es bei meinen beiden Geräten bei der Firmware 2.3 und 2.5 unter Linux (Fedora 10 x64 + gepatchten CP2101-Treiber) so.
Eventuell hilft es ja jemandem.
Sollte es dabei Probleme geben, so steht die Kommentarfunktion jedem offen.
“Für etwaigen Schäden übernehme ich keine Gewähr oder Haftung. Sollte etwas an eurem System oder eurer Hardware beschädigt werden, so geschieht das Nutzen des Programms und der hier dargestellten Informationen auf eigene Gefahr!”
Progswitch für mySmartUSB unter Linux
22. Jan
Vor gut 2 Jahren bekam ich, gemäß meines Wunschzettels, zu Weihnachten eine USB-AVR-Experimentierplatine der Firma myAVR mitsamt dem kleinen USB-Prommer mySmarUSB. Beides hat mich bisher tatkräftig im Programieren von ATMELs kleinen Mikrocontrollern unterstützt und bisher auch immer fehlerfrei gearbeitet.
Der Prommer wirkt dabei als RS232-zu-USB-Umsetzer und läuft daher auch problemlos unter Windows und Linux.
Nachdem Komplettumstieg auf Linux, war eine schnelle Umstellung von WinAVR zu KontrollerLab als Entwicklungsumgebung notwendig, was auch kein größeres Problem darstellte.
Da ich natürlich alle Funktionen, Daten-/Programmiermodus und Resetfunktionen, des Prommers nutzen wollte musste ich leider feststellen, dass das Programm myQuickprog leider nicht unter Linux lauffähig war. Sicherlich hätte man mit wine emulieren können, jedoch erscheint mir das eher halbherzig. Im myAVR-Forum fand ich dann ein kleines Python-Skript das einen schnellen Wechsel der Betriesmodi erlaubt.
# -*- coding: iso-8859-15 -*-
import serial
import sys
# Kotrollsequenz gemäß technischer Beschreibung von mySmartUSB
controlseq = '\xe6\xb5\xba\xb9\xb2\xb3\xa9'
if (len(sys.argv) == 1):
print 'Usage: progswitch.py mode '
print '\tp : Programming mode'
print '\td : Data mode'
else:
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
ser.write(controlseq + sys.argv[1])
Kleines Manko am Rande, es funktioniert bei mir nur auf dem Laptop, beim Desktop regt sich nix.
Also blieb nur eines, das Skript auf eine Hochsprache zu portieren!
Gesagt getan, da ich mich so oder so in die Programmierung der seriellen Schnittstelle unter Linux einarbeiten wollte, habe ich das Skript nach C portiert. Das resultierende Programm “progswitch” verfügt über Argumentswitches für die jeweiligen Modis und erlaubt das angeben eines Interfaces.
In etwa sieht das Ganze dann so aus:
progswitch -d -i/ttyUSB0
Wobei d : Datenmode und :i Interfacedarstellen und i zwangsweise vorhanden sein muss. Sollte jemand auf die Idee kommen zwei Modis anzugeben, so wird immer der letzte ausgewertet und behandelt.
Unter Fedora habe ich zusätzlich eine udev-Policy erstellt, die die Schnittstelle automatisch mit den Rechten 666, also lesen und schreiben für alle erstellt und nur die Sillicon Labs RS232-Konverter behandelt.
Übersetzen kann man das Ganze dann mit dem gewohnten Dreisatz von :
./configure
make
make install (als root)
Sollte es dabei Probleme geben, so steht die Kommentarfunktion jedem offen.
“Für etwaigen Schäden übernehme ich keine Gewähr oder Haftung. Sollte etwas an eurem System oder eurer Hardware beschädigt werden, so geschieht das Nutzen des Programms und der hier dargestellten Informationen auf eigene Gefahr!”
Downloads:
Messplatzarbeiten
09. Sep
Seit gut einem dreiviertel Jahr arbeite ich nun an einem Messplatz zur automatischen Ermittlung von Richtcharakteristiken für konventionelle Ultraschallprüfköpfe (für mehr Infos einfach Fragen). Letztendlich eine Messung über die die Verteilung der Energie über den Winkel ähnlich wie bei Antennen darstellt.
Leider herrscht da momentan ein gewisser dringlicher Druck, der natürlich auch in Sachen Verifizierung dahingeht. Im Zuge der morgigen Veranstaltung habe ich heute erfolgreich die letzen Arbeiten an der Hardware vorgenommen und in 10 h ( Mittagspause schon abgezogen) den Messplatz sozusagen komplett neu verkabelt und längst fällige, sowohl sicherheitstechnisch als auch optische) Aufgaben endlich abgearbeitet.
Im Endeffekt bin ich froh das ich den Kram nun hinter mir habe und hoffe das die Vorführung bei der externen Abnahme erfolgreich verläuft.



