USB Bluetooth Dongle on Raspberry

树莓派用USB蓝牙适配器与Arduino通信

起初用raspberry控制arduino是用的USB数据线,写的是串口程序。
后来觉得用线还是不方便,于是改用蓝牙与arduino通信,串口程序也只需要改个port就行

USB Bluetooth Dongle 淘宝链接

1.Bluetooth Driver :

$ sudo apt-get install bluetooth bluez-utils bluez-compat blueman
$ sudo service bluetooth status

2.Arduino Code:

String val;
int E1 = 5;     //M1 Speed Control
int E2 = 6;     //M2 Speed Control
int M1 = 4;    //M1 Direction Control
int M2 = 7;    //M1 Direction Control

void setup() {
  Serial1.begin(115200);
  pinMode(M1, OUTPUT);
  pinMode(E1, OUTPUT);
  pinMode(M2, OUTPUT);
  pinMode(E2, OUTPUT);
}

void loop() {

  while (Serial1.available() > 0)
  {
    val += char(Serial1.read());
    delay(2);
  }

  if (val.length() > 0)
  {
    if (val.equals("1") == true)
    {
      //Forward
      digitalWrite(M1, HIGH);
      digitalWrite(M2, HIGH);
      analogWrite(E1, 150);
      analogWrite(E2, 150);
    }
    else if (val.equals("2") == true)
    {
      //Left
      digitalWrite(M1, HIGH);
      digitalWrite(M2, LOW);
      analogWrite(E1, 150);
      analogWrite(E2, 150);
    }
    else if (val.equals("3") == true)
    {
      //Stop
      analogWrite(E1, 0);
      analogWrite(E2, 0);
    }
    else if (val.equals("4") == true)
    {
      //Right
      digitalWrite(M1, LOW);
      digitalWrite(M2, HIGH);
      analogWrite(E1, 150);
      analogWrite(E2, 150);
    }
    else if (val.equals("5") == true)
    {
      //Backward
      digitalWrite(M1, LOW);
      digitalWrite(M2, LOW);
      analogWrite(E1, 150);
      analogWrite(E2, 150);
    }
    val = "";
  }
}

3.bluetooth pair and serial port from terminal on linux

a.Device Pairing

$ sudo apt-get install bluez bluez-tools
$ hciconfig
$ hcitool scan
$ bluez-simple-agent xx:xx:xx:xx:xx #the bluetooth device you want to pair

In /etc/bluetooth/rfcomm.conf:

rfcomm 0 {
    bind no;
    device xx:xx:xx:xx:xx;
    channel 1;
    comment "Serial Port";
}
$ sudo rfcomm0 connect 0

4.Python Code

import serial

port = "/dev/rfcomm0"
stop = "3"
ser = serial.Serial(port,9600)
ser.write(stop)
ser.flushInput()

tip: Raspberry Pi: run shell at startup

#!/bin/bash
#file path:/home/pi/mystart.sh
cd /home/pi/flasky
sudo rfcomm0 connect 0 & sudo python hello.py runserver - 0.0.0.0 -p 80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值