|
本帖最后由 watersblue 于 2016-1-14 15:31 编辑
本人新手,刚刚开始接触 arduino 准备弄个乐高小车玩玩,刚开始弄就遇到了麻烦。
昨天幸得msold5兄分享资料,才能把arduino端的接收程序弄好。
作小车的计划才能开始走第一步。
之前在论坛里找了找,找到一些手机端蓝牙控制小车的程序,
但发现都是点了向前进的按钮以后,小车会一直向前走。想停下还要
再点一下停止键。
可我想要按住向前键小车就一直向前走。松开就停下。并发送摇杆的力度来控制小车的速度,支持斜上等其它动作。
另外想要手游那种。虚拟遥杆。所以自己开发了一个。
现还有很多不完美的地方。但本人水平有限,能凑和用就凑和用吧。
发上来,兄弟们看看谁有能力改就再完善它。
安卓的手柄控制APK在附件中
以下是arduino代码。多谢msold5兄 - //灯
- int led13 = 13;
- int led12 = 12;
- // 摇杆全局变量
- static int lx = 0;
- static int ly=0;
- static int rx=0;
- static int ry=0;
- static int kg13 =1;
- static int kg12=0;
- static int totjs =0;
- void setup() {
- pinMode(led13, OUTPUT);//定义灯接口为输出接口
- pinMode(led12, OUTPUT);
- Serial.begin(9600);
- totjs =0;
- }
- void loop() {
- while (Serial.available() <= 0){
- totjs =totjs +1;
- delay(1);
- if( (totjs % 100) == 0 ){
- doit();
- }
- }
- String comdata = "";
- while (Serial.available() > 0)
- {
- char temp = char(Serial.read());
- if(temp == '&'){
- checkstring(comdata);
- comdata = "";
- }else{
- if(comdata!= ""){
- comdata+=temp;
- }else{
- if(temp == '$'){
- comdata+=temp;
- }
- }
- }
- delay(2);
- }
- }
- static void checkstring (String val){
- if((val.length() ==11 || val.length() ==36) && val.indexOf("$")>-1){
- String fls = val.substring(2,4);
- if(fls=="kg") setKg(val);
- if(fls == "yg") setJoy(val);
- }
- }
- static void setJoy(String msg){
- lx = msg.substring(8,8+4).toInt();
- ly = msg.substring(16,16+4).toInt();
- rx = msg.substring(24,24+4).toInt();
- ry = msg.substring(32,32+4).toInt();
- }
- static void setKg(String msg){
-
- String kgnum = msg.substring(5,7);
- if(kgnum == "13"){
- if(msg.substring(8,11)=="opn") kg13=1;
- if(msg.substring(8,11)=="cls") kg13=0;
- }
- if(kgnum == "12"){
- if(msg.substring(8,11)=="opn") kg12=1;
- if(msg.substring(8,11)=="cls") kg12=0;
- }
- if(kg13 ==1) digitalWrite(led13, HIGH);
- if(kg13 ==0) digitalWrite(led13, LOW);
- }
- static void doit(){
- // 动作
- }
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|