Apr 042014
 

This is a quick introduction how to calibrate our touchscreen.

display-bausatz-einzelteile

I freely admit this is heavily based on Adafruit’s tutorial – I hope we will be able to return the favour for you guys one day!

I suggest for you to run the commands in the following tutorial in a separate SSH shell, opened from an additional computer (why not simply buy a second Raspberry Pi from you-know-whom?) .

Also, the commands in this tutorial are supposed to be run as root! –> “sudo su” gets you into the root user from the pi user.

Some background information:

Our touchscreen is based on the ADS7843 (compatible with ads7846 driver) chip, which you can see being activated (on our image) by calling lsmod:

sudo lsmod

Module                  Size  Used by
fuse                   76348  3
evdev                   9407  4
joydev                  9084  0
ads7846                 7849  0
ads7846_device          6049  0
spi_bcm2708             4728  0
snd_bcm2835            16165  0
snd_soc_bcm2708_i2s     5474  0
regmap_mmio             2806  1 snd_soc_bcm2708_i2s
snd_soc_core          131356  1 snd_soc_bcm2708_i2s
regmap_spi              1897  1 snd_soc_core
snd_pcm                81585  2 snd_bcm2835,snd_soc_core
snd_page_alloc          5156  1 snd_pcm
regmap_i2c              1645  1 snd_soc_core
snd_compress            8108  1 snd_soc_core
snd_seq                53769  0
snd_timer              20133  2 snd_pcm,snd_seq
snd_seq_device          6473  1 snd_seq
leds_gpio               2059  0
led_class               3688  1 leds_gpio
snd                    61299  7 snd_bcm2835,snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress

/dev/input/event0

This driver “delivers” the finished information to the device /dev/input/event0 – you can verify this by doing

sudo cat /dev/input/event0

and touching the touchscreen (preferably with our stylus!) – it will spew out a garble of binary information on each touch. Use Ctrl + C to terminate the command.

Note: If this command does not react to input from the touchscreen, try moving your mouse / typing on the keyboard you’ve attached to the Raspberry Pi –> it may be assigned differently on your system. Adjust the following commands accordingly … !

/dev/fb1

Our touchscreen is set up as framebuffer device 1 – you can test this like this:

cat /dev/zero > /dev/fb1

Will turn your little screen black (and give you an error message to go with it, free of charge, naturally).

libts

Tslib is a library which serves as common abstraction layer for events on touchscreens. It includes filters (for instance for smoothing the events and calibrating).

Calibration

Install the touchscreen utilities (Tslib):

aptitude install libts-bin

This will create a configuration file, /etc/ts.conf, which you might want to modify some day (have a look at the manpage first, maybe).

In order to use ts_calibrate and ts_test, you need to set environment variables.

export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_FBDEVICE=/dev/fb1

This will set them temporarily for the current user and current console you’re working on.

Then, start the calibration process:

ts_calibrate

This will show a screen with a crosshair. And instructions.

Touch the crosshair’s center with your stylus. Repeat the procedure, until the software exits.

The calibration data will be shown on your console. It will look something like this:

xres = 320, yres = 240
Took 16 samples…
Top left : X = 3110 Y =  934
Took 6 samples…
Top right : X =  696 Y =  979
Took 14 samples…
Bot right : X =  711 Y = 3163
Took 10 samples…
Bot left : X = 3161 Y = 3115
Took 8 samples…
Center : X = 1915 Y = 2070
330.695190 -0.090429 0.001365
-13.946960 0.001227 0.064123
Calibration constants: 21672440 -5926 89 -914028 80 4202 65536

 

This data will be written to the calibration file /etc/pointercal :

root@raspberrypi:/home/pi# cat /etc/pointercal
-5926 89 21672440 80 4202 -914028 65536536

Test

You can test the calibration using

ts_test

This will display a crosshair for you to move and drag around. You can also switch to drawing mode, and draw something.

Do not forget to set up the environment variables, if you run the command from another console.

 

X-Calibration and further knowledge

Please refer to Adafruit’s tutorial. The section on calibrating X is also applicable to our display.

The symlinking of the input device (/dev/input/event0 to /dev/input/touchscreen) mentioned in the tutorial will not work with our touchscreen and it’s current driver, the command has to be modified for that.

Troubleshooting

evtest

Evtest can help you to troubleshoot device input.

Install it using

aptitude install evtest

run it on the device you want to test, e.g. what the touchscreen should default to:

evtest /dev/input/event0

This will show you more information than the crude “cat” test suggested at the beginning of this article. It will also allow you to see keyboard events from your keyboard if you have one attached to the Pi (use /dev/input/event1 if you attached it as first USB device, before a different input device).

 

ts_test:

/dev/touchscreen/ucb1x00: No such file or directory

This error message will show, if you did not set the environment variables. Keep in mind, that you either have to set them manually from each (!) console / user (!) you open or operate as, or permanently in the appropriate location.

Check which environment variables are set by using:

set

you should see

TSLIB_FBDEVICE=/dev/fb1
TSLIB_TSDEVICE=/dev/input/event0

amongst the other output.

 

ts_calibrate:

ts_open: No such file or directory

This error message will show, if you did not set the environment variables. Keep in mind, that you either have to set them manually from each (!) console / user (!) you open or operate as, or permanently in the appropriate location.

Check which environment variables are set by using:

set

you should see

TSLIB_FBDEVICE=/dev/fb1
TSLIB_TSDEVICE=/dev/input/event0

amongst the other output.

 Posted by at 10:37 pm
Oct 222013
 

Die Vorbereitungen laufen bei uns auf Hochtouren, wir haben einige recht interessante Demo-Anwendungen zusammengestellt.

So eine Messe ist immer eine perfekte Gelegenheit, frischen Wind in die Firma hereinzubringen, und kurzfristig die Prioritäten etwas zu verändern – Resultat ist ein neuer Folder-Flyer, auf den ich persönlich recht stolz bin. Die durchgearbeitete Nacht hat sich gelohnt! Erste Einblicke gibt es natürlich auf der Messe, die sie motiviert hat.

Wir laden also recht herzlich ein, uns auf unserem ersten Messestand zu besuchen:

24.10.2013 (dieser Donnerstag) // 19:00 Uhr // München // Eintritt frei!
Münchener Start-up Demo Night
von evobis und WERK1 München

Ort: TonHalle München in der Kultfabrik, Grafinger Strasse 6, 81671 München

d.h. in der Nähe vom Ostbahnhof!! (NICHT am typischen evobis-Ort Nähe Georg-Brauchle-Ring).

Achtung: evobis möchte eine Anmeldung haben – im Zweifelsfall gebt einfach meine alte Mailadresse an, falls ihr eure (verständlicherweise) nicht angeben möchtet.

Bei Rückfragen bin ich für euch natürlich wie gewohnt erreichbar – Max.

See you at startup demo night!

bayern-pi3g-300dpi

Oct 052013
 

IMG_1298

Was kann man mit einer etwas größeren H-Brücke und einem Servo steuern? Richtig ein Auto.

Wenn ihr euch meine Beiträge zum PiFace anschaut, werdet ihr feststellen, dass jedes davon ein Teil eines großen ganzen sind. Ich würde euch allerdings raten, einen anderen Spannungsregulator zu benutzen. Bei meinem tritt immer folgendes Problem auf: wenn der Servo den Strom von der Batterie zieht, bricht kurzzeitig die Spannung am Raspi ein und er startet neu. D.h. mit diesem Spannungsregulator funktioniert zwar der Raspi alleine, aber für eine parallele Ansteuerung eines Motor reicht es nicht aus. Eine alternative könnt ihr euch auf der Seite von Texas Instruments ti.com individuell zusammenstellen.

Das Auto kann jetzt entweder für eine Strecke programmiert, oder aber durch die Tastatur meines PCs (über WLAN und ssh) gesteuert werden.

Ansonsten wünsche ich euch sehr viel Spaß und Erfolg bei euren Projekten!

 Posted by at 7:24 pm
Sep 222013
 

13-09-22 - H-Brücke

INVERTER
Die Pins an den LEDs geben ein Signal aus, wenn sie gegen 5V geschaltet werden. Für die Brückenschaltung wird aber ein Signal, welches gegen die Masse geschaltet wird, benötigt. Zusätzlich ist noch ein gemeinsames Massepotential zwischen der externen Batterie und dem PiFace notwendig. Aus diesen Gründen wird die Inverterschaltung benötigt.

Grundfunktion einer H-Brücke
Die LEDs an den Pins des PiFaces haben nicht nur die Funktion des Leuchtens, sie lassen den Strom auch nur in eine Richtung laufen. Wenn ein Motor sich aber in beide Richtungen drehen soll, wird eine sogenannte H-Brücke benötigt. Die Transistoren schalten eine Seite des Motors zur Masse und die andere zur externen 9V Batterie.

Benötigte Teile:

  • 1x 10Ohm Widerstand (R7)
  • 4x 1kOhm Widerstände (R3, R6, R8, R11)
  • 2x 3,3kOhm Widerstände (R2, R12)
  • 4x 10kOhm Widerstände (R4, R5, R9, R10)
  • 2x 47kOhm Widerstände (R1, R13)
  • 4 PNP-Transistoren (empfohlen 800mA)
  • 4 NPN-Transistoren (empfohlen 800mA)
  • 1x 9V Batterie (ich benutze 6x 1,5V AA-Batterien)
  • 1x 9V Motor

Falls Ihr noch nie mit Transistoren gearbeitet habt, schaut euch den Beitrag über die Bipolartransistoren an.

Viel spaß beim Bauen!

 

Quellen:
http://www.rn-wissen.de/images/thumb/c/c2/Inverter_npn_pnp.png/800px-Inverter_npn_pnp.png

 Posted by at 11:21 am
Aug 202013
 

Die von uns in unseren Raspberry Pi Kits gebündelten Logilink WL0084B v2.0 sind für Raspbian und Raspbmc getestet, und funktionieren “out of the box”. Wir stellen in diesem Blog-Eintrag vor, wie dieser nano WiFi Adapter und andere kompatible Adapter unter Raspbmc für das Funknetzwerk eingestellt werden können.

(Anmerkung: für den TP-Link Wireless N Nano USB Adapter TL-WN725N entwickeln wir aktuell ein Paket, mit dem dieser WLAN Stick ebenfalls unproblematisch einzusetzen sein sollte. In unserem letzten Test funktionierte dieser Stick leider nicht out-of-the box.)

Einrichten

Wir gehen hier von einer “virgin Raspbmc” Installation mit Stand 20. August 2013 aus, an der noch keine Einstellungen für das Funknetzwerk getroffen wurden.

Rufen Sie die Raspbmc Settings (unter dem Menüpunkt Programme) per Klick auf:

screenshot000

Achtung: die Raspbmc Settings benötigen zum Starten in älteren Versionen eine verbundene LAN-Netzwerkverbindung! In unserem aktuellen Test lassen sich die Settings auch ohne LAN Verbindung öffnen.

Öffnen Sie den Reiter “Network Configuration”

screenshot001

Klicken Sie mit der Maus auf die Pfeile neben Network Mode nach oben oder nach unten, um “Wireless (WiFi) Network einzustellen”

screenshot003

Scrollen Sie mit Hilfe der Leiste rechts nach unten, und stellen Sie die SSID Ihres Netzwerkes durch Klick auf die entsprechende Zeile ein:

screenshot004

Es öffnet sich ein Dialog, in dem Sie die SSID einstellen können.

Stellen Sie jetzt Ihren WiFi KEY ein durch Klick auf die entsprechende Zeile.

Bitte beachten Sie: bei einer “normalen” Raspbmc Installation ist eine englische Tastaturbelegung trotz der Sprachauswahl “Deutsch” am Anfang weiter vorhanden. Das führt dazu, dass beispielsweise “z” und “y” vertauscht sind. Falls Ihr WiFI Key solche Zeichen enthält, könnte ein Verbindungsproblem daran liegen.

Wir haben in diesem Artikel beschrieben wie Sie die Sprache für die Tastatur umstellen (Konsolenkentnisse Voraussetzung). Alternativ können Sie auch unser Movie Kit kaufen, in dem diese Voreinstellung bereits für Sie getroffen worden ist. Im Movie Kit sind neben vielen praktischen Komponenten auch MPEG-2 und VC-1 Schlüssel mit enthalten.

Passen Sie ggf. auch den WiFi Security Modus an. WPA/WPA2 sollte in modernen Netzwerken der Standard sein, und kann daher meistens unverändert bleiben.

Sobald Sie fertig sind, aktivieren Sie bitte den Radio Button “Update Now”, und drücken auf OK:

screenshot005

Das System zeigt Ihnen an, dass die Einstellungen übernommen und angewendet wurden.

Jetzt können Sie Ihr LAN Kabel abziehen (falls es noch angeschlossen ist), und die Verbindung sollte über den WiFi Adapter funktionieren. Es ist kein Neustart nötig.

IP Adresse & Fehlersuche

Im eingebauten Systeminfo Menü können Sie sich eine Übersicht über den Status von Raspbmc geben lassen, unter anderem auch die IP Adresse:

screenshot006

screenshot007

Durch Klick auf “Netzwerk” erhalten Sie weiterführende Informationen, z.B. zum aktuell verwendeten DNS Server, und ob das System eine Verbindung zum Internet hat:

screenshot008

Optimization WordPress Plugins & Solutions by W3 EDGE