2017-10-07 11:50:42 changer_WE 阅读数 5838
  • 少儿编程:Scratch中的Arduino开发

    本门课程将介绍如何以Scratch的编程方式进行Arduino开发(需购买硬件,详情可以参考教程内容)。 课程包含16个小模块的调用,并以案例形式发散思维,对应生活中随处可见的场景。(如红绿灯、楼道声控开灯,火焰报警、电动车碰撞报警、触摸传感器开启灯/风扇、高温开启风扇、天黑打开路灯,厕所冲水设备等) 每节正式课程包含连接硬件和代码编写两个环节,如果是孩子学习,请家长做好监督看护工作。 我相信,编程对孩子的思维培养和好奇心的激发是确实存在益处的,希望每一个观众能够有所收获。 课程适合人群:对编程感兴趣的青少年;有意培养子女编程兴趣的家长;有意从事少儿编程相关工作的朋友。

    805 人正在学习 去看看 王全

本人比较懒,纯文本

首先材料,L298N,步进电机,杜邦线,HC-05蓝牙模块,arduino模块

制作智能小车的连线部分网上都有,

这里只说蓝牙部分,首先你要依照网上所说的把hc-05进入AT调成从模式,别的随意

然后就是arduino与蓝牙模块的连接:5v---5v ,GND----GND,tx---rx,rx---tx

然后就是代码了:

#define IN1 2
#define IN2 4
#define IN3 5
#define IN4 7
#define ENA 3
#define ENB 6
#define TURNSPEED 100
#define RUNSPEED 60
void go_forward();
void turn_left();
void turn_right();
void go_back();
void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  Serial.begin(9600); 
  Serial.println("BT is ready!");
}
  int val;
void loop() {
  if (Serial.available()) {
  val = Serial.read();
  switch(val){
  case '0':
  stop_s();delay(100);break;
  case '1':
  go_forward(RUNSPEED,RUNSPEED);delay(100);break;
  case '2':
  turn_left(TURNSPEED,TURNSPEED);delay(100);break;
  case '3':
  go_back(RUNSPEED,RUNSPEED);delay(100);break;
  case '4':
  turn_right(TURNSPEED,TURNSPEED);delay(100);break;
  default:
  Serial.println("error");delay(100);break;
           }
    }
}
void stop_s(){
  digitalWrite(IN1,LOW);
  digitalWrite(IN2,LOW);
  digitalWrite(IN3,LOW);
  digitalWrite(IN4,LOW);    
  }
void go_forward(int L,int R){
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
  analogWrite(ENA, L);//control speed
  analogWrite(ENB, R);//control speed
}
//the connection of my L298N is wrong
//IN1,IN2 is right,IN3,IN4 is left;
void turn_left(int L,int R){
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}
void turn_right(int L,int R){
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}
void go_back(int L,int R){
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
  analogWrite(ENA, L);
  analogWrite(ENB, R);
}



手机上下载蓝牙串口spp,键盘的界面进行设置信号输入到arduino的信号按钮,呵呵

在我尝试的过程中发现使用使用if语句达不到效果必须要使用case语句。

还有我的电机的连线是反的,IN1和IN2控制的是右边的电机。

最后感谢贴吧和CSDN的大佬们,也希望这篇文章对小伙伴们也有所帮助。




 

 

 

2019-01-18 18:04:17 xiang_123_ 阅读数 1967
  • 少儿编程:Scratch中的Arduino开发

    本门课程将介绍如何以Scratch的编程方式进行Arduino开发(需购买硬件,详情可以参考教程内容)。 课程包含16个小模块的调用,并以案例形式发散思维,对应生活中随处可见的场景。(如红绿灯、楼道声控开灯,火焰报警、电动车碰撞报警、触摸传感器开启灯/风扇、高温开启风扇、天黑打开路灯,厕所冲水设备等) 每节正式课程包含连接硬件和代码编写两个环节,如果是孩子学习,请家长做好监督看护工作。 我相信,编程对孩子的思维培养和好奇心的激发是确实存在益处的,希望每一个观众能够有所收获。 课程适合人群:对编程感兴趣的青少年;有意培养子女编程兴趣的家长;有意从事少儿编程相关工作的朋友。

    805 人正在学习 去看看 王全

一、蓝牙模块与Arduino
主要分两步,第一步设置蓝牙模块(AT模式),如,设置成从动任何设备可连接,设置名称及密码等;第二步,编写相应的控制程序;
HC05(ZS-040)蓝牙模块与手机连接参考链接参考1

蓝牙模块AT设置相关参考3

蓝牙模块与手机进行通信参考2

以上几个参考链接,即可完成用手机蓝牙与arduino的通信,并控制对应舵机与led灯; (未在ubuntu上运行,待后续。。)

2015-07-26 13:38:39 ling3ye 阅读数 22026
  • 少儿编程:Scratch中的Arduino开发

    本门课程将介绍如何以Scratch的编程方式进行Arduino开发(需购买硬件,详情可以参考教程内容)。 课程包含16个小模块的调用,并以案例形式发散思维,对应生活中随处可见的场景。(如红绿灯、楼道声控开灯,火焰报警、电动车碰撞报警、触摸传感器开启灯/风扇、高温开启风扇、天黑打开路灯,厕所冲水设备等) 每节正式课程包含连接硬件和代码编写两个环节,如果是孩子学习,请家长做好监督看护工作。 我相信,编程对孩子的思维培养和好奇心的激发是确实存在益处的,希望每一个观众能够有所收获。 课程适合人群:对编程感兴趣的青少年;有意培养子女编程兴趣的家长;有意从事少儿编程相关工作的朋友。

    805 人正在学习 去看看 王全

 

 

通过手机进行通信是可以实现很多遥控功能,虽然距离是比较短,一般是10米,但对于我这种新手做测试,比起买一个几百块的多通道遥控器成本要低很多。

 

实验目的:用Android实现蓝牙连接通过Arduino串口输出信息

 

这次使用的是蓝牙HC-06从模块,就是从机模块,这都因为买之前没有问清楚什么叫从什么叫住。

所以在这解释一下,如有错误请指正。谢谢

 

HC-05是主从模块,能做主机,从机。

HC-06是从模块,只能做从机。

 

主机可以与从机配对,从机不能和从机配对。如果要两个单片机通信,那就至少一个是有主机功能的,要是两个都是从机是通信不了的。

其他型号说明:

HC03工业级主从 

HC04工业级从

----------------------------

HC05民用级主从  

HC06民用级从

 

资料上写,HC06空旷的传输距离是10米。买的时候要搞清楚自己的需求了。

 

准备工作:

蓝牙模块 HC06  x1

arduino uno       x1

安卓手机            x1

安卓APP:  Amarino_2_v0_55

下载地址:http://code.google.com/p/amarino/downloads/detail?name=Amarino_2_v0_55.apk&can=2&q=

amarino 主页:http://www.amarino-toolkit.net/

备用下载地址:http://pan.baidu.com/s/1jG6FJAQ

                          http://download.csdn.net/detail/ling3ye/9720744

 

Arduino程序和Android APP打包下载 
https://u16460183.ctfile.com/fs/16460183-293935425

1,接线方法

 

2测试程序

 

int num = 0;

void setup()
{
 Serial.begin(9600);
}
 
void loop()
{
  while(Serial.available())
   {
     char c=Serial.read();
      if(c=='A')
        {
          num++;
          Serial.print("Hello:num=");
          Serial.println(num);
        }
   }
}

 

 

上电时,蓝牙的LED灯会不停的闪,意思是没有任何连接。

当用手机连接上了,就会变成常亮。
接好线烧好程序。。。。。

 

3手机安装好APP

打开APP 可以搜索到蓝牙模块

 

进行连接的时候会提示进行配对,输入1234就可以了,如果不行可以试试0000

 

这就表示连接成功了。 同时蓝牙模块的LED灯也变成了常亮。

 

然后点击右下角的Monitoring按钮,进入如下界面

 

在这里直接按SEND就可以了。

我直接按了一下SEND ,然后看回串口的信息如下:

如果没有信息或者乱码请注意波特率是否与程序的相同。

 

到此完成连接测试了。大家也可以试下输入字符串看看有什么不同,这了留给大家去实验思考了。

2019-11-10 10:25:16 RiseC 阅读数 49
  • 少儿编程:Scratch中的Arduino开发

    本门课程将介绍如何以Scratch的编程方式进行Arduino开发(需购买硬件,详情可以参考教程内容)。 课程包含16个小模块的调用,并以案例形式发散思维,对应生活中随处可见的场景。(如红绿灯、楼道声控开灯,火焰报警、电动车碰撞报警、触摸传感器开启灯/风扇、高温开启风扇、天黑打开路灯,厕所冲水设备等) 每节正式课程包含连接硬件和代码编写两个环节,如果是孩子学习,请家长做好监督看护工作。 我相信,编程对孩子的思维培养和好奇心的激发是确实存在益处的,希望每一个观众能够有所收获。 课程适合人群:对编程感兴趣的青少年;有意培养子女编程兴趣的家长;有意从事少儿编程相关工作的朋友。

    805 人正在学习 去看看 王全

HC-05的接线及使用

单个使用时只需接rx,tx,vcc,gnd四个引脚并将模块的rx与单片机的tx连接(硬串口或软串口),tx与单片机的rx连接(硬串口或软串口)

进入蓝牙的设置模式

在蓝牙模块通电之前按住蓝牙模块上的按键直到通电(慢闪)说明就进入了设置模式接下来就可以通过 以下代码进入AT

进入AT命令模式(设置蓝牙参数)

注意事项

  1. 一定要查看该蓝牙的传输波特率是多少。
  2. 串口的波特率一定要和程序的波特率一致。
  3. 把串口界面调成如下图所示
    在这里插入图片描述

进入AT模式的代码(注意在通电之前让蓝牙模块进入设置模式)

#include <SoftwareSerial.h>

// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11);
char val;

void setup() {
Serial.begin(9600);
Serial.println(“BT is ready!”);
// HC-05用AT命令查一下一般为9600或38400
BT.begin(38400);
}

void loop() {
if (Serial.available()) {
val = Serial.read();
BT.print(val);
}

if (BT.available()) {
val = BT.read();
Serial.print(val);
}

进入AT模式响应

打开arduino的串口监视器把波特率设置为与2,步骤中的波特率一致,输入以下命令,
回复OK说明模块正常工作在AT模式

常用AT命令如下

AT+UART?//查看蓝牙模块的波特率
AT+NAME=名称//设置/查询设备名称
设置/查询—模块角色:
AT+ ROLE?
0——从机(Slave)
1——主机(Master)
2——回环角色(Slave-Loop)
默认值:0

AT+ROLE=0//设置为从机(一般在用手机控制小车的蓝牙设置为从机)

AT+PSWD=配对码//设置
AT+ PSWD?//查询—配对码

AT+UART= //设置波特率
AT+ UART? //查询 串口(波特率)

完整小车蓝牙控制代码

请看资源(可私聊提供技术服务)

2017-09-18 10:32:16 weixin_37272286 阅读数 46398
  • 少儿编程:Scratch中的Arduino开发

    本门课程将介绍如何以Scratch的编程方式进行Arduino开发(需购买硬件,详情可以参考教程内容)。 课程包含16个小模块的调用,并以案例形式发散思维,对应生活中随处可见的场景。(如红绿灯、楼道声控开灯,火焰报警、电动车碰撞报警、触摸传感器开启灯/风扇、高温开启风扇、天黑打开路灯,厕所冲水设备等) 每节正式课程包含连接硬件和代码编写两个环节,如果是孩子学习,请家长做好监督看护工作。 我相信,编程对孩子的思维培养和好奇心的激发是确实存在益处的,希望每一个观众能够有所收获。 课程适合人群:对编程感兴趣的青少年;有意培养子女编程兴趣的家长;有意从事少儿编程相关工作的朋友。

    805 人正在学习 去看看 王全

通过本文,可以了解到以下内容:

  • 进入 AT 模式进行蓝牙基本参数设置
  • Arduino 蓝牙控制 LED 电路设计以及代码编写
  • 利用 Andorid 蓝牙串口调试软件测试功能

进入 At 模式进行蓝牙基本参数设置

想要使用 Arduino 的蓝牙模块,首先要对蓝牙模块进行基本参数设置。基本参数设置主要包含:蓝牙名称、模式以及匹配密码等。设置蓝牙模块可以使用 USB-TTL 连接电脑使用串口调试软件进入 AT 模式进行设置,也可以使用 Arduino 连接蓝牙模块进行设置,本文主要介绍后一种方法。

注意事项

在连接蓝牙的时候,要注意线的连接是否正确,检查清楚再进行通电,除此之外,还要主要不要让针脚短路,我在首次使用蓝牙模块的时候,因为没注意接线,导致一个蓝牙模块损坏了,只能发信息不能收信息,所以为了避免不必要的损失,这里要注意。

Arduino HC05 AT模式接线

进入 AT 模式设置蓝牙的接线如下:
Arduino 5V - VCC
Arduino GND - GND
Arduino Pin10 - TXD
Arduino Pin11 - RXD
在通电前检查接线是否正确连接
hc05_at_mode.jpg

Arduino 进入 AT 模式代码

接下来,我们需要为使用 Arduino 设置蓝牙模块 AT 模式编写程序,这个程序是让我们可以通过 Arduino IDE 提供的串口监视器来设置蓝牙模块。详细的 Arduino 代码如下:

#include <SoftwareSerial.h> 

// Pin10为RX,接HC05的TXD
// Pin11为TX,接HC05的RXD
SoftwareSerial BT(10, 11); 
char val;

void setup() {
  Serial.begin(38400); 
  Serial.println("BT is ready!");
  // HC-05默认,38400
  BT.begin(38400);
}

void loop() {
  if (Serial.available()) {
    val = Serial.read();
    BT.print(val);
  }

  if (BT.available()) {
    val = BT.read();
    Serial.print(val);
  }
}

利用 Arduino IDE 串口监视器进行调试

首先,将 Arduino 断电,然后按着蓝牙模块上的黑色按钮,再让 Arduino 通电,如果蓝牙模块指示灯按2秒的频率闪烁,表明蓝牙模块已经正确进入 AT 模式。
打开 Arduino IDE 的串口监视器,选择正确的端口,将输出格式设置为 Both: NL & CR ,波特率设置为 38400 ,可以看到串口监视器中显示 BT is ready! 的信息。
然后,输入 AT ,如果一切正常,串口显示器会显示 OK
接下来,我们即可对蓝牙模块进行设置,常用 AT 命令如下:

AT+ORGL    # 恢复出厂模式
AT+NAME=<Name>    # 设置蓝牙名称
AT+ROLE=0    # 设置蓝牙为从模式
AT+CMODE=1    # 设置蓝牙为任意设备连接模式
AT+PSWD=<Pwd>    # 设置蓝牙匹配密码

正常情况下,命令发送后,会返回 OK ,如果没有返回任何信息,请检查接线是否正确,蓝牙模块是否已经进入 AT 模式,如果上述两点都没有问题,可能是蓝牙模块的问题,可以找蓝牙模块供应商咨询。
设置完毕后,断开电源,再次通电,这是,蓝牙模块指示灯会快速闪烁,这表明蓝牙已经进入正常工作模式。

利用 Andorid 手机连接 Arduino 并控制 LED灯开关

我们完成了对蓝牙模块的设置后,我们将做一个可以通过手机蓝牙连接,控制 Arduino 开关 LED 灯的小实验。

Arduino 电路设计

这里的电路设计比较简单,主要是两部分:
- Arduino 与 HC05 模块连接
- Arduino 与 LED 连接

这里有两点需要注意,Arduino 上的 TXD 应与 HC05 模块上的 RXD 端连接,Arduino 上的 RXD 应与 HC05 模块上的 TXD 连接。
在下面的图例中,我的 LED 是直接连接在 Arduino Pin13 上,而实际电路连接中,因根据连接的 Led 灯的设计考虑是否需要串联电阻。
Hc05_Led.jpg

Arduino 蓝牙控制 LED 灯 程序设计

Arduino 程序代码如下:

void setup()
{
  // 设置波特率为 38400
  Serial.begin(38400);
  pinMode(13, OUTPUT);
}


void loop()
{
  while(Serial.available())
  {
    char c=Serial.read();
      if(c=='1')
      {
        Serial.println("BT is ready!");
        // 返回到手机调试程序上
        Serial.write("Serial--13--high");
        digitalWrite(13, HIGH);
      }
     if(c=='2')
     {
       Serial.write("Serial--13--low");
       digitalWrite(13, LOW);
     }
  }
}

Android 手机端调试

在 Android 端上进行调试,需要下载蓝牙串口调试 APP,可以根据喜好在各大应用商场搜索下载。
下载安装完成 APP 后,我们先打开手机的蓝牙设置,搜索并匹配好我们的蓝牙模块。然后打开 蓝牙串口调试APP ,让 APP 连接上蓝牙模块,然后我们可以在 APP 中输入 1,接下来可以看到 LED 等亮了,并且能在 APP 中看到 Serial--13--high 的返回(有些 APP 返回值可能不是返回在同一行)。我们再在 APP 中输入 2,可以看到 LED 熄灭, APP 中返回 Serial--13--low

小结

在这篇文章中,我们了解了在 Arduino 中使用 HC05 蓝牙模块的两个主要步骤,首先是进入 AT模式 对蓝牙模块进行设置,这里要注意接线的正确性,设置完成后,就可以将蓝牙模块的 TXArduino RX 连接,RXArduino TX 连接,再通过 Arduino 程序中的 Serial 来实现数据的传输与读取。最后,在通过 Android 上的蓝牙串口调试APP,来测试我们的试验是否成功。

参考资料

蓝牙模块HC05
Arduino Bluetooth Basic Tutorial


本文为原创内容,由同一作者于早前发表于简书,Arduino使用HC05蓝牙模块与手机连接

Arduino通讯协议01

阅读数 9

,arduino 蓝牙例子,

阅读数 647

没有更多推荐了,返回首页