BTduino 是利用手機藍芽裝置(Bluetooth)連接 Arduino 的應用程式。此程式現提供數字按鍵模式及遊戲控制器模。往後亦會加入PWM,各種感應器及按鍵配對等功能。使用者需連接藍芽接收裝置如HC06至Arduino。藍芽HC06連接Arduino的設置如下: 1. 藍芽VCC接Arduino 5v或3.3v(視乎所購買的裝置而定) 2. 藍芽GND接Arduino GND 3. 藍芽RXD接Arduino TX(Pin10) 4. 藍芽TXD接Arduino RX(Pin11) // Arduino RX(Pin 11) connect to Bluethooth TX, Arduino TX(Pin 10) connect to Bluethooth RX
Arduino 設定/* btduino2 - Terminal Mode - by David Chung*/#include
SoftwareSerial myBT(11, 10);const int ledPin = 13;String inCode = "";boolean endCode = false;
void setup() { Serial.begin(9600); myBT.begin(9600); pinMode(ledPin, OUTPUT); inCode.reserve(50);}
void loop() { if (myBT.available()) { char incomingChar = myBT.read(); if(incomingChar == ')'){ endCode = true; } else { inCode += incomingChar; } }
if (endCode){ int strEnd = inCode.indexOf(')'); String myString = inCode.substring(0, strEnd);
Serial.print("Incoming : "); Serial.println(myString); if(myString == "on"){ digitalWrite(ledPin, HIGH); myBT.print("LED On"); } if(myString == "off"){ digitalWrite(ledPin, LOW); myBT.print("LED Off"); } inCode = ""; endCode = false; }}
/* btduino2 - GamePad Mode - by David Chung*/#include
SoftwareSerial myBT(11, 10);const int ledPin = 13;int incomingByte = 0;
void setup() { Serial.begin(9600); myBT.begin(9600); pinMode(ledPin, OUTPUT);}
void loop() { if (myBT.available()) { incomingByte = myBT.read(); Serial.println(char(incomingByte)); if(incomingByte == 'L'){ digitalWrite(ledPin, HIGH); } if(incomingByte == 'R'){ digitalWrite(ledPin, LOW); } }}
/* Slider Mode*/#include
SoftwareSerial myBT(11, 10);const int ledPin = 13;String inCode = "";
boolean endCode = false;
void setup() { Serial.begin(9600); myBT.begin(9600); pinMode(ledPin, OUTPUT); inCode.reserve(30);}
void loop() { if (myBT.available()) { char incomingChar = myBT.read(); if(incomingChar == ')'){ endCode = true; } else { inCode += incomingChar; } }
if (endCode){ int comma1 = inCode.indexOf(','); int comma2 = inCode.indexOf(',', comma1 + 1); String Rs = inCode.substring(0, comma1); String Gs = inCode.substring(comma1 + 1, comma2); String Bs = inCode.substring(comma2 + 1);
Serial.print("inCode = "); Serial.print(inCode); Serial.print(" R = "); Serial.print(Rs); Serial.print(" G = "); Serial.print(Gs); Serial.print(" B = "); Serial.println(Bs);
int R = Rs.toInt(); int G = Gs.toInt(); int B = Bs.toInt();
analogWrite(ledPin, R); inCode = ""; endCode = false; }}
/* btduino2 - Orientation Mode - by David Chung*/#include
SoftwareSerial myBT(11, 10);const int ledPin = 13;String inCode = "";boolean endCode = false;
void setup() { Serial.begin(9600); myBT.begin(9600); pinMode(ledPin, OUTPUT); inCode.reserve(30);}
void loop() { if (myBT.available()) { char incomingChar = myBT.read(); if(incomingChar == ')'){ endCode = true; } else { inCode += incomingChar; } }
if (endCode){ int comma1 = inCode.indexOf(','); int comma2 = inCode.indexOf(',', comma1 + 1); String As = inCode.substring(0, comma1); String Ps = inCode.substring(comma1 + 1, comma2); String Rs = inCode.substring(comma2 + 1);
Serial.print("inCode = "); Serial.print(inCode); Serial.print(" Azimuth = "); Serial.print(As); Serial.print(" Pitch = "); Serial.print(Ps); Serial.print(" Roll = "); Serial.println(Rs);
int A = As.toInt(); int P = Ps.toInt(); int R = Rs.toInt();
inCode = ""; endCode = false; }}
VERSION HISTORY
- Version 1.7 posted on 2015-11-30
修正Orientation Mode輸出值
Program Details
- Category: System Utilities > System Maintenance
- Publisher: Chung Siu Wing, David
- License: Free
- Price: N/A
- Version: 1.7
- Platform: android