Tillgänglighetsindikator (3 / 4 steg)
Steg 3: programvara
Det finns två bitar av kod: en för Teensy och en för datorn
Teensy
Teensy koden är Arduino kompatibel. Vi hantera Bluetooth-modulen med HardwareSerial biblioteket
#include
#define MOTOR_PIN 4
HardwareSerial bt = HardwareSerial();
Servo myservo;
char c;
int pos = 0;
char intBuffer [12].
String intData = "";
int avgränsare = (int) "\n";
void setup()
{
Serial.BEGIN(9600);
myservo.attach(MOTOR_PIN); tillmäter objektet servo servo på pin 9
BT.BEGIN(9600);
BT.println ("Start!");
myservo.write(130); Tvinga "Gratis" position vid start
}
void loop()
{
samtidigt (bt.available()) {
Delay(3);
int ch = bt.read();
om (ch == -1) {
Hantera fel
Serial.println ("inga Data");
}
annars om (ch == avgränsare) {
Serial.println ("avgränsare -> break").
bryta;
}
annat {
intData += (char) ch;
}
}
om (intData.length() > 0) {
Kopiera Läs data till en char matris för användning av atoi
Inkludera rum för null terminator
int intLength = intData.length() + 1.
intData.toCharArray (intBuffer, intLength);
Initiera intData för användning nästa gång loopen
intData = "";
Konvertera ASCII-kodade heltal till ett int
int pos = atoi(intBuffer);
om ((pos > 0) & & (pos < = 200)) {
Serial.Print ("gå till pos:");
Serial.println(int(POS));
myservo.write(POS);
POS = 200.
}
}
}
Desktop
Jag har byggt en liten app i Python / Gtk, med hjälp av bluetooth-librairy. Det är rn under Linux-box.
Jag skickade den servo positionen manuellt från python-koden. Min var 130 för "Gratis" position, 70 för "Arbete" och "25" för "Telefon". Du kan kalibrera den med en seriell app (som cutecom).
Du måste infoga din Bluetooth-modul MAC adress. Du kan få det med hcitool kommandot
användare > hcitool scan
Scanning...
00:XX:XX:XX:12:80 HC-05
användare >
Som vi använder RFCOMM, behöver vi konfigurera linux-box
användare > cat /etc/bluetooth/rfcomm.conf
#
# RFCOMM konfigurationsfil.
#
rfcomm0 {
binda Ja;
enhet 00:13:03:19:12:80;
kanal 1.
kommentera "BT-001";
}
användare >
användare > cat/var/lib/bluetooth/< your_BT_adapter_addr > / åldersklassering
00:13:03:19:12:80 1234
användare >