编码的左,右功能遥控车用BT和Arduino的控制? [英] Coding the left and right function for RC car controlled by BT and arduino?

查看:141
本文介绍了编码的左,右功能遥控车用BT和Arduino的控制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是$ C $词用于前向和反向

  //向前行驶

 forward_button.setOnTouchListener(新View.OnTouchListener(){

        @覆盖
        公共布尔onTouch(视图V,MotionEvent事件){
            如果((event.getAction()== MotionEvent.ACTION_DOWN)|(event.getAction()== MotionEvent.ACTION_MOVE)){
                forward_button.set pressed(真正的);
                Arduino的=(字节)(Arduino的| 16);
                写(Arduino的);
                返回true;

            }否则,如果(event.getAction()== MotionEvent.ACTION_UP){
                forward_button.set pressed(假);
                Arduino的=(字节)(Arduino的&安培; 236);
                写(Arduino的);
                返回true;
            }
            forward_button.set pressed(假);
            返回false;
        }
    });

   //备份

 reverse_button.setOnTouchListener(新View.OnTouchListener(){

        @覆盖
        公共布尔onTouch(视图V,MotionEvent事件){
            如果((event.getAction()== MotionEvent.ACTION_DOWN)|(event.getAction()== MotionEvent.ACTION_MOVE)){
                reverse_button.set pressed(真正的);
                Arduino的=(字节)(Arduino的| 32);
                写(Arduino的);
                返回true;

            }否则,如果(event.getAction()== MotionEvent.ACTION_UP){
                reverse_button.set pressed(假);
                Arduino的=(字节)(Arduino的&安培; 220);
                写(Arduino的);
                返回true;
            }
            reverse_button.set pressed(假);
            返回false;
        }
    });
 

我想用相同的方式用于左和右功能如;

  left_button.setOnTouchListener(新View.OnTouchListener(){

        @覆盖
        公共布尔onTouch(视图V,MotionEvent事件){
            如果((event.getAction()== MotionEvent.ACTION_DOWN)|(event.getAction()== MotionEvent.ACTION_MOVE)){
                left_button.set pressed(真正的);
                Arduino的=(字节)(Arduino的| 8);
                写(Arduino的);
                返回true;

            }否则,如果(event.getAction()== MotionEvent.ACTION_UP){
                left_button.set pressed(假);
                Arduino的=(字节)(Arduino的&安培; 244);
                写(Arduino的);
                返回true;
            }
            left_button.set pressed(假);
            返回false;
        }
    });
 

是做什么的?这种单向

解决方案

  mLButton =(按钮)findViewById(R.id.button_l);
        mLButton.setOnClickListener(新OnClickListener(){
            公共无效的onClick(视图v){
                //发送一条消息使用编辑文本小窗口的内容
                字符串消息=D+左+,+站+\ N的;
                的sendMessage(消息);
            }
        });

        });
        mRButton =(按钮)findViewById(R.id.button_r);
        mRButton.setOnClickListener(新OnClickListener(){
            公共无效的onClick(视图v){
                //发送一条消息使用编辑文本小窗口的内容
                字符串消息=D+右+,+站+\ r \ N的;
                的sendMessage(消息);
            }
 

下面是一个例子。

Here is the code i use for the forward and reverse

// Drive forward

 forward_button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if ((event.getAction() == MotionEvent.ACTION_DOWN) | (event.getAction() == MotionEvent.ACTION_MOVE)) {
                forward_button.setPressed(true);
                Arduino = (byte) (Arduino | 16);
                write(Arduino);
                return true;

            }else if (event.getAction() == MotionEvent.ACTION_UP) {
                forward_button.setPressed(false);
                Arduino = (byte) (Arduino & 236);
                write(Arduino);
                return true;
            }
            forward_button.setPressed(false);
            return false;
        }
    });

   // Back up

 reverse_button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if ((event.getAction() == MotionEvent.ACTION_DOWN) | (event.getAction() == MotionEvent.ACTION_MOVE)) {
                reverse_button.setPressed(true);
                Arduino = (byte) (Arduino | 32);
                write(Arduino);
                return true;

            }else if (event.getAction() == MotionEvent.ACTION_UP) {
                reverse_button.setPressed(false);
                Arduino = (byte) (Arduino & 220);
                write(Arduino);
                return true;
            }
            reverse_button.setPressed(false);
            return false;
        }
    });

I am thinking of using the same way for the left and right function such as;

   left_button.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if ((event.getAction() == MotionEvent.ACTION_DOWN) | (event.getAction() == MotionEvent.ACTION_MOVE)) {
                left_button.setPressed(true);
                Arduino = (byte) (Arduino | 8);
                write(Arduino);
                return true;

            }else if (event.getAction() == MotionEvent.ACTION_UP) {
                left_button.setPressed(false);
                Arduino = (byte) (Arduino & 244);
                write(Arduino);
                return true;
            }
            left_button.setPressed(false);
            return false;
        }
    });

Is this one way of doing it??

解决方案

   mLButton = (Button) findViewById(R.id.button_l);
        mLButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Send a message using content of the edit text widget
                String message = "D," + left + "," + stop + "\n";
                sendMessage(message);
            }
        });

        });
        mRButton = (Button) findViewById(R.id.button_r);
        mRButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                // Send a message using content of the edit text widget
                String message = "D," + right + "," + stop + "\r\n";
                sendMessage(message);
            }

Here is one example.

这篇关于编码的左,右功能遥控车用BT和Arduino的控制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆