Tuto : Utilisation des SBrick avec Linux
Posté : 05 août 2016 13:02
Bonjour à tous,
Je vous fais un petit tuto basique sur l'utilisation de la Sbrick avec un linux.
La source des informations est ici https://social.sbrick.com/wiki/view/pag ... nt-scripts
Vous aurez besoin :
Voici un petit script vous permettant de tester cela.
Il lance le moteur par palier de 5% de puissance.
Renseigner les premières lignes qui correspond à votre matériel : HCI, MAC_ADDRESS, PORT
Je posterai utltérieurement mes scripts réalisés pour la Detection des SBrick et la gestion avec la wiimote ainsi que les liens qui m'ont été utiles pour les réaliser.
Ce tuto explique dans les grandes lignes comment faire pour controler la SBrick depuis un linux.
Si vous rencontrez des difficultés sur le bluetooth n'hésitez pas à chercher sur le net des solutions, c'est assez bien documenté.
Je précise que je ne ferai pas de support sur ce tuto! D'une par manque de temps, de deux car on apprend mieux en cherchant sois-même
Je vous fais un petit tuto basique sur l'utilisation de la Sbrick avec un linux.
La source des informations est ici https://social.sbrick.com/wiki/view/pag ... nt-scripts
Vous aurez besoin :
- - Sbrick (of course...)
- Un ordi avec un linux installé dessus (vous pouvez utiliser une clé bootable, un rapsberry, etc.)
- Une interface Bluetooth Low Energy 4.0 (Possible qu'il soit intégré à votre Pc Portbale s'il est recent, perso j'ai pris un Asus https://www.asus.com/fr/Networking/USBBT400/, ca se trouve à 15€)
- Pour vérifier si vous l'avez déjà ou s'il est bien installé :
Lancer la commande :Vous devriez voir une ligne "lescan Start LE scan" LE pour Low EnergyCode : Tout sélectionner
hcitool --help
- Vous devriez trouver une ligne "HCI Version: 4.0", noter le nom du hci associé, exemple : hci1
Code : Tout sélectionner
hciconfig -a
- Allumer votre SBrick
Lancer la commande (remplacer hci1 par le numéro précédement trouvé)Noter l'adresse MAC de votre SBrick, exemple : 00:07:80:2E:2A:5DCode : Tout sélectionner
hcitool -i hci1 lescan
- Pour cela il faut utiliser gatttool
Voici la commande type :Code : Tout sélectionner
gatttool -b 00:07:80:2E:2A:5D -i hci1 --char-write --handle=0x0025 --value=01000080
Ici la valeur signifie: RUN (01) + Port A (00) + Sens (00) + Puissance 50% (80), on fait tourner le moteur A dans le sens horaire à 50% de la puissanceCode : Tout sélectionner
-b <MAC_ADDRESS> : Adresse de votre SBrick -i hci1 : Nom de votre interface bluetooth 4.0 Low Energy --char-write : Indique le type de de commande Bluetooth --handle=0x0025 : Indique sur quel slot de la SBrick on veut communiquer, 0x0025 est celui du controlleur moteur --value=01000080 : valeur que l'on envoie à la SBrick, composé de 4 octets, ici : 01 + 00 + 00 + 80
Actions :- 01 = RUN
00 = STOP
- A = 00
B = 01
C = 02
D = 03
- Sens horaire = 00
Sens anti horaire = 01
- Il y a 256 paliers de puissance (1 octet = 8 bits = 2 exposant 8 = 256). La valeur indiquée est en hexadécimal.
Vous pouvez utiliser la commande suivante pour convertir (je pense que l'on est plus familié avec le décimal ou le pourcentage...)/!\ Il y a un bug dans les premiers firmware, la puissance 100% ne fonctionne pasCode : Tout sélectionner
# Puissance compris entre 0 et 255 puissance=128 echo "obase=16; $puissance" | bc # Puissance en pourcentage de 0 à 100 pourcentage=50 puissance=$(echo "256*$puissance/100" | bc) echo "obase=16; $puissance" | bc
- 01 = RUN
Voici un petit script vous permettant de tester cela.
Il lance le moteur par palier de 5% de puissance.
Renseigner les premières lignes qui correspond à votre matériel : HCI, MAC_ADDRESS, PORT
Code : Tout sélectionner
# Mettre la valeur de votre interface Bluetooth. Ex:hci1
HCI="hciX"
# Mettre l'adresse MAC de votre SBrick
MAC_ADDRESS="xx:xx:xx:xx"
# Mettre le port sur lequel votre moteur est connecté : 00=A, 01=B, 02=C ou 03=D
PORT="00"
# Mettre 00 pour sens horaire, 01 pour sens anti-horaire
SENS="00"
#Variable d'init
pourcentage=0
ACTION=01
while [ $pourcentage -le 100 ]; do
echo "Run port $PORT a ${pourcentage}%"
puissance=$(echo "256*$pourcentage/100" | bc)
puissanceHexa=$(echo "obase=16; $puissance" | bc)
gatttool -b $MAC_ADDRESS -i $HCI --char-write --handle=0x0025 --value=${ACTION}${PORT}${SENS}${puissanceHexa}
sleep 1
((pourcentage=pourcentage+5))
done
# Stop du moteur
ACTION=00
gatttool -b $MAC_ADDRESS -i $HCI --char-write --handle=0x0025 --value=${ACTION}${PORT}${SENS}${puissanceHexa}
Ce tuto explique dans les grandes lignes comment faire pour controler la SBrick depuis un linux.
Si vous rencontrez des difficultés sur le bluetooth n'hésitez pas à chercher sur le net des solutions, c'est assez bien documenté.
Je précise que je ne ferai pas de support sur ce tuto! D'une par manque de temps, de deux car on apprend mieux en cherchant sois-même