Étape 3: logiciel
Il y a deux morceaux de code : un pour le Teensy et l’autre pour l’ordinateur
Teensy
Le code Teensy est compatible Arduino. Nous gérons le module Bluetooth avec la bibliothèque HardwareSerial
#include
#define MOTOR_PIN 4
HardwareSerial bt = HardwareSerial() ;
Servo myservo ;
char c ;
int pos = 0 ;
char intBuffer [12] ;
String intData = "" ;
délimiteur d’int = (int) '\n' ;
void setup()
{
Serial.Begin(9600) ;
myservo.Attach(MOTOR_PIN) ; attache le servo sur la broche 9 à l’objet de servo
BT.Begin(9600) ;
BT.println ("Start!!") ;
myservo.Write(130) ; Forcer la position « Libre » au démarrage
}
void loop()
{
alors que {(bt.available())
Delay(3) ;
ch int = bt.read() ;
Si (ch == -1) {}
Gérer l’erreur
Serial.println ("aucune donnée") ;
}
ElseIf (ch == délimiteur) {}
Serial.println ("délimiteur -> Pause") ;
rupture ;
}
else {}
intData += (char) ch ;
}
}
Si (intData.length() > 0) {}
Copier des données lues dans un tableau de char pour utilisation par atoi
Faire de la place pour la marque de fin null
int intLength = intData.length() + 1 ;
intData.toCharArray (intBuffer, intLength) ;
IntData pour utilisation réinitialisez ensuite fois-ci la boucle
intData = "" ;
Convertir un int entier codé en ASCII
int pos = atoi(intBuffer) ;
Si ((pos > 0) & & (pos < = 200)) {}
Serial.Print ("allez à pos:") ;
Serial.println(int(POS)) ;
myservo.Write(POS) ;
POS = 200 ;
}
}
}
Ordinateur de bureau
J’ai construit une petite application en Python / Gtk, en utilisant la librairie bluetooth. C' est rn sous GNU / Linux.
J’ai envoyé la position du servo manuellement à partir du code python. Le mien était 130 pour poste de « Free », 70 « Travail » et '25' pour « Téléphone ». Vous pouvez calibrer à l’aide d’une application de série (comme cutecom).
Vous devez insérer votre module Bluetooth MAC adresse. Vous pouvez l’obtenir avec la commande hcitool
utilisateur > hcitool scan
Analyse des...
00:XX:XX:XX:12:80 HC-05
utilisateur >
Comme nous utilisons RFCOMM, nous avons besoin de configurer la machine linux
utilisateur > cat /etc/bluetooth/rfcomm.conf
#
# Fichier de configuration RFCOMM.
#
rfcomm0 {}
bind yes ;
appareil 00:13:03:19:12:80 ;
canal 1 ;
Commentaire « BT-001 » ;
}
utilisateur >
utilisateur > cat/var/lib/bluetooth/< your_BT_adapter_addr > / anti-violence
00:13:03:19:12:80 1234
utilisateur >