AreyouanArduinoenthusiastthatalwayswantedtoremotecontrolyourprojectsviayourAndroidphonebutdidn'thavethetime,thepatienceortheknowledgetobuildanAndroidBluetoothController?ThenARDUINOBLUETOOTHCONTROLLERiswhatyouneed!
ThisandroidapplicationcanestablishaconnectionwithanyArduino/microcontrollerprojectthatinvolvesabluetoothmodule!ItallowstheusertosetaUUIDofhisownbluetoothmoduleinordertoconnecttheandroidapplicationwithhisprojects!!!ThedefaultUUIDthatcomeswiththisapplicationisfortheHC-06WirelessSerial4PinBluetoothRFTransceiverModuleRS232.(IfyouusedefaultUUIDinordertopairtheBTmodulewithyoursmartphoneforthefirsttime,youwillhavetogivea4-digitpassword.Thispasswordis'1234'.)
Theapplicationiscomprisedof4CommandModes:
1.VehicleMode:Bypressingthe"joystick"buttontheusercanremotecontrolavehiclewithspecificgestures.Fortheinterpretationofgesturestocommands,theapplicationusesthebuilt-inaccelerometersensorofthesmartdevice.Thereare8differentgesturesavailable(FRONT,BACK,LEFT,RIGHT,FRONT_LEFT,FRONT_RIGHT,BACK_LEFT,BACK_RIGHT).
Youcansetthesegestureswithyourowncustomcommandsthroughthethemenubutton"SetCommands".
Additionally,thereisaSTOPandanANDROIDbuttonthatcanbeassignedwithcustomcommandsaswell.
***IMPORTANT***Themodeprovidesviathemenuoptionstheoptiontochangetheorientationofaccelerometeraxises(X->Y,Y->X)inordertooperateproperlyinAndroidphoneswithdifferentdefaultorientation.
Moreover,menuoptionsprovideasensitivitychangebuttontomodifythepointwheretheappcatchesthegestureeventsforthismode.Asthetitlesuggests,thismodeisspecificallydesignedtoremotecontrolavehiclewhichusesabluetoothmoduleandamicrocontroller.
2.FaderMode:Thismodeprovidestheuserwithafader-seekbarthatcansendcommandsfrom0-9andallowtheusertoexperimentwithservos,leds,motorsandmanymore.
3.ControllerMode:Thismodeprovidesastandardcontrollerlayoutwith10buttonsintotalthatcanbeassignedwithcustomcommands.Thearrowbuttonsarespecificallydesignedtosendcommandscontinuouslywhilepressed,inordertosimulateanactualcontroller.
4.TerminalMode:Thismodeprovidesaterminal-likeinterfaceinwhichtheusercantypeandsendanindividualormultiplecommandswhichwillexecutesequentially.SinceArduinoserialportreceivesonebyteatatime,iftheusertypesastringintheinputtextfield,theapplicationdividesthatstringintocharactersandsendsthemonebyonetoArduino.Itshouldbenotedthatspacesoremptystringsareskipped.
Allapplicationsettingsandcommandsarepermanentlystoredandcanbeaccessedandmodifiedanytimeaccordingtoyourneeds.
##################################################################################################
ArduinoSideCode
BelowcodeisanexampleofhowArduinocan"listen"thecommandsthatreceivesthroughthisAndroidapplication.
charincomingByte;//variabletoreceivedatafromtheserialport
voidsetup(){
Serial.begin(9600);//startserialcommunicationat9600bps
}
voidloop(){
if(Serial.available()>0)//ifdataisavailabletoread
{
incomingByte=Serial.read();//readitandstoreitin'incomingByte'
}
}
____________________________________
©'Arduino'isatrademarkofArduinoteam
____________________________________