Processing in Javascript in QML in Python
pbouda am 05. Sep 12:31
Es gibt gute und vernünftige Gründe, warum man Desktop-Anwendungen mit Python und PySide entwickeln sollte. Aber man kann damit einfach auch nur Spaß haben. Diesen hatte ich auch, letzte Woche. Und das ist daraus geworden:
https://github.com/pbouda/Process-
Eine Processing-Variante auf Javascript-Basis, die in einer QML-Webkit-Komponente läuft, die wiederum von Python geladen wird. Viel Spaß damit!
Bluetooth mit Arduino, N900 und Python
pbouda am 15. Apr 10:25
Im Prinzip handelt es sich auch um einen schon etwas älteren Beitrag in einem meiner alten Blogs, aber neu ist er trotzdem hier im Wiki:
Wie man per Bluetooth zwischen Arduino und dem N900 kommuniziert. Der Arduino-Teil ist in Processing geschrieben, der Code auf dem N900 in Python. Im Prinzip zeigt der Python-Code allgemein die serielle Bluetooth-Kommunikation per dbus und bluez. Der Beitrag ist in diesem Fall auf Englisch, ich werde inmer mal wieder englische Beiträge veröffentlichen, einfach um ein bisserl das Englisch-Schreiben zu üben. Und um, naja, den potentiellen Leserkreis etwas auszuweiten.
Processing auf dem N900
pbouda am 20. Mär 12:28
Processing ist eine Java-basierte Programmiersprache, die bisher vor allem im Computerkunstbereich eingesetzt wird und sich dort wegen ihrer einfachen Erlernbarkeit und einer hervorragenden Grafikbibliothek großer Beliebtheit erfreut. Aber auch im Embedded-Bereich wird Processing z.B. Schaltungen mit dem Mikrokontroller Arduino verwendet. Und es macht Spaß.
Vor kurzem hat nun Jayesh Salvi eine Website mit einer Javascript-Processing-Umgebung veröffentlicht. Die Beispiele auf der Website funktionieren alle recht gut auch auf dem N900, ich hatte aber Probleme mit den Mouse-Events. In den von mir getesteten Browsern (MicroB, Midori, Firefox) konnte ich keine vernünftigen Toucheingaben machen, weil meist der Browser diese Eingaben abfängt um z.B. den Bildschirm zu scrollen. Am Besten funktionierte es mit Midori, der eine WebKit-Engine verwendet. Also habe ich ein kleines PySide-Skript geschrieben, dass mir nur die die Processing-Umgebung unter "http://p.altcanvas.com/" öffnet und den MicroB-UserAgent-String schickt:
# This code is public domain
import sys
from PySide import QtGui, QtWebKit, QtCore
def main():
app = QtGui.QApplication(sys.argv)
QtGui.QApplication.setApplicationName("Processing")
MainWindow = QtWebKit.QWebView()
page = MyWebPage()
MainWindow.setPage(page)
MainWindow.show()
MainWindow.load(QtCore.QUrl("http://p.altcanvas.com/"))
sys.exit(app.exec_())
class MyWebPage(QtWebKit.QWebPage):
def __init__(self):
QtWebKit.QWebPage.__init__(self)
def userAgentForUrl(self, url):
return "Mozilla/5.0 (X11; U; Linux armv7l; de-DE; rv:1.9.2a1pre) Gecko/20091127 Firefox/3.5 Maemo Browser 1.5.6 RX-51 N900"
main()
Und siehe da: MouseClicked- und MouseDragged-Events funktionieren auf dem N900 einwandfrei! Ich habe auf der Website ein Projekt namens "touch" freigegeben, dieses könnt ihr in der "Gallery" ausprobieren. Damit das Python-Skript auf dem N900 läuft müsst ihr das Paket "pyside-qt4-webkit" aus "extras-devel" installieren. Ihr könnt das Skript auch auf dem Desktop starten und seht so, wie sich das Processing-Programm auf dem N900 verhalten wird. Entwickeln könnt ihr ganz einfach auf der Website im Desktop-Browser.
Hier ein kleines Screen-Video:
Das Python-Skript könnt ihr auch hier herunterladen.


