如何在Eclipse中使用蓝牙通过Android连接到Arduino的RC玩具车的左右功能?

时间:2013-01-03 07:10:17

标签: java android eclipse arduino

我正在试图找出Android中用于使RC玩具车以Android为控制器左右移动的功能的编码。汽车本身连接到Arduino。我也不知道如何在Eclipse中进行Android编码,这可以让Arduino读取/识别Android设备上的按钮点击。这是我到目前为止控制按钮的代码。

    // Connect to Bluetooth Module
    connect_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (connectStat) {
                // Attempt to disconnect from the device
                disconnect();
            }
            else{
                // Attempt to connect to the device
                connect();
            }
        }
    });

    // Toggle Headlights
    led_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (ledStat) {
                Arduino = (byte) (Arduino & 124);
                led_button.setText(R.string.ledON);
                ledStat = false;
            }
            else{
                Arduino = (byte) (Arduino | 128);
                led_button.setText(R.string.ledOFF);
                ledStat = true;
            }
            write(Arduino);
        }
    });

    // 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;
        }
    });
}

我的左右功能都没有,我可以问一下,“Arduino是什么 | 32“在这个Arduino = (byte) (Arduino | 32);意味着什么?32是什么?

1 个答案:

答案 0 :(得分:0)

符号Arduino | 32表示Arduino按位或32表示设置Arduino字节中的第6位,例如:

Arduino      = 10001010
32           = 00010000

Arduino | 32 = 10011010

同样地,&按位和