0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用ANDROID SMART PHONE的蓝牙可控机器人的制作

454398 来源:网络整理 作者:佚名 2019-11-01 17:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:蓝牙通信

两个设备是一个涉及三个渐进状态的多步骤过程:

1。查询– 如果两个蓝牙设备彼此之间完全不了解,则其中一个必须运行查询以尝试发现另一个。一台设备发出查询请求,任何侦听此请求的设备都将以其地址以及可能的名称和其他信息作为响应。

2。分页(连接) –分页是在两个蓝牙设备之间建立连接的过程。在启动此连接之前,每个设备都需要知道另一个设备的地址(在查询过程中找到)。

3。连接– 设备完成寻呼过程后,将进入连接状态。连接后,设备可以处于主动参与状态,也可以进入低功耗睡眠模式。

活动模式 –这是常规连接模式,其中设备正在主动发送或接收数据。

嗅探模式 e –这是一种省电模式,设备不活跃。它会进入睡眠状态,并且仅按设定的时间间隔(例如每100毫秒)监听一次传输。

保持模式 –保持模式是一种临时的省电模式,在该模式下,设备将休眠一段定义的时间,然后在间隔时间过后返回活动模式。主机可以命令从机保持。

停车模式 –停车是最深的睡眠模式。主机可以命令从机“停放”,直到从机通知主机唤醒后,该从机将变为非活动状态。

绑定和配对:

当两个蓝牙设备彼此共享特殊的亲和力时,可以将它们绑定在一起。绑定的设备只要距离足够近,就会自动建立连接。例如,当我开车时,口袋里的电话会立即连接到汽车的蓝牙系统,因为它们共享一个纽带。不需要UI交互!

通过一次性的配对过程创建绑定。设备配对时,它们共享其地址,名称和配置文件,通常将它们存储在内存中。对方还共享一个公用密钥,这使他们将来在任何时候在一起时都能绑定。

配对通常需要一个身份验证过程,用户必须验证设备之间的连接。身份验证过程的流程各不相同,通常取决于一个设备或另一个设备的接口功能。有时配对是一个简单的“ Just Works”操作,只需单击一下按钮即可配对(这对于没有UI的设备(如耳机)很常见)。其他时间配对涉及匹配的6位数字代码。较旧的旧版(v2.0和更早版本)的配对过程涉及在每个设备上输入公共PIN码。 PIN码的长度和复杂度范围从四个数字(例如“ 0000”或“ 1234”)到一个16个字符的字母数字字符串。

主控,从属和Piconets:

蓝牙网络(通常称为微微网)使用主/从模型来控制设备何时何地可以发送数据。在此模型中,单个主设备最多可以连接七个不同的从设备。微微网中的任何从属设备只能连接到一个主机。

主机协调整个微网中的通信。它可以将数据发送到其任何从属,也可以从它们请求数据。从站仅允许与其主机进行发送和接收。他们无法与微微网中的其他奴隶交谈。

范围:

范围是特定于应用程序的,尽管最低范围是核心规范没有限制,制造商可以调整其实现以支持其启用的用例。

范围可能会根据实现中使用的无线电类别而有所不同:

3类无线电设备–射程可达1米或3英尺

2类无线电设备–最常见于移动设备中–射程可达10米或33英尺

主要在工业用例中使用的1类无线电设备的射程为100米或300英尺

步骤2:蓝牙通信续。..

设备使用情况

(几乎)单独的无线连接–需要外部应用程序来驱动服务

设备通信

客户端/服务器(主/从)conf iguration

设备本质上是相等的

应用程序确定身份

[[客户端应用程序] 《=》 [HC05]] 《==== =============》 [[BT设备] 《=》 [服务器应用程序]]

软件/接口堆栈

[蓝牙主机] -------------------•[蓝牙主机]

^ –主机控制器接口驱动程序

|| –物理总线驱动程序

v

[物理总线] ----------------------•[物理总线]

^ –物理总线固件

||

v

[蓝牙硬件] ---------- ---•[蓝牙硬件]

–主机控制器接口固件

–基带控制器

连接到设备

•主机控制器接口–允许与蓝牙硬件进行控制交互

•传输层–主机与蓝牙硬件之间的物理连接

1。主机控制器接口

•用于访问蓝牙硬件功能的统一接口

•包含用于硬件的命令集

•包含对可能事件的处理

•包含对错误代码的访问

2。传输选项

•标准描述了三种基本的传输格式– USB传输

•通用串行总线– RS232传输,UART传输

•通用异步接收器/发送器

•串行接口–可以设置为RS232设置

步骤3:蓝牙网络

蓝牙网络:

•由最多7个活动蓝牙组成的Piconet 设备

–主/从配置

–可以将其他从设备置于“停放”状态设备不活动但保持同步

–由主机控制的连接,同步,停放/活动

–以微微网连接的所有设备共享时序和频率

•由两个或多个Piconets组成的分散网

–每个微微网只能有一个主设备,但一个微微网中的主设备可以作为奴隶来参与不同的微微网中。

–从站被时分多路复用成一个以上的微微网

–未同步时间或频率的Piconets

建立连接

•蓝牙单元发送查询消息以查找其他蓝牙单元。

主/从Piconet

•一个单元成为主机,其他单元成为从机

•主/从关系建立时序

•一个从机可以成为另一个Piconet中的主机。这会将两个Piconets连接到一个散布网中。

蓝牙Pico/散布网

•一个微微网中的主机可以是另一个微网中的从机

•寻址将微微网中的活动设备数限制为7

•无限数量的停放设备与微微网保持同步,但未处于活动状态。

频谱

蓝牙技术使用标称速率为1600跳/秒的扩频跳变全双工信号,在2.4至2.485 GHZ的无执照工业,科学和医学(ISM)频段中运行。

步骤4:蓝牙层和协议栈

蓝牙标准具有许多协议,这些协议被组织到不同的层中。

蓝牙的层结构不遵循OS1模型,TCP/IP模型或任何其他已知模型

不同的层和蓝牙协议体系结构:(图1)

蓝牙框架格式:

蓝牙框架格式的各个字段为:

1。访问代码:这是包含同步位的72位字段。它标识母版。

2。标头::这是54位字段。它包含重复3次的18位模式。

标头字段包含以下子字段:

(i)地址:此3位字段最多可以定义七个从站(1至7)。如果地址为零,则用于从主节点到所有辅助节点的广播通信。

(ii)类型:此4位字段标识来自上层的数据类型。

(iii) F :此流位用于流控制。设置为1时,表示设备无法接收更多帧。 (iv) A :该位用于确认。

(v) S :该位包含用于检测重传的帧的序列号。当使用停止和等待协议时,一位就足够了。

(vi)校验和:这8位字段包含用于检测标头中错误的校验和。

3。数据:。此字段的长度可以为0到2744位。它包含来自上层的数据或控制信息。

步骤5:蓝牙基带控制器

基带控制器:

•基带:基带协议和低级链接例程

•链接管理器:用于设置和链接控制的链接层消息

•跳频时分双工频道

基于625毫秒时隙(1600跳/秒)的频道220 PLL稳定丢失的时隙的毫秒数

•蓝牙同时使用电路和分组交换通道,支持:

–最多3个同时64 kbps同步语音通道

–同步语音和异步数据通道

–异步数据通道:

-/-721/57.6 kbps非对称

-/-对称432.6 kbps

访问代码:

•信道访问代码(CAC):标识微微网,这代码与所有交易一起使用在微微网上交换的信息

•设备访问代码(DAC):用于发信号,例如寻呼和对寻呼的响应

•查询访问代码(IAC):

–所有蓝牙设备通用的通用查询访问代码(GIAC)

–专用查询一类蓝牙设备共有的访问代码(DIAC)

–查询过程“查找”范围内的BT设备

步骤6:Atmega32 MCU的编码

我们可以向android智能手机或PC发送数据或从其接收数据:---

Ex;

/*This function is used to initialize the USART at a given UBRR value */

void BlueInit(uint16_t ubrr_value)

{

//Set Baud rate UBRRL = ubrr_value;

UBRRH = (ubrr_value》》8);

/* We Set Frame Format as

》》 Asynchronous mode

》》 No Parity

》》 1 StopBit

》》 char size 8 */

UCSRC=(1《

//Enable The RX receiver and TX transmitter

UCSRB=(1《

}

2. /* function used to read data from USART line. It waits till any data is available */

char BlueRdChar()

{

while(!(UCSRA & (1《

UCSRA |= (1 《《 RXC);

//Return received data

return UDR;

}

3. /* function writes the character in ‘data’ into USART and then transmits it to PC via TX line */

void BlueWrChar(char data)

{

while(!(UCSRA & (1《

UDR=data;

}

/*###############main Function########################################*/

#include “lcd_io.h”

#include “util/delay.h”

/* Extern declarations, prototypes etc. 。.. */

void BlueInit();

char BlueRdChar();

void BlueWrChar(char);

void Waiting(int);

#define F_CPU 16000000UL

#define USART_BAUDRATE 11500UL //9600UL

#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)

int main()

{

char data;

int i;

/*First Initialize the USART with baud rate = 9600bps

for Baud rate = 9600bps

UBRR value = 103

*/

BlueInit(103); //UBRR = 103

//Initialize LCD module

lcd_init();

lcd_clrscr();

lcd_gotoxy(0,0);

lcd_puts(“BLUETOOTH MODULE:”);

Waiting(5);

lcd_clrscr();

//Loop forever

while(1)

{

lcd_clrscr();

lcd_puts(“Receiving Data.。”);

for (i=0;i《=15;i++)

{

data=BlueRdChar();

BlueWrChar(data);

lcd_gotoxy(i,1);

lcd_puti(data,0);

}

Waiting(2);

}

return 0;

}

第7步:Android蓝牙传输代码

蓝牙是一种发送或发送电子邮件的方式在两个不同的设备之间接收数据。 Android平台包括对蓝牙框架的支持,该蓝牙框架允许设备与其他蓝牙设备无线交换数据。

Android提供了蓝牙API来执行以下不同操作:-

扫描用于其他蓝牙设备

获取已配对设备的列表

通过服务发现连接到其他设备

Android提供了BluetoothAdapter类来与蓝牙通信。通过调用静态方法getDefaultAdapter()

private BluetoothAdapter BA;

BA = BluetoothAdapter.getDefaultAdapter();

创建此调用的对象。为了启用设备的蓝牙,请使用以下蓝牙常量ACTION_REQUEST_ENABLE调用该意图。

Intent turnOn = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivityForResult(turnOn, 0);

提供了支持其他任务的API的其他常量:-

ACTION_REQUEST_DISCOVERABLE

This constant is used for turn on discovering of bluetooth.

ACTION_STATE_CHANGED

This constant will notify that Bluetooth state has been changed.

ACTION_FOUND

This constant is used for receiving information about each device that is discovered.

启用蓝牙后,您可以通过调用getBondedDevices()获得配对设备的列表。 ) 方法。它会返回一组蓝牙设备。..

private SetpairedDevices;

pairedDevices = BA.getBondedDevices();

蓝牙:

Android平台支持蓝牙连接,该蓝牙连接允许与其他蓝牙设备。该应用程序框架通过连接到其他蓝牙设备的Android蓝牙API提供对蓝牙功能的访问。

蓝牙API 类 Android蓝牙程序包:-

BluetoothAdapter:-- Represents the local Bluetooth adapter (Bluetooth radio)。

BluetoothDevice:-- Represents a remote Bluetooth device, query information such as its name, address, class, and bonding state.

BluetoothSocket:-- Represents the interface for a Bluetooth socket (similar to a TCP Socket)。

BluetoothServerSocket:-- Represents an open server socket that listens for incoming requests (similar to a TCP ServerSocket)。

BluetoothClass:--Describes the general characteristics and capabilities of a Bluetooth device.
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    213

    文章

    30638

    浏览量

    219813
  • Android
    +关注

    关注

    12

    文章

    3988

    浏览量

    133165
  • 蓝牙
    +关注

    关注

    119

    文章

    6235

    浏览量

    177670
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    荣耀官宣明年推出机器人手机 Robot Phone!手机+摄像机+机器人三合一

    荣耀C官宣明年将推出革命性的机器人手机Robot Phone,把AI手机、具身智能和高清摄像融成了“智能生命体”。Robot Phone融合了三大核心能力:具备AI的“超强大脑”,能随时随地洞悉场景
    的头像 发表于 11-10 17:35 467次阅读

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    瑞芯微RK3576 AIoT处理器处理器凭借其卓越的多屏异显与8路摄像头接入能力,为机器人领域带来革新。米尔电子MYD-LR3576开发板实测数据显示,在高负载下CPU占用仅34%,完美实现多路视觉
    发表于 10-29 16:41

    小萝卜机器人的故事

    经过我的申请, 马老师发放了, 小萝卜机器人的, 开发权限, 原来的小萝卜公司, 因为经营不善倒闭, 作为科研产品, 几个技术对此惋惜, 自掏腰包, 要让小萝卜机器人, 再生, 每次听到小萝卜说
    发表于 10-23 05:24

    机器人竞技幕后:磁传感器芯片激活 “精准感知力”

    2025 世界人形机器人运动会于 8 月 17 日圆满收官,赛场上机器人在跑步、跳跃、抓取等项目中的精彩表现,背后是运动控制、环境感知等技术的迭代升级。而在这些技术中,磁传感器芯片凭借独特优势,成为
    发表于 08-26 10:02

    工业机器人的特点

    的基础,也是三者的实现终端,智能制造装备产业包括高档数控机床、工业机器人、自动化成套生产线、精密仪器仪表、智能传感器、汽车自动化焊接线、柔性自动化生产线、智能农机、3D 打印机等领域。而智能制造装备中工业
    发表于 07-26 11:22

    STM32+Android实现的智能家政机器人电路代码论文及项目源码

    STM32+Android实现的智能家政机器人电路代码论文及项目部分截图:
    发表于 05-28 21:22

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    详细介绍机场智能指路机器人的工作原理

    带)定位、Wi - Fi 定位等。蓝牙定位可以通过与机场内部署的蓝牙信标进行通信,获取机器人的大致位置信息。UWB 定位则利用超宽带信号实现更精确的定位,能够在复杂的室内环境中达到较高的定位精度,误差
    发表于 05-10 18:26

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    ROS的全称:Robot Operating System 机器人操作系统 ROS的 目的 :ROS支持通用库,是通信总线,协调多个传感器 为了解决机器人里各厂商模块不通用的问题,让机器人快速开发
    发表于 04-30 01:05

    海康机器人布局关节机器人业务

    关节机器人领域迎来一位实力选手。继布局移动机器人机器视觉业务后,海康机器人正在拓展新的产品线。
    的头像 发表于 03-20 10:47 1225次阅读

    名单公布!【书籍评测活动NO.58】ROS 2智能机器人开发实践

    资格! 从 PC 到智能手机,下一个更大的计算平台是什么? 最佳答案可能是 机器人 ! 如果设想成真,则需要有人为机器人“造脑”,即打造适配的计算平台及操作系统。 就像以计算机为平台的计算机时代,和以
    发表于 03-03 14:18

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主机器人
    发表于 01-04 19:22

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    近年来,人工智能领域的大模型技术在多个方向上取得了突破性的进展,特别是在机器人控制领域展现出了巨大的潜力。在“具身智能机器人大模型”部分,作者研究并探讨了大模型如何提升机器人的能力,大模型存在
    发表于 12-29 23:04

    【「具身智能机器人系统」阅读体验】1.初步理解具身智能

    感谢 感谢电子发烧友网社区给予《具身智能机器人系统》试读机会。在这知识的盛宴中,我感受到社区的关怀与支持。定不负期望,认真研读,分享所学,回馈社区。 一、本书大纲 《具身智能机器人系统》是一本
    发表于 12-28 21:12

    【「具身智能机器人系统」阅读体验】+初品的体验

    《具身智能机器人系统》 一书由甘一鸣、俞波、万梓燊、刘少山老师共同编写,其封面如图1所示。 本书共由5部分组成,其结构和内容如图2所示。 该书可作为高校和科研机构的教材,为学生和研究人员提供系统
    发表于 12-20 19:17