Otevřený chytrý telefon s Linuxem - Openmoko Neo FreeRunner
13. ledna 2010
                 
            
Jak jednoduše a efektivně programovat pro Neo FreeRunner
Díky systému postavenému na Linuxu, GNU a dalších svobodných projektech, 
se dá programovat v mnoha jazycích a použít mnoho knihoven pro výsledný program 
a při využití moderních mobilních komponent je to hračka.
Programovat se dá samozřejmě v jazyce C/C++,
který je hojně rozšířený a pro zařízení jako je Neo FreeRunner je vhodný,
protože výsledný program bývá rychlejší.
Zajímavou možností je nový jazyk Vala, 
který v mnohém usnadňuje práci oproti C++ a přitom výsledný program je skoro stejně rychlí jako v C++,
protože je také kompilován do nativního kódu procesoru.
Vzhledem k tomu, že chceme rychle a jednoduše začít programovat, bez získaní a nastavení nějakých vývojových prostředků, které jsou specifické pro naše zařízení, jakou jsou například knihovny a kompilátor, tak zvolíme programovací jazyk Python. Tento programovací jazyk je skriptovací a tudíž překládán až za běhu, tudíž je možné programovat i v tom nejobyčejnějším editoru a v libovolném OS (třeba i na Windows v Notepadu :-D) . Zároveň se v něm dá vyvíjet jednodušeji než třeba v C.
Ovládání periferií a dalšího HW se dá jednoduše pomocí DBUSu.Pro grafické programy je v SHR preferován toolkit Elementary (OpenMoko wiki Elementary) ,který je přizpůsobený pro mobilní zařízení s malým dotykovým displejem.
Program v Pythonu se dá bez úprav rovnou testovat na FreeRunneru. Jak jednoduše přesunout upravené soubory? Nakonec jsem dospět k řešení, kdy pomocí NFS přimountuji adresář z desktopu, který obsahuje vyvíjený projekt, tak vlastně není potřeba nic kopírovat ;-) . Uživatelka slečna Neo:

Ovládat FreeRunner se dá úplně jednoduše např i z konzole pomocí Bashe a za pomoci programu mdbus (nebo mdbus2)
 Služby poskytované naším systémem můžeme zjistit příkazem:
 
mdbus -sJaké objekty poskytuje konkrétní služba zjistíme příkazem:
mdbus -s org.freesmartphone.odevicedA pak už můžeme volat metody jednotlivých objektů dané služby. Například rozblikat červené AUX tlačítko, můžeme úplně jednoduše tímto jedním příkazem:
mdbus -s org.freesmartphone.odeviced \ /org/freesmartphone/Device/LED/gta02_aux_red \ org.freesmartphone.Device.LED.SetBlinking 100 100Blikání pak vypneme:
mdbus -s org.freesmartphone.odeviced \ /org/freesmartphone/Device/LED/gta02_aux_red \ org.freesmartphone.Device.LED.SetBrightness 0
V Pythonu se pak LEDky dají ovládat např takto: 
Další jednoduché programy, které mohou sloužit jako vzor:
Vzorový grafický program v Pythonu s použitím Elementary.
Program pro ovládání diod.
Program pro ovládání USB módu.
Program, který detekuje příchozí/odchozí/.. volání, verze jak pro Elementary tak pro GTK.
Debugboard pro OpenMoko Neo Freerunner
Konečně se mě dostal do rukou debugboard pro OpenMoko Neo Freerunner. Takže se těším na zimu, období dlouhých večerů, kdy člověku nemůže tolik ven a tak má více času na hackovaní. Pomocí této speciální desky, se dá absolutně perfektně hackovat FreeRunner na nejnižší úrovni. Já plánují zatím pouze využít SPI výstupy a propojit FreeRunner přímo s IQRF modulem. Nakonec proč připojovat zařízení pomocí USB, když se dá modulek připojit přímo? Neboť USB není u IQRF nativní rozhraní, tak je navíc potřeba na obou stranách další USB hardware. Ve výsledku se tak ušetří dva kusy USB řadiče a navíc nebude potřeba USB ovladač. Pro každodenní použití by se pak modulek dal zadělat přímo do mobilu.Samozřejmě toto řešení pak půjde portovat i na tablet TouchBook, který má též SPI linku a rozhodně dostatek místa uvnitř.
Prostě čistší řešení, než když se k FreeRunneru připojí IQRF modul pomocí IQRF develop boardu nebo simple low cost comunication boardu.
 
        Články na podobné téma
        
            Jak zrychlit web
                            
            
        
            Rector: upgrade PHP aplikace
                            
            
        
            Programovací jazyk Go
                            
            
        
            Analýza zadání a nacenění vývoje softwarového projektu
                            
            
        
            Python program na ovládání Dockeru pomocí API
                            
            
        
            Jak použít aplikaci MailCatcher pro testování emailů
                            
            
        
            Návod: Python OpenAI API
                            
            
        
            Vytvoření WebSocket webové aplikace a nastavení proxy
                            
            
        
            Řízení projektů: Agilní vývoj softwaru
                            
            
        
            Jak provozovat staré PHP aplikace
                            
            
        
            Co by měl umět dobrý programátor
                            
            
        
            Programovací jazyk Rust
                            
            
        
            NodeJS: vývoj, konfigurace serveru
                            
            
        
            Nette security bug CVE-2020-15227
                            
            
        
            Jak porovnat dvě stejné databáze?
                            
            
        
            REST API: API platform
                            
            
        
            Vlastní web a mail hosting se softwarem ISP Config
                            
            
        
            Programovní v SQL: PostgreSQL, MySQL/MariaDB
                            
            
        
            HTTPS: zabezpečený web
                            
            
        
            NoSQL databáze Mongo DB
                            
            
        
            Připojení k Microsoft SQL Serveru z Linuxu
                            
            
        
            Co je pracovní náplň programátora
                            
            
        
            Lokalizace aplikací v jazyce Python
                            
            
        
            Jaký mail a web hosting vybrat
                            
            
        
            How to make wireless low power Arduino
                            
            
        
            Digispark -  Programujte mikrokontrolér Atmel ATtiny pomocí Arduino IDE
                            
            
        
            Program Roulette
                            
            
        
            Vývoj pro procesory ARM s Arduino IDE
                            
            
        
            Wireless low power Arduino
                            
            
        
            Pyradio - Python program for receive Internet radio with text user inteface
                            
            
        
            UPS monitor pro Android
                            
            
        
            Bezdrátový bateriově napájený WiFi teploměr
                            
            
        
            Jak programovat WiFi procesor ESP8266
                            
            
        
            Comparison IQRF vs Wireless Arduino
                            
            
        
            Jakou platformu zvolit pro eshop? Například Prestashop
                            
            
        
            Development kits and gateways for wireless platform IQRF
                                    
                     
                            
            
        
            OpenStreetMap a GPS trasy v mapě na webu
                            
            
        
            Quickplay
                            
            
        
            Java program pro přehledné monitorování záložních zdrojů
                            
            
        
            Čipové kontaktní a bezkontaktní karty Java Card OpenPlatform
                            
            
        
            Vývoj pro bezdrátové moduly s procesorem PIC pod GNU/Linux  -  IQRF
                            
            
        
             Grafický program pro embeded/mobilní zařízení na vyhledávání dopravního spoje.
                            
            
        
            O programování a ruzné programy v jazyce Java, Python a dalších
                            
            
        
            Java program a applet Kalkulačka
                            
            
        
            Java program na výpočet kvadratické rovnice
                            
            
            
Odběr novinek
    Pokud máte zájem dostávat příležitostně na email novinky.
    
    Můžete se vyplněním emailu registrovat k 
        odběru novinek.
+
 
             
             
             
             
          