2012-02-20 21:48:25 iteye_11969 阅读数 645
  • 少儿编程:Scratch中的Arduino开发

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

    765 人正在学习 去看看 王全

arduino 蓝牙连接方法,arduino 蓝牙测试:

我买的蓝牙模块是这样的:

 

 

线路连接方法:

 

 

连接方法文字解释:

 

1:蓝牙模块上的RXD与arduino板子上的Tx相连,蓝牙模块上的TXD与arduino板子上的Rx相连。

 2:蓝牙模块上的GND接地,vcc接入板子上的5V。

3:arduino上13接口接入led灯。

int val;
int ledpin=13;
void setup(){
  Serial.begin(9600);
  pinMode(ledpin,OUTPUT);
}
void loop(){
  val=Serial.read();
  if(val=='r'){
    digitalWrite(ledpin,HIGH);
    delay(500);
    digitalWrite(ledpin,LOW);
  }
 }

 逻辑解释:用手机与arduino通过蓝牙连接好后,手机向arduino发送一个字符 r,arduino进行接收,接收到后进行判断如果无误,点亮led灯,然后在熄灭。

 

android 的代码暂时还没写完,先不放上来,可以再网上搜搜 android蓝牙就都明白了很简单的。

2015-07-29 10:58:36 qq5132834 阅读数 2889
  • 少儿编程:Scratch中的Arduino开发

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

    765 人正在学习 去看看 王全

连接图如下:



Android手机APK下载路径:http://share.weiyun.com/54b3c561db39f60ad6f3c232179186f5


一、 买家收到货后,请按照蓝牙小车连接图将小车组合起来(上图:蓝牙小车连接图)。测试时务必采用电脑USB电源供电,这样以确保供电稳定,以防电池功率过高或者过低给测试带来意想不到的影响。本人采用的是小米充电宝供电测试,撰写此说明文档。

注意:

1、充电宝是权宜之策,因为充电宝功率大,会导致驱动板温度急剧升高。

2、不要使用普通便宜电池,功率过低会带不起小车,最好使用南孚电池


二、 小车通电后就会开始一个自动测试的过程,测试内容为:前进3秒、左转3秒(左轮停止,右轮前进)、右转3秒(左轮前进,右轮停止)、后退3秒。这样的做的目的是为了使用户能将电机驱动板子与小车的马达正负连接正确。

注意:有时候我们发现电机驱动板和小车马达的连接后不吻合上面的自动测试,那我可以做如下尝试:

1、第一步先保证左右轮子能前进;
2、在第一步的基础上,按下复位按钮,看左转的情况,如果左转正确(即左轮后退,右轮前进),说明连接正确。如果不正确,将左右马达的连接线互换。
3、重复第1步。第2步。


三、 此步骤非常重要,蓝牙连接前,用户务必在手机设置功能中配对蓝牙,蓝牙的名称叫:HC-06。连接码是:1234。配对成功后,以后打开安卓APP就可以自动连接了。操作如下图所示。


四、 打开蓝牙后,打开“菜单”。如下图所示。


五、 选择“Connect a device”。选择刚才配对的HC-06蓝牙。如下图所示。


六、 如若连接上蓝牙,如下图所示。右上角会提示:“connected:HC-06”。



七、这个时候你就可以控制小车的前进后退了。如下图所示


八、 手机上面有一个按钮“接受Arduino发来的数据”,点击后,会收到小车向手机发送回来的数据“hello”。如下图所示。这个功能主要目的是为了让用户将来能进一步扩展小车的功能,比如采集数据回传给手机上传给服务器等等。



九、如果上面测试没问题,证明整套系统可以正常运转了。这时麻烦亲确认收货,小二会提供全套的源代码,包括:arduino小车控制源代码、android手机控制源代码

十、说明文档:

Arduino单片机开发环境搭建说明文档:
http://blog.csdn.net/qq5132834/article/details/47152865
Arduino单片机集成开发环境下载:
http://share.weiyun.com/6b2de0d784ddf27d288a43fd35023378
小车视频:
视频1: http://v.youku.com/v_show/id_XNjk2MjA5NDI4.html 

视频2: http://v.youku.com/v_show/id_XOTIwNjU1Mzgw.html



2013-01-12 18:18:33 berryreload 阅读数 6186
  • 少儿编程:Scratch中的Arduino开发

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

    765 人正在学习 去看看 王全

目标:BlackBerry手机通过蓝牙串口读取Arduino 蓝牙传过来的温度 湿度信息

硬件:Arduino主板 + DHT11温湿度传感器 + 蓝牙模块,开发工具C语言

手机:BlackBerry 9360手机,OS 7.1,开发工具Java

手机:BlackBerry 10 Alpha手机,OS  10.0.xxx,开发工具BlackBerry 10 NDK

通讯:手机和Arduino通过蓝牙连接




BlackBerry 9360手机上面的显示:湿度41,温度11(哈冷啊。。。。。。。。。。。。。。。。)


Arduino代码参考这里 http://playground.arduino.cc/Main/DHTLib

代码如下:

// 
//   FILE:  dht_test.pde
// PURPOSE: DHT library test sketch for Arduino
//

#include <dht.h>

dht DHT;

#define DHT11_PIN 8
#define DHT22_PIN 5

void setup()
{
  Serial.begin(9600);
  Serial.println("DHT TEST PROGRAM ");
  Serial.print("LIBRARY VERSION: ");
  Serial.println(DHT_LIB_VERSION);
  Serial.println();
  Serial.println("Type,\tstatus,\tHumidity (%),\tTemperature (C)");
}

void loop()
{
  // READ DATA
  int chk;
 
  // READ DATA
  Serial.print("DHT11, \t");
  chk = DHT.read11(DHT11_PIN);
  switch (chk)
  {
    case DHTLIB_OK:  
		Serial.print("OK,\t"); 
		break;
    case DHTLIB_ERROR_CHECKSUM: 
		Serial.print("Checksum error,\t"); 
		break;
    case DHTLIB_ERROR_TIMEOUT: 
		Serial.print("Time out error,\t"); 
		break;
    default: 
		Serial.print("Unknown error,\t"); 
		break;
  }
 // DISPLAT DATA
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  delay(1000);
}
//
// END OF FILE
//



BlackBerry  OS 7.1

BlackBerry Java API封装了串口通讯,所以用起来就很方便了。

开发工具eJDE中导入sample程序BluetoothSerialPortDemo ,修改代码接收蓝牙数据并显示在文本框中。

                

                        // Read in the contents and get the event lock for this
                        // application so we can update the info field.
                    	Util.log("Read bluetooth data...");
                    	int i = 0;
                    	while(true){
                    		i++;
                            String cmd = "";
                            byte b;
                            while ((( b = _din.readByte()) > 0) &&( (char)b != ((char)0x0a)) ){
                            	cmd = cmd + (char)b;
                            } 
                            
                            Util.log("Received " + cmd);
                            _infoField.setText(i + ": " + cmd);
                        }
                      

注:

Arduino中,Serial.println() 出来的数据是0x0d, 0x0a。在Java中,我只检测回车字符  (char)0x0a作为一条数据的分隔符即可


BlackBerry  OS 10

BlackBerry NDK C/C++ API封装了蓝牙SPP API,用起来稍微复杂一点(和Android API类似),连接蓝牙设备的时候,bt_spp_open()方法需要对方的服务UUID,mac地址。

下载BlackBerry 蓝牙例子代码bluetoothsppchat,导入到NDK中,build,运行即可。

注意其中的UUID的定义:

#define SPP_SERVICE_UUID "00001101-0000-1000-8000-00805F9B34FB"

//! [7]
void ChatManager::connectToSPPService()
{
    m_chatHistory.clear();

    const int fd = bt_spp_open(m_remoteAddress.toAscii().data(), (char *) SPP_SERVICE_UUID, false);

    if (fd >= 0) {
        updateChatWindow("SPP Client\n\n");

        setSPPClient(fd);
    } else {
        showDialog("spp_open fail", "errno = " + QString::number(errno) );
    }
}
//! [7]
BB 10运行效果如图



参考:

蓝牙串口服务  UUID   '{00001101-0000-1000-8000-00805F9B34FB}' 

https://bluetooth.org/Technical/AssignedNumbers/service_discovery.htm


http://www.douban.com/group/topic/20009323/

http://www.cnblogs.com/lyout/archive/2011/04/11/2012175.html


BlackBerry 10 NDK Bluetooth API
http://developer.blackberry.com/native/reference/bb10/com.qnx.doc.bluetooth/topic/manual/btspp.h_functions_overview.html


BlackBerry 10 NDK蓝牙例子(Bluetooth SPP Chat Example)说明
http://blackberry.github.com/Cascades-Samples/bluetoothsppchat.html


BlackBerry 10 NDK例子代码(包括蓝牙)下载
https://github.com/blackberry/Cascades-Samples/

安卓手机和Arduino蓝牙通讯例子 Data transfer between Android and Arduino via Bluetooth
http://english.cxem.net/arduino/arduino5.php

2019-03-14 23:36:07 HWL_0099 阅读数 117
  • 少儿编程:Scratch中的Arduino开发

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

    765 人正在学习 去看看 王全

前言

原来是打算用nrf24来做树莓派和arduino的通讯,因为nrf24传的数据量有点小,现在改为用蓝牙来通讯

硬件准备(我的)

  • HC-05蓝牙
  • 树莓派3b+
  • Arduino UNO

Arduino连接蓝牙

参考:https://jingyan.baidu.com/article/86f4a73ebd829437d652690d.html
image.png

注意:
1.蓝牙的TX连接arduino的RX,RX连接TX

树莓派蓝牙准备

因为我的是3b+版本,所以可以直接从桌面来配对蓝牙,但是这里还是用终端来操作蓝牙吧
(树莓派自带有蓝牙)
参考:
https://blog.csdn.net/faust_cao/article/details/72872079
https://www.cnblogs.com/rayray/p/3157601.html

1.升级安装一下蓝牙的库

$sudo apt-get update
$sudo apt-get install bluetooth  bluez  python-bluez

2.打开蓝牙控制

$ bluetoothctl
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful

image.png

3.扫描蓝牙设备,找到HC-05的蓝牙id

[bluetooth]# scan on 
Discovery started

image.png

复制红色方格中的id

4.配对蓝牙

[bluetooth]# pair xx:xx:xx:xx

image.png

输入PIN码(默认是1234)
最后会显示配对成功

5.连接蓝牙
我尝试用connect命令去连接蓝牙,但是会报错

$sudo rfcomm connect 0 00:14:01:10:10:32

image.png


在这里插入图片描述

这个地方蓝牙的连接是暂时不要着急的,可以先不连接,等到树莓派要向蓝牙发送信息或者蓝牙发信息过来给树莓派的时候系统就会自动连上

6.生成rfcomm0文件

//首先我们退出蓝牙控制
exit 
//生成rfcomm0文件
sudo rfcomm bind 0 xx:xx:xx:xx(你的蓝牙ip)

然后你会发现在/dev目录下生成了一个新的文件
image.png

注意,这一步每次重启都要输入一次命令,因为重启之后那份文件自动被删除了

以上我们在硬件方面的准备就完成了,下面是代码
###树莓派向Arduino发送数据
树莓派要使用python文件,我们可以打开编程,然后编写一段python代码好,然后编译什么的自己可以去查(也可以直接打开这份文件)
image.png

树莓派代码

#coding=utf-8
import serial
from time import sleep
port='/dev/rfcomm0'
ser=serial.Serial(port,9600)

while(1):    
    ser.write(bytes("A",'utf-8')) #serial只能传bytes了而不是string
    sleep(.8) #防止串口阻塞

Arduino代码


void setup() {
  Serial.begin(9600);
 
}


void loop() {
  char a;
  if(Serial.available()){
    a=Serial.read();
    Serial.println(a);
  }
  delay(800);       
  }


效果

image.png

树莓派接受Arduino数据

树莓派代码

#coding=utf-8
import serial
from time import sleep
port='/dev/rfcomm0'
ser=serial.Serial(port,9600)
ser.flushInput() #初始清空一下串口
while(1):    
    n = ser.inWaiting() #自己去查查
    if(n):
        a=ser.read(n)
        print(a)
    sleep(.8)

Arduino代码

char a[200];
char b[200];
char c[200];
  
void setup() {
  Serial.begin(9600);
  for(int i=0;i<200;i++)
  {
    a[i]='1';
    b[i]='2';
    c[i]='3';
  }
}


void loop() {
  for(int i=0;i<10;i++){
     Serial.write(a[i]);
  }
  for(int i=0;i<10;i++){
     Serial.write(b[i]);
  }
  for(int i=0;i<10;i++){
     Serial.write(c[i]);
  }   
  delay(800);       
  }

效果

image.png


小技巧:
HC-05连接之后闪烁变慢,未连接时候闪烁的很快

2011-01-13 13:02:00 cooska 阅读数 7974
  • 少儿编程:Scratch中的Arduino开发

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

    765 人正在学习 去看看 王全

玩硬件和软件最大的不同,就是需要零件设备。这次的目标是要实现arduino通过蓝牙和PC通讯,arduino mega 1280必须要连接一个蓝牙无线串口设备才能实现。所以要添加下面的东西:

 

1. 蓝牙无线串口模块。

 

2. 面板的连接线,这个便宜,8块就长的短的,花花绿绿一大把。

 

 

 

蓝牙串口模块有4个接线口,分别是 5v, GND, TX, RX,非常简单,对应电源,以及收发端。原理上,这个模块相当于一个串口的中转站,一端和PC间通过蓝牙协议无线连接PC的蓝牙串口,另一端和arduino的串口设备UART通过连线直接相连,这样,就相当于在PCarduino之间搭建了一个通讯桥梁,使两者能够通过串口设备进行通讯。那么,USB线呢?我们写好程序通过USB线把代码上载后,USB线就可以去掉了,以后的通讯,直接通过无线蓝牙就能完成。当然,这个通讯是指PC的程序和arduino的程序之间,要想重新上载新的程序,还得通过USB连线来完成。

接下来开始连线。前面有说过,arduino mega 12804UART,也就是4个串口,接口01141516171819两两对应于这4个串口的收,发端。另外,板上还有3.3v, 5v, GND,和Vin接口,提供各种电压的输出,其中,Vin代表的是arduino的输入电压。不过要注意,输出的负载电流都不能超过50mA,否则就有烧掉的危险。连线如下图:

 

 

红线连接arduino5v和蓝牙串口模块的5v;黑线连接arduino和蓝牙串口模块的GND;黄线连接arduinoRx和蓝牙模块的Tx;绿线连接arduinoTx和蓝牙模块的RxOk,大功告成。

 

接下来就是写程序了。为了测试通讯,PC通过无线连接向arduino发送一个字符't'arduino收到后闪一下灯,并向PC反馈一个字符串"echo"。程序如下:

 

const int ledpin = 13;

const int pinRx = 0;

const int pinTx = 1;

 

void setup()

{

Serial.begin(9600);

pinMode(ledpin, OUTPUT);

}

void loop()

{

int val = Serial.read();

if (val == 't')

{

digitalWrite(ledPin, HIGH);   // set the LED on

delay(500);

digitalWrite(ledpin, LOW);

delay(500);

Serial.println("echo");

}

}

 

相对上一个程序,这里面有些新的东西,就是串口对象Serial,这个对象对应于01接口的串口设备;当然,其他3个串口也有对应的串口对象,名字分别为Serial1, Serial2, Serial3。编程参考可以看这个链接:http://arduino.cc/en/Reference/Serial。这里使用的对象接口函数很简单,Serial.begin(波特率),用于初始化串口并指定通讯的波特率;Serial.read()是从串口的接收缓冲区中读出一个字符,如果没有,返回-1Serial.println(字符串)用于输出一个带回车符的字符串。需要提一下的是,arduino的第一个串口和FTDI USB-to-TTL串口芯片相接,也就是说这个串口设备可以通过USB线连接PC

程序写完,就可以上传运行了。蓝牙模块背面有2个灯,分别是powerstate,通电后power就亮了,state灯却一直闪烁,这是因为蓝牙还没有连接。PC端这时需打开蓝牙管理,然后搜寻新的设备,会找到一个叫linvor的蓝牙设备。打开,这个设备只有一个蓝牙串口。点右键连接,跳出配对密码输入框,输入密码"1234"即可。连接完成后,可以看到蓝牙模块上的state灯长亮了,这表明连接正常,就可以进行通讯了。

既然是通讯,PC端也要有个基于串口的通讯程序。除了使用arduino开发环境自带的Serial Monitor,自己也可以找一个流行的。咱是懒人,就用开发环境自带的好了,反正应用很简单,这个程序也够用了。点击开发环境最右面Serial Monitor那个图标,就跳出下面这个界面。不过要注意,在TOOL菜单下的COM选择,应该是对应蓝牙串口所用的那个串口编号,而不是USB的,否则,呵呵,就不是蓝牙无线通讯而是USB串口通讯了。

 

 

最后补充一下,蓝牙模块的信息是可以通过AT命令来进行改动的,缺省情况下,蓝牙设备名是"linvor", 通讯波特率为9600,配对密码为"1234"。具体说明如下:

 

通过串口与电脑连接,再通过串口调试助手给模块发送命令可以配置模块的一些参数,

具体的配置方式如下:

1)、测试通讯:发送AT 命令,返回ok

2) 更改波特率

模块默认的波特率是9600

发送AT BAUD1 返回OK1200

发送AT BAUD2 返回OK2400

……

BAUD1------------1200

BAUD2------------2400

BAUD3------------4800

BAUD4------------9600

BAUD5------------19200

BAUD6------------38400

BAUD7------------57600

BAUD8------------115200

BAUD9------------230400

A--------------------460800

B--------------------921600

C--------------------1382400

不建议使用超过115200 的波特率,因为大多系统都没有提供高

115200 的波特率,PC 机也是如此,波特率设置超过115200 以后,

电脑无法使用,要使用波特率高于115200 的系统才能重新发AT 命令

设置低的波特率,否则无法恢复低波特率了。

AT 命令设置好波特率后,下次上电不需要再设置,掉电可以

保存波特率。

3)更改蓝牙名字

发送:AT NAMEname

返回:OKname

参数name:你所要设置的名字,也就是蓝牙被搜索到的名字,

20 个字符以内。

例:发送AT NAMEJYOO

返回返回JYOO

参数可以掉电保存,只需设置一次

4)更改蓝牙配对密码

发送:AT PINXXXX

返回:OKsetpin

参数XXXX:所需设置的密码4 位,只需更改一次,掉电保存。

 

arduino与蓝牙模块

阅读数 1963

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