Stap 3: Software
Er is twee stukken code: één voor de Teensy, en één voor de computer
Teensy
De Teensy code is Arduino compatibel. Wij beheren de Bluetooth-module met de HardwareSerial-bibliotheek
#include
#define MOTOR_PIN 4
HardwareSerial bt = HardwareSerial();
Servo myservo;
char c;
int pos = 0;
char intBuffer [12];
IntData koord = "";
int scheidingsteken = (int) '\n';
VOID Setup
{
Serial.begin(9600);
myservo.attach(MOTOR_PIN); de servo op pin 9 hecht aan de servo-object
BT.begin(9600);
BT.println ('Start!');
myservo.write(130); Kracht van de 'Free' positie bij het opstarten
}
void loop
{
terwijl (bt.available()) {}
delay(3);
int ch = bt.read();
Als (ch -1 ==) {}
Afhandelen van fout
Serial.println ("geen gegevens");
}
anders als (ch == scheidingsteken) {}
Serial.println ("scheidingsteken -> break");
breken;
}
else {}
intData += (char) ch;
}
}
Als (intData.length() > 0) {}
Lees gegevens kopiëren naar een char-array voor gebruik door atoi
Omvatten van de kamer voor de null-terminator
int intLength = intData.length() + 1;
intData.toCharArray (intBuffer, intLength);
Initialiseren van intData voor gebruik volgende keer rond de lus
intData = "";
ASCII-gecodeerde geheel getal converteren naar een int
int pos = atoi(intBuffer);
Als ((pos > 0) & & (pos < = 200)) {}
Serial.Print ("Ga naar pos:");
Serial.println(int(POS));
myservo.write(POS);
POS = 200;
}
}
}
Bureaublad
Ik heb bouwde een kleine app in Python / Gtk, met behulp van de bluetooth librairy. Het is de rn onder Linux box.
Ik stuurde de servo positie handmatig van de python-code. Mijne was 130 voor 'Free' positie, 70 voor 'Werk' en '25' voor 'Phone'. U kunt met behulp van een seriële app (zoals cutecom) kalibreren.
U moet uw Bluetooth-module MAC adres invoegen. U kunt het opvragen met hcitool Commando
gebruiker > hcitool scannen
Scannen...
00:xx:xx:xx:12:80 HC-05
gebruiker >
We gebruiken de RFCOMM, moeten wij opstelling de linuxdoos
gebruiker > /etc/bluetooth/rfcomm.conf van de kat
#
# RFCOMM configuratiebestand.
#
rfcomm0 {}
binden ja;
apparaat 00:13:03:19:12:80;
kanaal 1;
commentaar van de "BT-001";
}
gebruiker >
gebruiker > kat/var/lib/bluetooth/< your_BT_adapter_addr > / pincodes
00:13:03:19:12:80 1234
gebruiker >