Installation K8055

Script d’installation automatique de la carte K8055

Bonjour

Après plusieurs installations à distances sur différentes machines de personnes ne s’en sortant malheureusement pas avec l’installation de la carte Velleman K8055 j’ai décidé de scripter un peu la chose.

Je n’ai toujours pas la prétention d’être un dieu en anglais ni en programmation donc si voyez des choses à corriger n’hésitez pas à me le mentionner je tacherais de le modifier.

Ce script n’est malheureusement valable que pour Ubuntu et Debian mais si toutefois vous connaissez la marche à suivre pour l’installer sur une autre distribution je me ferais un joie de l’ajouter.

Vous trouverez ce script en bas de cette page.

Gérer votre carte simplement via la console avec comme commande un

K8055 *******

Les sorties digitales sont comptées en binaire, c’est à dire que :

la sortie 1 = 1
la sortie 2 = 2
la sortie 3 = 4
la sortie 4 = 8
la sortie 5 = 16
la sortie 6 = 32
la sortie 7 = 64
la sortie 8 = 128

Il vous suffit donc de faire des additions pour activer les sorties.
exemple si nous voulons allumer les sorties 5 – 3 – et 8
il nous suffit de faire 16 + 4 + 128 = 148
pour test faisons donc un :

k8055 -d:148

Et voila vous avez allumé les sorties digitales 3 – 5 et 8

Les éteindre n’est pas nécessaire si par exemple nous voulons simplement allumé les sorties 3 et 5
il nous suffit de faire 4 + 16 = 20

k8055 -d:10

et comme ça hop vous avez éteint la sortie 8 sans couper les autres elles on reçues l’ordre de passer à 1 mais comme elles le sont déjà pas de soucis …

Pour ce qui est de la lecture des entrées analogiques c’est assez aisé aussi il faut pensez à retirer les cavaliers sk2 sk3 pour des mesures c’est un peu mieux sinon vous envoyez du +5V directement en entrée donc mesure OK mais fausses…

faite un

k8055

cette commande vous retournera un

63;0;122;105;0;0

Le 122 est égal à la valeur de l’entrée analogique 1 graduée de 0 à 255 et la deuxième est la valeur de l’entrée analogique 2 graduée de 0 à 255 aussi.

Après faites vous plaisir plusieurs langages peuvent lire ces valeurs, pour moi il sera en bash.
Mon automate est fonctionnel à l’heure actuelle, un simple script bash est exécuté toute les 5 minutes il sera embelli et agrémenté d’une interface web sous peu si le temps me le permet.

Merci d’avance pour vos retour, négatifs comme positifs.

#!/bin/bash
############################
# Script by Antonin Bollin #
#   http://www.totone.fr   #
#       Version 1.0        #
############################

# Liste des paquets à installer :
# List of packages to install :

# Paquets pour Ubuntu :
# Packages for Ubuntu :
paquetsu="make build-essential gcc libwxgtk2.8-dev libwxgtk2.8-0 libcurl4-gnutls-dev libusb-0.1-4 libusb-1.0-0 libusb-1.0-0-dev libusb-dev libusb++-0.1-4c2 swig swig-doc swig-examples libqwt5-qt4 libqwt5-qt4-dev libqwt5-doc libqwt-dev python-qwt5-qt3 python-qwt5-qt4 python-qwt5-doc python-dev wx2.8-i18n wx2.8-headers wx2.8-examples wx2.8-doc python-numeric python-numeric-ext python-numeric-tutorial"

# Paquets pour Debian :
# Packages For Debian :
paquetsd="make build-essential gcc libwxgtk2.8-dev libwxgtk2.8-0 libcurl4-gnutls-dev libusb-0.1-4 libusb-1.0-0 libusb-1.0-0-dev libhid0 libusb-dev libusb++-0.1-4c2 swig swig-doc swig-examples libqwt5-qt4 libqwt5-qt4-dev libqwt5-doc libqwt-dev python-qwt5-qt3 python-qwt5-qt4 python-qwt5-doc python-dev wx2.8-i18n wx2.8-headers wx2.8-examples wx2.8-doc python-numeric python-numeric-ext python-numeric-tutorial"

# Ubuntu Install
egrep "Ubuntu" /proc/version >/dev/null
		if [ $? -eq 0 ]; then

			echo "Nous sommes en présence d'Ubuntu nous allons donc procéder à l'installation adéquate"
			echo "We are on an Ubuntu Distribution so we will proceed with the proper installation"
			sleep 5

			sudo aptitude autoclean -y && sudo aptitude update && sudo aptitude install $paquetsu -y
			
			echo "Nous créons l'arborescence necessaire à la racine du répertoire utilisateur"
			echo "We create the arborescent in you'r user Home Dir"
			sleep 5
			mkdir /home/$(whoami)/K8055 && mkdir /home/$(whoami)/K8055/libk8055 && mkdir /home/$(whoami)/K8055/k8055gui
			
			echo "Nous téléchargeons les binaires nécessaire au fonctionnement de la carte K8055"	
			echo "We downloading binairies necessary for K8055 card"
			sleep 5
			cd /home/$(whoami)/K8055/libk8055 
			wget http://prdownloads.sourceforge.net/libk8055/libk8055.0.4.tar.gz
			tar -xzvf libk8055.0.4.tar.gz && rm libk8055.0.4.tar.gz
			
			echo "Nous téléchargeons les binaires nécessaire au fonctionnement de l'interface graphique pour la carte K8055"
			echo "We downloading the graphic binary for K8055 card"
			sleep 5
			cd /home/$(whoami)/K8055/k8055gui
			wget http://sites.google.com/site/vellemank8055/k8055gui_v0.1.tar.gz 
			tar -xvzf k8055gui_v0.1.tar.gz && rm k8055gui_v0.1.tar.gz

			echo "Nous compilons les binaires téléchargées à l'étape précédente"
			echo "We compile the binaries previously downloaded"
			sleep 5
			cd /home/$(whoami)/K8055/libk8055/src 
			sleep 3
			make 
			sleep 3
			sudo make install
			sleep 3
			cd /home/$(whoami)/K8055/k8055gui/src 
			make		
			sleep 3
			
			sudo chmod -R 0755 /home/$(whoami)/K8055

			echo "Nous ajoutons la carte K8055 au système"
			echo "We add the K8055 on the system"
			sleep 5
			cd /home/$(whoami)/K8055/libk8055/src
			sudo cp k8055 /bin/k8055
			
			echo "Nous autorisons l'utilisateur lanceur de ce script et lui seul à utiliser la carte k8055"
			echo "We allow the user to launch this script and only use the K8055 card"
			sleep 5
			cd /home/$(whoami)/K8055/libk8055/src
			sed -e 's/root/'$(whoami)'/g' /home/$(whoami)/K8055/libk8055/src/velleman.rules > /home/$(whoami)/K8055/libk8055/src/velleman.rules2
			sudo cp /home/$(whoami)/K8055/libk8055/src/velleman.rules2 /etc/udev/rules.d/velleman.rules

			echo "Nous lançons l'interface graphique vous n'aurez qu'a créer un lanceur ou un raccourci sur votre bureau"
			echo "We launch the GUI you will have to create a launcher or a shortcut on your desktop"
			sleep 5
			echo "le script ce trouve dans /home/$(whoami)/K8055/k8055gui/src et ce nomme k8055gui"
			echo "The script are on /home/$(whoami)/K8055/k8055gui/src and it appoints k8055gui"
			sleep 5
			echo "Des érreurs de lancements peuvent apparaitre je vous laisse googliser l'incident car trop aléatoire en fonction des paquets présent sur la machine"
			echo "Errors can appear launches I'll let you googled the incident as too random based on the packets on the machine"
			sleep 5
			cd /home/$(whoami)/K8055/k8055gui/src
			./k8055gui
		fi


# Debian Install
egrep "Debian" /proc/version >/dev/null
		if [ $? -eq 0 ]; then
			
			if [ $(id -u) -eq 0 ]; then

				echo "Nous sommes en présence de Debian GNU Linux nous allons donc procéder à l'installation adéquate"
				echo "We are in the presence of Debian GNU Linux, so we will proceed with the proper installation"
				sleep 5
				
				read -p "Quel utilisateur utilisera l'automate / Which user will use the controller : " user
					
					egrep "^$user" /etc/passwd >/dev/null	
						if [ $? -eq 0 ]; then
							echo "$user existe nous allons donc continuer"
							echo "$user exist there we will continue"
						else
							echo "$user n'existe pas merci d'utiliser un utilisateur existant ou de le créer"
							echo "$user no thank you to use an existing user or create"
							exit 0
						fi	

				aptitude autoclean -y && aptitude update && aptitude install $paquetsd -y
				
				echo "Nous créons l'arborescence necessaire à la racine de /home"
				echo "We create the arborescent in you'r user Home Dir"
				sleep 5
				mkdir /home/K8055 && mkdir /home/K8055/libk8055 && mkdir /home/K8055/k8055gui
				
				echo "Nous téléchargeons les binaires nécessaire au fonctionnement de la carte K8055"
				echo "We downloading binairies necessary for the K8055 card"
				sleep 5
				cd /home/K8055/libk8055 
				wget http://prdownloads.sourceforge.net/libk8055/libk8055.0.4.tar.gz
				tar -xzvf libk8055.0.4.tar.gz && rm libk8055.0.4.tar.gz
				
				echo "Nous téléchargeons les binaires nécessaire au fonctionnement de l'interface graphique pour la carte K8055"
				echo "We downloading the graphic binary for K8055 card"
				sleep 5
				cd /home/K8055/k8055gui
				wget http://sites.google.com/site/vellemank8055/k8055gui_v0.1.tar.gz 
				tar -xvzf k8055gui_v0.1.tar.gz && rm k8055gui_v0.1.tar.gz
	
				echo "Nous compilons les binaires téléchargées à l'étape précédente"
				echo "We compile the binaries previously downloaded"
				sleep 5
				cd /home/K8055/libk8055/src 
				sleep 3
				make 
				sleep 3
				make install
				sleep 3
				cd /home/K8055/k8055gui/src 
				make		
				sleep 3
				
				chmod -R 0755 /home/K8055
	
				echo "Nous ajoutons la carte K8055 au système"
				echo "We add the K8055 on the system"
				sleep 5
				cd /home/K8055/libk8055/src
				cp k8055 /bin/k8055
				
				echo "Nous autorisons l'utilisateur donné au début de ce script et lui seul à utiliser la carte k8055"
				echo "We allow the user given at the beginning of this script and only use the K8055 card"
				sleep 5
				cd /home/K8055/libk8055/src
				sed -e 's/root/'$user'/g' /home/K8055/libk8055/src/velleman.rules > /home/K8055/libk8055/src/velleman.rules2
				cp /home/K8055/libk8055/src/velleman.rules2 /etc/udev/rules.d/velleman.rules
	
				echo "Nous lançons l'interface graphique vous n'aurez qu'a créer un lanceur ou un raccourci sur votre bureau"
				echo "We launch the GUI you will have to create a launcher or a shortcut on your desktop"
				sleep 3
				echo "le script ce trouve dans cd /home/K8055/k8055gui/src et ce nomme k8055gui"
				echo "The script are on /home/$(whoami)/K8055/k8055gui/src and it appoints k8055gui"
				sleep 3
				echo "Des érreurs de lancements peuvent apparaitre je vous laisse google-iser l'incident car trop aléatoire en fonction des paquets présent sur la machine"
				echo "Errors can appear launches I'll let you googled the incident as too random based on the packets on the machine"
				sleep 5
				cd /home/K8055/k8055gui/src
				./k8055gui
			else
			echo "Désolé seulement root peut éxécuter cette installation"
			echo "Sorry only root can be use this script"
			exit 0
			fi		
		fi

sleep 3
echo "voici le manuel de la k8055, lisible à la demande par un simple : man k8055 ou sur http://libk8055.sourceforge.net "
echo "This is the K8055 manual you see with a man K8055 and you going on : http://libk8055.sourceforge.net "
sleep 3
echo " Amusez vous bien :-)"
echo " Enjoy and Have fun"
sleep 3
echo "The provided command line program offers some options. You can use this program for script languages or just for controlling stuff by hand.

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 address (0-3)
    * -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 measurements
    * -delay:(number) Set delay between two measurements (in msec)
    * -dpt1:(value) Set debounce time for counter 1 (0-7450 in msec)
    * -dpt2:(value) Set debounce time for counter 2 (0-7450 in msec)
    * -reset1 Reset counter 1
    * -reset2 Reset counter 2
    * -debug Activate debug mode

Exemple : 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
Exemple : 499;16;128;230;9;8

    * 499 : Measurement done 499 msec after program start
    * 16 : Digital input value is 10000 (I5=1, all other are 0)
    * 128 : Analog 1 input value is 128
    * 230 : Analog 2 input value is 230
    * 9 : Counter 1 value is 9
    * 8 : Counter 2 value is 8"
	
exit 0