Het is tamelijk eenvoudig om de K8055 Velleman Kit ook onder Linux te gebruiken.
Zo heb ik een K8055 aangesloten op mijn Low Impact Server waar een OpenSUSE operating systeem op draait.
Mijn Low Impact Server is een oude laptop.
Om met de K8055 te kunnen communiceren heb je een opensource library nodig.
Deze kun je hier downloaden: http://libk8055.sourceforge.net/
Na het downloaden van het, het bundeltje uitpakken met volgend commando:
# tar xfz libk8055.0.4.1.tar.gz
Alles staat in een map src.
We verplaatsen ons naar het mapje en maken de library aan:
# cd src
# make all
gcc -O2 -DDAEMON -DVERSION='"0.4.1"' -Wall -c -o main.o main.c
gcc -O2 -DDAEMON -DVERSION='"0.4.1"' -Wall -c -g -fPIC libk8055.c
gcc main.o libk8055.o -o k8055 -lusb -L/usr/lib -lm
# strip k8055
gcc -o libk8055.so.0.4.1 -lusb -L/usr/lib -lm -shared libk8055.o
ln -sf libk8055.so.0.4.1 libk8055.so
ar rvs libk8055.a libk8055.o
ar: creating libk8055.a
a - libk8055.o
Voor een volledig beschrijving met ook de details over hoe de K8055 kan aangesproken worden, ook als je geen root bent,
bekijk dan de website http://libk8055.sourceforge.net/#intro
Met het commando usb-devices kun je nagaan of de K8055 beschikbaar is.
# usb-devices
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=10cf ProdID=5500 Rev=00.00
S: Manufacturer=Velleman
S: Product=USB K8055
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=(none)
Er kunnen tot vier K8055 aangesloten worden. Met twee jumpers kun je het adres instellen.
Mijn K8055 maakt gebruik van poort 0.
Om de K8055 uit te lezen gebuik ik het meegeleverde test programma:
# ./k8055 -p0
121;0;109;0;0;0
Om te begrijpen wat deze cijfers willen zeggen:
# ./k8055 --help
K8055 version 0.4.1 MrBrain Build
Copyright (C) 2004 by Nicolas Sutre
Copyright (C) 2005 by Bob Dempsey
Copyright (C) 2005 by Julien Etelain and Edward Nys
Copyleft (L) 2005 by Sven Lindberg
Syntax : ./k8055 [-p:(number)] [-d:(value)] [-a1:(value)] [-a2:(value)]
[-num:(number) [-delay:(number)] [-dbt1:(value)]
[-dbt2:(value)] [-reset1] [-reset2] [-debug]
-p:(number) Set board number
-d:(value) Set digital output value (8 bits in decimal)
-a1:(value) Set analog output 1 value (0-255)
-a2:(value) Set analog output 2 value (0-255)
-num:(number) Set number of measures
-delay:(number) Set delay between two measure (in msec)
-dbt1:(value) Set debounce time for counter 1 (in msec)
-dbt2:(value) Set debounce time for counter 2 (in msec)
-reset1 Reset counter 1
-reset2 Reset counter 2
-debug Activate debug mode
Example : ./k8055 -p:1 -d:147 -a1:25 -a2:203
Output : (timestamp);(digital);(analog 1);(analog 2);(counter 1);(counter 2)
Note : timestamp is the number of msec when data is read since program start
Example : 499;16;128;230;9;8
499 : Measure done 499 msec after program start
Om de waarden te begrijpen heb je wat basiskennis van het binair getallen stelsel nodig.
Output : (timestamp);(digital);(analog 1);(analog 2);(counter 1);(counter 2)
Voorbeeld : 499;16;128;230;9;8
- 499 : Meeting werd 499 msec nadat het programma werd opgestart uitgevoerd
- 16 : Digitale input waarde is 10000 (I5=1, alle andere ingangen zijn 0)
- 128 : Analoge 1 input waarde is 128
- 230 : Analoge 2 input waarde is 230
- 9 : Counter 1 waarde is 9
- 8 : Counter 2 waarde is 8
Niets houd je echter tegen om zelf een programma te ontwikkelen dat bij je behoeften aansluit om de K8055 aan te sturen.