[TPYBoard - Micropython之会python就能做硬件 7] 学习使用蓝牙模块及舵机

简介: 转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi            欢迎加入讨论群 64770604 一、实验器材 1、TPYboard V102板  一块 2、无线蓝牙串口透传模块HC-06   一个  3、OLED 屏 一块 二、无线蓝牙串口透传模块 1、无线蓝牙串口透传模块,又叫蓝牙模块,是一种集成蓝牙功能的短距离无线通讯模块。

转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi            欢迎加入讨论群 64770604

一、实验器材

1、TPYboard V102板  一块

2、无线蓝牙串口透传模块HC-06   一个 

3、OLED 屏 一块

二、无线蓝牙串口透传模块

1、无线蓝牙串口透传模块,又叫蓝牙模块,是一种集成蓝牙功能的短距离无线通讯模块。按照协议标准,分为1.2、2.0、2.1、4.0和4.1。4.0以上又称为BLE。蓝牙模块按照用途可分为数据蓝牙模块和语音蓝牙模块。数据蓝牙模块主要用于无线数据传输,语音蓝牙模块则主要完成语音及立体声音频的无线数据传输。蓝牙模块的接口分为串口、usb口、数字IO口,模拟IO口、SPI编程接口及语音接口。本实验中使用的蓝牙模块为串口无线数据模块。

2、常用的蓝牙模块:HC05蓝牙模块和HC06蓝牙模块属于HC民用级串口蓝牙模块,HC03和HC04属于HC工业级串口蓝牙模块。目前大部分蓝牙产品都使用民用级。其中HC05是主从一体,既可以搜索蓝牙也可以被搜索,HC06是从机模块,只能是被搜索。这个实验中,我们使用从机模块就足够,因为采用HC06。

 

3、HC06的主要应用场景

(1)可用于各种带蓝牙功能的电脑、蓝牙主机、手机、PDA以及智能家居等

(2)宽波特率范围4800-1382400,并且模块兼容单片机系统。

(3)可以很容易的利用手机蓝牙软件进行调试。

三、蓝牙模块HC06的使用

     这里我们用一个例子来简单说明蓝牙模块HC06如何使用。

     例子:手机蓝牙调试工具向HC06发送R时,点亮tpyboard上的LED3,当发送Y时,关闭LED3.

 1、连线方法

 

 

2、手机蓝牙调试工具

    手机蓝牙调试工具有很多,这里我们选用蓝牙串口助手。图标如图

         这个软件可以进行数据的收发,这个功能可以实现数据的监控,如图数据监控的截图

还可以进行模拟按键的数据收发(这个功能可以方便我们做个蓝牙遥控小车这一类的DIY),这个功能可以设置一下,详细的步骤如下:

1、点击模式切换,切换至监控站模式;

2、点击页面中的右下角的三个点(功能扩展键)选择更多

3、选择地面站设置,界面如图

 

在这里设置好了之后点击确定就可以保存设置。

3、用手机控制LED3的亮灭

程序代码:

import pyb
from pyb import UART
from pyb import Pin
ULY=UART(2,9600)#(TX, RX) = (X3, X4)
while True:
    if(ULY.any()>0):
        scs=ULY.readall()
        print(scs)

实现效果:

http://v.youku.com/v_show/id_XMjUzNDUwNTM0MA==.html

 

四、舵机

1、舵机

   每个玩过机器人的应该都听说过这个小东西,或者听到过它转起来时发出的“吱吱吱”声音。他与普通电机不同,他可以在指令下旋转0到180度之间的任意角度。比如我们在控制机器人的胳膊转动时,就可以用舵机来控制其抬起或者是放下的角度。

2、舵机的控制与选择

舵机一般都是采用三线控制,即GND、POWER和control(PWM)。

舵机在选择时,有很多种,一般选择时采用以下指标:

大小:舵机身材不同,从大到小,一直到微型有很多种,选择适合你项目的舵机。

重量:根据项目要求选择合适重量的舵机。

扭力:就是舵机有多大的力。在5V的电压下,标准舵机的扭力是5.5千克/厘米(75盎司/英寸)。

转速:从一个位置旋转到另一个位置所需的时长。在5V的电压下,舵机标准转度是0.2秒移动60度。

3、支架

   选择好舵机,还要选择合适的支架,保障舵机能够在平台上运转。

 五、手机蓝牙控制舵机旋转

        使用蓝牙串口助手软件发送想让舵机转动的角度,然后舵机相应命令,转动相应的角度。

1、连线方法

 

2、代码

import pyb
from pyb import UART
from pyb import Pin
from pyb import Servo
ULY=UART(2,9600)#(TX, RX) = (X3, X4)
i=1
ds=0
s=Servo(1)
scs=0
while i>0:
    ds=int(scs)-90
    s.angle(ds,300)
    pyb.delay(1500)
    if(ULY.any()>0):
        scs=ULY.readall()

 

3、演示效果

http://v.youku.com/v_show/id_XMjUzNDUwNjkwOA==.html

 

 

目录
相关文章
|
1月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
289 7
|
1月前
|
存储 Java 数据处理
(numpy)Python做数据处理必备框架!(一):认识numpy;从概念层面开始学习ndarray数组:形状、数组转置、数值范围、矩阵...
Numpy是什么? numpy是Python中科学计算的基础包。 它是一个Python库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种方法,包括数学、逻辑、形状操作、排序、选择、I/0 、离散傅里叶变换、基本线性代数、基本统计运算、随机模拟等等。 Numpy能做什么? numpy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++
301 0
|
1月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
169 1
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
259 1
|
1月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
222 0
|
1月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
336 4
|
1月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
248 0
|
1月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
174 0
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
366 62
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
258 61