Ceci est une ancienne révision du document !
Table des matières
Vélos interactifs
Pour Utiliser le boîtier Enttec sous Linux, il faut autoriser l'utilisateur principal à accéder au port USB. Il faut saisir dans un terminal la commande suivante :
sudo nano /etc/udev/rules.d/11-usbuser.
Puis, il faut écrire à l'intérieur la règle
rulesACTION=="add", SUBSYSTEMS=="usb", GROUP:="usbuser", MODE:="0666"
Sauvegarde le tout avec le raccourci Ctrl + X ; et reboote le PC.
Create the file /etc/udev/rules.d/10-ftdi.rules
Write on it:
SUBSYSTEM==“usb_device”, GROUP=“dialout”, MODE=“0664”
SUBSYSTEM==“usb”, ENV{DEVTYPE}==“usb_device”, GROUP=“dialout”, MODE=“0664”
Installation du driver FTDI
Tous les boîtiers ENTTEC utilisent une puce FTDI pour la communications à travers le port USB. Voici la procédure pour l'installer sur une RPI4 :
wget https://ftdichip.com/wp-content/uploads/2022/07/libftd2xx-arm-v8-1.4.27.tgz tar -xvf libftd2xx-arm-v8-1.4.27.tgz sudo cp release/build/lib* /usr/local/lib cd /usr/local/lib ls sudo ln -s libftd2xx.so.1.4.27 libftd2xx.so sudo chmod 0755 libftd2xx.so.1.4.27
Brancher le boîtier ENTTEC
sudo rmmod ftdi_sio sudo rmmod usbserial cd cd release/examples make cd EEPROM/read ls sudo ./read
Installation du addon ofxGenericDmx
Installation de la librairie ftdi :
sudo apt-get install libftdi-dev
Pour certaines distributions, il pourrait être nécessaire d'autoriser l'utilisateur à accéder à l'interface via son port USB. Des solutions diverses sont détaillées ici
wget https://github.com/woutgg/ofxGenericDmx/archive/refs/heads/master.zip cd openFrameworks/addons/ofxGenericDmx/ofxGenericDmx_EnttecDmxUsbProExample make startx ./bin/ofxGenericDmx_EnttecDmxUsbProExample -- -s off
Si vous souhaitez partir d'un projet vierge, il faudra ajouter des instructions pour le linker lors de la compilation : Dans le fichier config.make du projet :
sudo nano config.make
Vérifiez les lignes suivantes :
PROJECT_LDFLAGS=-Wl,-rpath=./libs PROJECT_LDFLAGS+=-lftdi
Code
// g++ -Wall -o compteur compteur.c -l wiringPi // ./compteur #include <wiringPi.h> #include <stdio.h> #include <stdlib.h> #define COMPTEUR 26 #define TEMOIN 19 int drapeau = 0; int main() { wiringPiSetupGpio(); pinMode (COMPTEUR, INPUT); pullUpDnControl(COMPTEUR, PUD_UP); pinMode (TEMOIN, OUTPUT); digitalWrite(TEMOIN, LOW); while(1) { if ((digitalRead(COMPTEUR) == LOW) && (drapeau == 0)) { digitalWrite(TEMOIN, HIGH); delay(20); drapeau = 1; } if (digitalRead(COMPTEUR) == HIGH) { drapeau = 0; } } return 0; }
