Offenes Smartphone mit Linux - Openmoko Neo FreeRunner
13. Januar 2010
Wie man einfach und effizient für Neo FreeRunner programmiert
Mit einem System, das auf Linux, GNU und anderen freien Projekten aufbaut,
können Sie in vielen Sprachen programmieren und viele Bibliotheken für das resultierende Programm verwenden
und die Verwendung moderner mobiler Komponenten macht es zu einem Kinderspiel.
Natürlich kann man auch in C/C++ programmieren,
was weit verbreitet und für Geräte wie den Neo FreeRunner geeignet ist,
weil das resultierende Programm in der Regel schneller ist.
Eine interessante Option ist die neue Vala Sprache,
mit der man viel einfacher arbeiten kann als mit C++, und dennoch ist das resultierende Programm fast so schnell wie C++,
weil es auch in nativen Prozessorcode kompiliert wird.
Da wir schnell und einfach mit der Programmierung beginnen wollen, ohne gerätespezifische Entwicklungsressourcen zu erwerben und einzurichten, wie z.B. Bibliotheken und einen Compiler, wählen wir die Programmiersprache Python. Diese Programmiersprache ist eine Skriptsprache und wird daher zur Laufzeit kompiliert, daher ist es möglich, in jedem gewöhnlichen Editor und in jedem Betriebssystem zu programmieren (sogar unter Windows in Notepad :-D). Gleichzeitig ist es einfacher, in dieser Sprache zu entwickeln als in C.
Die Steuerung von Peripheriegeräten und anderer Hardware kann einfach über DBUS erfolgen.Für grafische Programme ist das bevorzugte Toolkit von SHR Elementary. (OpenMoko wiki Elementary) , das für mobile Geräte mit kleinem Touchscreen angepasst ist.
Das Python-Programm kann ohne Modifikation direkt auf FreeRunner getestet werden. Wie kann man die geänderten Dateien einfach verschieben? Ich bin schließlich zu einer Lösung gekommen, bei der ich NFS verwende, um das Verzeichnis vom Desktop aus zu mounten, das das in der Entwicklung befindliche Projekt enthält, so dass man eigentlich nichts kopieren muss ;-) . User Miss Neo:
FreeRunner kann man ganz einfach z.B. von der Konsole aus mit bash und mdbus (oder mdbus2)
steuern.
Die Dienste, die unser System bereitstellt, können wir mit dem Befehl herausfinden:
mdbus -sUm herauszufinden, welche Objekte von einem bestimmten Dienst bereitgestellt werden, verwenden Sie den Befehl:
mdbus -s org.freesmartphone.odevicedUnd dann können wir die Methoden jedes Objekts des Dienstes aufrufen. Um zum Beispiel die rote AUX-Taste blinken zu lassen, können wir einfach diesen einen Befehl verwenden:
mdbus -s org.freesmartphone.odeviced \ /org/freesmartphone/Device/LED/gta02_aux_red \ org.freesmartphone.Device.LED.SetBlinking 100 100Dann schalten Sie das Blinken aus:
mdbus -s org.freesmartphone.odeviced \ /org/freesmartphone/Device/LED/gta02_aux_red \ org.freesmartphone.Device.LED.SetBrightness 0
In Python kann man die LEDs wie folgt steuern:
Andere einfache Programme, die als Vorlage dienen können:
Ein grafisches Python-Beispielprogramm mit Elementary.
Diodensteuerungsprogramm.
Programm zur Steuerung des USB-Modus.
Programm, das eingehende/ausgehende/... Anrufe erkennt, Versionen sowohl für Elementary als auch GTK.
Debugboard für OpenMoko Neo Freerunner
Endlich habe ich es in die Finger bekommen Debugboard für OpenMoko Neo Freerunner. Ich freue mich also auf den Winter, die Zeit der langen Abende, an denen man nicht so viel rauskommt und somit mehr Zeit zum Hacken hat. Mit diesem speziellen Board kann man den FreeRunner absolut perfekt auf niedrigstem Niveau hacken. Ich habe vor, vorerst nur die SPI-Ausgänge zu nutzen und den FreeRunner direkt mit dem IQRF-Modul zu verbinden. Denn warum sollte man das Gerät über USB anschließen, wenn man das Modul direkt anschließen kann? Weil USB keine native Schnittstelle für IQRF ist, so dass auf beiden Seiten zusätzliche USB-Hardware benötigt wird. Dadurch spart man sich zwei USB-Controller und auch einen USB-Treiber. Für den alltäglichen Gebrauch könnte das Modul dann direkt in ein Mobiltelefon gesteckt werden.Natürlich lässt sich diese Lösung dann auch auf andere Geräte portieren. Tablet TouchBook portiert werden, das ebenfalls über eine SPI-Leitung verfügt und auf jeden Fall genug Platz im Inneren hat.
Einfach eine sauberere Lösung als ein IQRF-Modul an den FreeRunner anzuschließen. IQRF-Entwicklungsboard. oder . einfaches, kostengünstiges Kommunikationsboard.
Artikel zu einem ähnlichen Thema
Python-Programm zur Steuerung von Docker über die API
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Wie man alte PHP-Anwendungen ausführt
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
NodeJS: Entwicklung, Serverkonfiguration
Nette Sicherheitslücke CVE-2020-15227
REST API: Plattform-API
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Newsletter
Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben
News-Abonnement.
+