Warning: Cannot modify header information - headers already sent by (output started at /var/www/web138/html/wp-content/plugins/easy-google-syntax-highlighter/easy-google-syntax-highlighter.php:50) in /var/www/web138/html/wp-includes/feed-rss2.php on line 8
.:zefanjas:. http://zefanjas.de web App Development and more Wed, 31 Dec 2014 13:17:16 +0000 de-DE hourly 1 http://wordpress.org/?v=4.1.1 Losungen 2015 http://zefanjas.de/2014/12/31/losungen-2015/ http://zefanjas.de/2014/12/31/losungen-2015/#comments Wed, 31 Dec 2014 13:17:16 +0000 http://zefanjas.de/?p=1954 ]]> Dank der verlässlichen Arbeit von Stefan, könnt ihr euch heute die aktuelle Version von Losungen für webOS herunterladen. Wenn ihr Fragen oder Bugs habt, dann meldet euch in den Kommentaren oder auf Twitter. Ich habe die App für FirefoxOS überarbeitet und werde sie in den nächsten Tagen veröffentlichen.

Download IPK (webOS)
WebApp (FirefoxOS, Browser)

Losungen FxOS

Kommentar hinzufügen

]]>
http://zefanjas.de/2014/12/31/losungen-2015/feed/ 0
BibleZ nun auch für Android verfügbar http://zefanjas.de/2014/05/04/biblez-nun-auch-fuer-android-verfuegbar/ http://zefanjas.de/2014/05/04/biblez-nun-auch-fuer-android-verfuegbar/#comments Sun, 04 May 2014 13:31:08 +0000 http://zefanjas.de/?p=1941 ]]> Seit Firefox Mobile 29 unterstützt Mozilla die Installation von gepackten privilegierten Apps. Das sind Apps, die bestimmte APIs nutzen, z.B. Zugriff auf Netzwerkverbindungen (um Cross-Origin-Request Probleme zu umgehen).

BibleZ ist nun ab heute auch im Firefox Marketplace für Android verfügbar. Wer es dazu auch noch am Rechner installieren möchte, findet die Desktop-Version hier.

Hinweis: BibleZ befindet sich weiterhin in einem Beta-Status. Viele wichtige Funktionen fehlen noch… Wer einen Bug findet, kann ihn gern hier eintragen.

2 Kommentare

]]>
http://zefanjas.de/2014/05/04/biblez-nun-auch-fuer-android-verfuegbar/feed/ 2
[Update] BibleZ NG http://zefanjas.de/2014/01/14/biblez-ng/ http://zefanjas.de/2014/01/14/biblez-ng/#comments Tue, 14 Jan 2014 06:00:51 +0000 http://zefanjas.de/?p=1934 ]]> Update: BibleZ ist nun für FirefoxOS im Marketplace verfügbar!

Vor einigen Monaten hatte ich bereits über mein Projekt berichtet, BibleZ HD (die webOS App) in eine “richtige” webApp zu portieren. In den letzten Wochen hatte ich wieder etwas mehr Zeit zum programmieren und so wurden wesentliche Features hinzugefügt.

Ich habe die App für FirefoxOS und auch für Firefox (Desktop, Android) im Marketplace von Mozilla eingereicht. In den nächsten Tagen sollte die App dann veröffentlicht werden. Wer die App bereits jetzt schon testen möchte, kann dies gern tun: http://zefanjas.de/biblezng

Um die App auch als solche zu installieren, öffnet man am besten die Webconsole (STRG + SHIFT + K) und gibt folgendes ein:

navigator.mozApps.install("http://zefanja.github.io/biblez-ng/app/manifest.webapp");
BibleZ NG - Firefox, Ubuntu 12.04

BibleZ NG – Firefox, Ubuntu 12.04

Der Sourcecode befindet sich auf Github.

FirefoxOS 1.3

Noch ein kleines Wort zu FirefoxOS an sich. Mittlerweile gab es einige Neuerungen und Verbesserungen im Handling und der Bedienung. Es fühlt sich teilweise immer noch umständlich im Vergleich zu webOS an, aber nicht mehr so schlimm, wie das noch mit der Version 1.0 war. Ich bin gespannt auf die weitere Entwicklung und hoffe auf leistungsstärkere Smartphones und Tablets!

Kommentar hinzufügen

]]>
http://zefanjas.de/2014/01/14/biblez-ng/feed/ 0
Losungen 2014 http://zefanjas.de/2014/01/03/losungen-2014/ http://zefanjas.de/2014/01/03/losungen-2014/#comments Thu, 02 Jan 2014 23:15:43 +0000 http://zefanjas.de/?p=1932 ]]> Das neue Jahr hat begonnen und somit gibt es auch ein Update für die Losungen App für webOS. Das Update ist seit ein paar Tagen eingereicht und wird hoffentlich bald als Update verfügbar sein. Wer nicht so lang warten möchte, kann sich die IPK hier herunterladen und mit Preware oder webOSQuickInstall direkt installieren.

Mittlerweile gibt es auch ein Web App für Losungen, welche man sich z.B. auf seinem Firefox OS Gerät oder direkt im Browser installieren kann.

Ich wünsche allen ein gesegnetes neues Jahr!

1 Kommentar

]]>
http://zefanjas.de/2014/01/03/losungen-2014/feed/ 1
Build a Robot #2 – Fernsteuerung mit dem Smartphone http://zefanjas.de/2013/12/20/build-a-robot-2-fernsteuerung-mit-dem-smartphone/ http://zefanjas.de/2013/12/20/build-a-robot-2-fernsteuerung-mit-dem-smartphone/#comments Fri, 20 Dec 2013 13:28:39 +0000 http://zefanjas.de/?p=1918 ]]> Heute soll es uns um die Steuerung des kleinen Roboters mit einem Smartphone/Tablet gehen. Dabei soll die Fernsteuerung möglichst plattform-unabhängig sein. Aus diesem Grund habe ich mich für eine einfache Website entschieden, welche die Daten des Gyroskop ausliest und entsprechende Befehle an den Roboter schickt.

Die Serverseite

Ich habe in den letzten Jahren viel mit Javascript programmiert und aus diesem Grund habe ich mich für eine nodejs basierte Lösung entschieden. Javascript ist für die Steuerung von GPIOs eigentlich nicht wirklich geeignet (single threading, Latenzen, …), aber für das An- und Ausschalten von Motoren passt es ganz gut.

Zuerst sollte man also nodejs auf dem Raspberry Pi installieren. Da die Version in den Repositories nicht gerade aktuell ist, kann man sich manuell ein compiliertes Paket direkt bei nodejs downloaden. Die Installation ist in diesem Artikel ganz gut beschrieben.

Bei Github findet man verschiedene Pakete für die Ansteuerung der GPIOs. Ich habe mich für node-rpio entschieden, da die API der Python-API entspricht, die wir im letzten Beitrag verwendet haben. Weiterhin ist die API synchron, was in unserem Fall sinnvoll ist, da wir sonst mit vielen vielen Callbacks zu tun hätten ;) Um node-rpio zu nutzen, muss es noch compiliert werden. Dazu gibt man einfach den Befehle

npm install -g node-gyp
node-gyp rebuild

ein, nachdem man das Github-Repo geklont hat. Nun ist alles fertig, um die Motoren über nodejs zu steuern. Da die API gleich ist, können wir im Prinzip den Quelltext aus dem letzten Beitrag nehmen und nur ein klein wenig anpassen:

var gpio = require("./node-rpio/lib/rpio");

//Setup GPIO Pins
gpio.setmode(gpio.BOARD);
gpio.setup(13, gpio.OUT);
gpio.setup(15, gpio.OUT);
gpio.setup(16, gpio.OUT);
gpio.setup(18, gpio.OUT);

gpio.output(13, 1);
gpio.output(15, 0);
gpio.output(16, 1);
gpio.output(18, 0);

process.on('SIGINT', function() {
    console.log("\nGracefully shutting down from SIGINT (Ctrl+C)");
    //Cleanup
    gpio.cleanup();
    process.exit();
});

Der letzte Teil dient dazu, dass man mit Ctrl+C das Skript abbrechen kann, denn sonst würden die Motoren ständig weiterdrehen.

Ok, jetzt können wir zwar die Motoren ansteuern, aber nur direkt am Raspberry Pi. Die Verbindung zum Smartphone fehlt noch. Socket.io ist ein großartiges Projekt, welches eine direkte Verbindung über webSockets zwischen Server und Client ermöglicht. Man kann Daten sehr einfach hin- und herschicken und eigene Ereignisse definieren, auf die dann der Server bzw. Client reagieren kann. Was wir brauchen ist nun eine HTML-Datei, welche den Gyroskop ausliest und die entsprechenden Befehle an den nodejs Server sendet, welche dieser dann verarbeitet:

Als nächstes wird der nodejs Server mit

sudo node robot.js

gestartet. Nun muss man nur noch die Adresse: http://IP-des-Raspberry-Pi aufrufen und schon kann man den Roboter mit einem Smartphone oder Tablet steuern.

Stromversorgung und Wlan

Es gibt nur noch ein Problem. Der Rapsberry Pi hängt bisher noch an zwei Kabeln: dem Netzwerkkabel und dem USB-Kabel für die Stromversorgung. Für beiden gibt es Lösungen. Das Netzwerkkabel habe ich durch einen Wlan-USB Dongle ersetzt. Wie man diesen einrichtet und welchen man kaufen sollte, findet man in diesem Artikel.

Das verbleibende USB-Kabel habe ich einfach durch ein mobiles USB-Ladegerät ersetzt, welches man für wenig Geld zu kaufen bekommt. Diese liefern die benötigen 5V. Man sollte darauf achten, dass sie neben den 5V auch mindestens 1A liefern, ansonsten wird der Raspberry Pi nicht starten.

Und so sieht das ganze jetzt aus ;)

mobile Stromversorgung und WLAN-Dongle mobile Stromversorgung und WLAN-DongleIch werde in den nächsten Tagen noch ein ein Video machen…

Wie geht es jetzt weiter? Die Steuerung muss noch verbessert werden. Gerade das Lenken ist noch ungenau und das Fahren somit etwas schwierig. Ein weiteres Ziel ist, mit Hilfe eines Ultraschall-Sensors dem Roboter das autonome Fahren beizubringen.

Bisherige Artikel

 

2 Kommentare

]]>
http://zefanjas.de/2013/12/20/build-a-robot-2-fernsteuerung-mit-dem-smartphone/feed/ 2
Build a Robot #1 – Motoren ansteuern http://zefanjas.de/2013/12/18/build-a-robot-1-motoren-ansteuern/ http://zefanjas.de/2013/12/18/build-a-robot-1-motoren-ansteuern/#comments Wed, 18 Dec 2013 11:00:22 +0000 http://zefanjas.de/?p=1910 ]]> Wie ich in meinem letzten Beitrag erwähnte, möchte ich gern den Roboter mit dem Raspberry Pi steuern. Da man mit einem Pi Motoren nicht direkt ansteuern kann, benutze ich das L298N Chip als Motor Driver.  Nach folgendem Video habe ich alles zusammengesteckt bzw. alle fehlenden Kabel noch angelötet. Im Video wird nur ein Motor angeschlossen, aber die restlichen 4 GPIO Pins habe ich genutzt, um den zweiten Motor zu steuern.

Ich habe das im Video verwendet Testskript für den zweiten Motor erweitert, um die Motoren zu testen.

import RPi.GPIO as gpio
import time

gpio.setmode(gpio.BOARD)
gpio.setup(7, gpio.OUT) 
gpio.setup(11, gpio.OUT) 
gpio.setup(13, gpio.OUT) 
gpio.setup(15, gpio.OUT) 
gpio.setup(12, gpio.OUT) 
gpio.setup(16, gpio.OUT) 
gpio.setup(18, gpio.OUT) 
gpio.setup(22, gpio.OUT)

gpio.output(7, True) 
gpio.output(11, True) 
#Enable B für den 2. Motor 
gpio.output(12, True) 
gpio.output(22, True) 

#Motor 1 
gpio.output(13, True) 
gpio.output(15, False) 
#Motor 2 
gpio.output(16, True) 
gpio.output(18, False) 
time.sleep(2) 

gpio.output(13, False) 
gpio.output(15, True) 
gpio.output(16, False) 
gpio.output(18, True) 
time.sleep(2) 

gpio.output(13, False) 
gpio.output(15, False) 
gpio.output(16, False) 
gpio.output(18, False)   

gpio.cleanup()

Mit diesem kleinen Testskript kann man den Roboter vor und zurück fahren lassen. Das mitgelieferte Batteriefach hat Platz für 3 AA Batterien. Diese liefern insgesamt zu wenig Spannung für die Motoren, sodass das Fahrzeug zwar fährt, aber nicht genügend Drehmoment (“Kraft”) hat. Ich werde ein neues besorgen, welches Platz für vier oder mehr AA Batterien hat.

Und hier noch ein Bild:

Der aktuelle Stand - Raspberry Pi mit L298N

Der aktuelle Stand – Raspberry Pi mit L298N

1 Kommentar

]]>
http://zefanjas.de/2013/12/18/build-a-robot-1-motoren-ansteuern/feed/ 1
Build a Robot #0 – Ziele und Material http://zefanjas.de/2013/12/18/build-a-robot-0-ziele-und-material/ http://zefanjas.de/2013/12/18/build-a-robot-0-ziele-und-material/#comments Wed, 18 Dec 2013 07:15:00 +0000 http://zefanjas.de/?p=1908 ]]> Zurzeit habe ich Ferien und dafür habe mich mir ein kleines Projekt vorgenommen. Ich möchte gern einen kleinen Roboter bauen, welcher sich von einem modernen Smartphone aus steuern lässt. Dazu soll es nicht viel kosten ;) In den letzten Wochen habe ich verschiedene Artikel und Anleitungen gelesen, um die Grundlagen und Umfang eines solchen Projektes abschätzen zu können. Für mich ist es mein erster Ausflug in das Hardware-Lager, da ich bisher nur Software entwickelt habe.

Ziel

Für mich ergeben sich folgende Ziele für das Projekt

  • ein fahrbarer Roboter, welcher sich über ein Smartphone fernsteuern lässt (angedacht ist WLAN)
  • den Roboter erweitern, sodass er sich autonom fortbewegen kann
  • möglichst geringe Kosten

Dazu erhoffe ich mir einige Erkenntnisgewinne, denn wie gesagt, bin ich Neuling in Sachen Schaltkreise, Elektronik und solchen Dingen…

Material

Im Netz bekommt man für wenig Geld sogenannte Roboterbausätze. Ich habe mich für folgenden entschieden (Kostenpunkt 13$):

Mit diesem Set bekommt man zwei Motoren plus Räder, ein Batteriefach und die “Karosserie”.  Ich habe es ausgewählt, da man genug Platz hat zusätzliche Dinge zu befestigen, wie z.B. einen Raspberry Pi, der die Ansteuerung der Motoren übernehmen soll. Dies geht allerdings nicht ohne einen “Motor driver” (L298N). Man bekommt diesen bei jedem besseren Elektronikhandel (oder hier). Neben kleinen Kabeln, einem Lötkolben und  evtl. ein paar Widerständen, sollte erst einmal alles da sein, um die ersten Schritte zu unternehmen.

 

3 Kommentare

]]>
http://zefanjas.de/2013/12/18/build-a-robot-0-ziele-und-material/feed/ 3
EnyoJS and FirefoxOS screen orientation http://zefanjas.de/2013/10/08/enyojs-and-firefoxos-screen-orientation/ http://zefanjas.de/2013/10/08/enyojs-and-firefoxos-screen-orientation/#comments Tue, 08 Oct 2013 07:24:42 +0000 http://zefanjas.de/?p=1903 ]]> Today I wanted to implement something in BibleZ NG that depends on the screen orientation (portrait or landscape) of a FxOS device.  Because I don’t use phonegap for this app (maybe later) here is my solution to handle it more EnyoJS-like. I’ve used enyo.Signals to listen for the orientation changed event and than send a custom event that my enyo kinds can listen to.

Put this in your main App.js file:

window.screen.onmozorientationchange = function () {
    enyo.Signals.send("onOrientationChange");
};

Listen to this custom event in your other enyo kinds:

{kind: "Signals", onOrientationChange: "handleOrientation"}

This is an example function to handle the different screen orientations:

handleOrientation: function (inSender, inEvent) {
    var orientation = screen.mozOrientation;
    if (orientation === "portrait-primary" || orientation === "portrait-secondary" ) {
        //do something
    }
    else if (orientation === "landscape-primary" || orientation === "landscape-secondary" ) {
        //do something
    }
}

via

Kommentar hinzufügen

]]>
http://zefanjas.de/2013/10/08/enyojs-and-firefoxos-screen-orientation/feed/ 0
FirefoxOS, swordJS und BibleZ http://zefanjas.de/2013/10/07/firefoxos-swordjs-und-biblez/ http://zefanjas.de/2013/10/07/firefoxos-swordjs-und-biblez/#comments Mon, 07 Oct 2013 13:54:28 +0000 http://zefanjas.de/?p=1900 ]]> So, der Trend geht ja immer mehr weg vom Bloggen. Stattdessen wir getwittert oder Ideen und Updates in sozialen Netzwerken geteilt. Das ist auch bei mir der Fall, sodass hier in den letzten Monaten (eher Jahren) nicht mehr viel passiert ist…

FirefoxOS

Heute möchte ich ganz kurz meine Gedanken zu FirefoxOS loswerden und was weiterhin grad aktuell ist, seitdem die  schöne Zeit mit webOS langsam zu Ende geht. Noch nutze ich ja meinen Pre3 und er läuft weiterhin super, aber in näherer Zukunft muss ein anderen Gerät her. Auch wenn die Jungs von webos-ports OpenWebOS weiter nach vorn bringen, wird es wohl noch eine ganze Zeit dauern, bis man es wirklich auf aktueller Hardware einsetzen kann (Stichwort LunaNext). Deshalb habe ich mir im Sommer ein FxOS – Gerät besorgt (ZTE Open), um das neue OS einmal zu testen. Die Ernüchterung kam sehr schnell. Das Gerät ist erstens sehr billig gebaut, v.a. das Display ist nicht zu vergleichen mit Geräten aus höheren Preisklassen. Das Scrollen funktioniert nicht sehr gut und auch so ist es nicht das schnellste Gerät. Ok, es kostet auch nicht viel, aber es kam keine richtige Freude auf, zudem nicht gerade intuitiv zu bedienen ist. Wenn man sich über Jahre an webOS gewöhnt hat, scheint alles andere unintuitiv. Nichts desto trotz könnte FxOS in die engere Auswahl kommen, wenn es um ein neues Gerät geht, denn die Entwicklung schreitet schnell voran, auch wenn mir noch viele Features fehlen (wie CardDav oder CalDav Sync). In den nächsten Wochen kommt mein Entwicklergerät und ich werde mal die aktuelle Version testen und schauen, was sich in den letzten Monaten getan hat. Das ZTE Open hat die Version 1.0 am Laufen.

BibleZ und swordJS

In den letzten Jahren habe ich immer wieder Anfragen bekommen, ob ich BibleZ nicht auch auf andere Plattformen bringen könnte,  wie iOS oder Android oder Blackberry oder … Da BibleZ HD eine webOS Hybrid-App ist, d.h. es  gibt ein c++ Backend und der Rest ist in HTML/JS/CSS geschrieben, war die Portierung nicht ohne weiteres möglich. Meine Vision ist aber weiterhin, BibleZ auf möglichst vielen Plattformen anzubieten. Verschiedene Versuche die C++ Library vonCrossWire mit Emscripten in die Welt des Webs zu bringen, scheiterten. Aus diesem Grund habe ich mich im Sommer entschieden, eine Javascript Bibliothek von Grund auf zu schreiben, um auf die Module des SWORD Projekts nur mit Webtechniken zuzugreifen. SwordJS wurde geboren und grundlegende Funktionen sind bereits implementiert.

Natürlich braucht man für so eine Biliothek auch eine Referenz-App und so habe ich begonnen BibleZ nach EnyoJS 2 zu portieren. Das Projekt trägt den Namen BibleZ NG (next generation). Diese App werde ich demnächst auch in den Firefox Marketplace einreichen, doch müssen vorher noch ein paar Features ergänzt und Bugs behoben werden ;)

BibleZ NG

BibleZ NG

Leider ist meine Zeit für das Programmieren durch meinen Job sehr begrenzt und ich komme nur aller paar Monate zu coden oder bloggen. Naja, da bin ich sicher nicht der einzige, dem das so geht.

1 Kommentar

]]>
http://zefanjas.de/2013/10/07/firefoxos-swordjs-und-biblez/feed/ 1
BibleZ HD Pro – how to get it http://zefanjas.de/2012/08/08/biblez-hd-pro-how-to-get-it/ http://zefanjas.de/2012/08/08/biblez-hd-pro-how-to-get-it/#comments Wed, 08 Aug 2012 14:12:26 +0000 http://zefanjas.de/?p=1194 ]]> BibleZ HD Pro (and all my other paid apps) will be no longer available in the HP App Catalog. I’m really sorry for this (send me an eMail if you want to know why), but there is another way how you can get it. BibleZ HD Pro is now available as donation ware. You can find more informations on the app website.

I want to thank you for all your support and your feedback. God may bless you.

4 Kommentare

]]>
http://zefanjas.de/2012/08/08/biblez-hd-pro-how-to-get-it/feed/ 4