合宙Air101+蓝牙模块,实现手机控制舵机转动

2023-11-16

器材:蓝牙模块JDY33,合宙Air101
接线:JDY33的串口接Air101的串口1,TX——U1_RX(PB_07),RX——U1_TX(PB_06)
舵机信号线接Air101PWM0(PB_00)
在这里插入图片描述
main.lua:

-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = 'helloworld'
VERSION = '1.0.0'

-- 引入必要的库文件(lua编写), 内部库不需要require
local sys = require 'sys'
log.info('main', 'hello world')

print(_VERSION)

if wdt then
    --添加硬狗防止程序卡死,在支持的设备上启用这个功能
    wdt.init(15000)--初始化watchdog设置为15s
    sys.timerLoopStart(wdt.feed, 10000)--10s喂一次狗
end

uart.setup(1,9600)--设置串口1的波特率为9600
uart.on(1,"receive",function(id,len)--打开串口1的回调函数,当串口1收到数据会自动调function函数
	local rec_data=uart.read(id,len)--将串口收到的数据读出
	local Number=tonumber(rec_data)--将读到的字符串转化为数子,Number为转动角度0-180,
	if Number~=nil then
		print("开发板收到来自手机的数据:",Number)--通过串口0打印在屏幕
		uart.write(id,"开发板已收到!")--发送数据给手机,告知手机已经收到数据
		pwm.open(0,50,0.0555*Number+2.5,0,100)--1/18约0.0555
	else
		print("数据有误")--通过默认串口0打印在屏幕
	end

end)
--sys.timerLoopStart(print,3000,"test")--函数变量名,函数执行周期,函数需要传入的形参

-- 用户代码已结束---------------------------------------------
-- 结尾总是这一句
sys.run()
-- sys.run()之后后面不要加任何语句!!!!!

结论与分析:

比stm32简单,主要调用4个函数
1,开启设置串口

uart.setup(1,9600)--设置串口1的波特率为9600

2,设置串口回调函数,类似stm32的中断服务函数

uart.on(1,"receive",function(id,len)--打开串口1的回调函数,当串口1收到数据会自动调function函数
end)

3,将手机发送过来的字符串传化为字符

local rec_data=uart.read(id,len)--将串口收到的数据读出
local Number=tonumber(rec_data)--将读到的字符串转化为数子,Number为转动角度0-180,

4,在回调函数里设置PWM,通过控制占空比来控制舵机

pwm.open(0,50,0.0555*Number+2.5,0,100)--1/18约0.0555
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合宙Air101+蓝牙模块,实现手机控制舵机转动 的相关文章

  • 寄存器优化补充

    一 简要概述 结构体在寄存器中应用可以简化繁琐的寄存器 这段代码在每个结构体成员前增加了一个 IO 前缀 它的原型在这段代码的第一行 代表了C 语言中的关键字 volatile 在 C 语言中该关键字用于表示变量是易变的 要求编译器不要优化
  • Pytorch cpu版安装及卸载详细教程(以及安装成功后无法在ide中使用问题解决方法)

    Pytorch cpu版安装及卸载详细教程 以及安装成功后无法在ide中使用问题解决方法 一 准备 1 首先确定python的版本 且python是64位 win R 输入cmd 确定 在页面中输入python回车 可查看python版本既

随机推荐

  • React---使用react脚手架搭建项目

    一 使用create react app创建react应用 1 1 react脚手架 xxx脚手架 用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需要的配置 语法检查 jsx编译 devServer 下载好了所有相关的依赖 可
  • eclipse改变html字体大小,细说eclipse设置字体以及字体大小?

    电脑现已成为我们工作 生活和娱乐必不可少的工具了 在使用电脑的过程中 可能会遇到eclipse设置字体以及字体大小 的问题 如果我们遇到了eclipse设置字体以及字体大小 的情况 该怎么处理怎么才能解决eclipse设置字体以及字体大小
  • 初步使用基于RESTful的前后端交互方式,包括前后端增、删、改流程

    目录 一 问题背景 二 解决方法 1 POST增 2 DELETE删 3 PUT改 4 参考源代码 一 问题背景 最开始接触web后端开发时 使用的请求大多是通过自定义的一些请求名称 比如update do delete do等 现在为了规
  • python实现卷积神经网络实现手写数字识别

    工具 tensorflow opencv import cv2 import numpy as np import tensorflow as tf np set printoptions suppress True def get tra
  • 重新定义分析 - EventBridge 实时事件分析平台发布

    对于日志分析大家可能并不陌生 在分布式计算 大数据处理和 Spark 等开源分析框架的支持下 每天可以对潜在的数百万日志进行分析 事件分析则和日志分析是两个完全不同的领域 事件分析对实时性的要求更高 需要磨平事件领域中从半结构化到结构化的消
  • ListView的视图属性View的Details的时候每一项的旁边老有个小方框,如何去掉?

    ListView有一个CheckBox属性 将其修改为false即可
  • 共享存储映射

    存储映射I O 存储映射I O memory mapped I O 使一个磁盘文件与存储空间中的一个缓冲区相映射 于是当从缓冲区中获取数据 就相当于读文件中的相应字节 与此类似 将数据存入缓冲区 则相应的字节就自动写入文件 这样 就可在不适
  • 算法序列--树

    树结构是一种非线性存储结构 存储的是具有 一对多 关系的数据元素的集合 树的结点 结点 使用树结构存储的每一个数据元素都被称为 结点 例如图中 数据元素 A 就是一个结点 父结点 双亲结点 子结点和兄弟结点 对于图中的结点 A B C D
  • laravel进阶学习之laravel生命周期

    Laravel 生命周期概括起来大致可分为三步 1 加载依赖 2 创建 Laravel 应用实例 3 接收请求并响应 加载依赖及生成实例部分 一个请求进来之后由public index php开始也由public index php结束 直
  • windows下python开发环境搭建

    写这篇文章主要目的是指导XXX如何在windows学习并使用python 内容主要包括 sdk安装 IDE的安装 IDE环境的配置 编写一个简单测试示例进行验证 这里我们选择的python开发工具为 python3 vscode pytho
  • 超融合服务器连接虚拟机,H3C UIS 6.5超融合产品新增虚拟机配置指导-5W100

    虚拟机是由一组文件构成的一个完整系统 它具有CPU 内存 网络设备 存储设备和BIOS 虚拟机中操作系统和应用程序的运行方式与在普通物理机上的运行方式没有任何区别 创建虚拟机是服务器虚拟化管理软件最基础的功能 虚拟机的创建过程不仅包括虚拟机
  • Numpy章节 2 数学函数

    章节 2 数学函数 1 通用函数 ufuncs 的使用 NumPy提供了各种通用函数 ufuncs 用于对数组进行逐元素的数学运算 这些函数可以对数组进行向量化操作 提高运算效率 示例代码 arr np array 1 2 3 4 5 平方
  • MySQL学习_01

    SQL通用语法 1 SQL 语句可以单行或多行书写 以分号结尾 2 MySQL 数据库的 SQL 语句不区分大小写 关键字建议使用大写 3 注释 单行注释 注释内容 或 注内容 MySQL 特有 多行注释 注释 SQL分类 DDL Data
  • Springmvc之JSR303和拦截器

    JSR303 拦截器 1 JSR303 什么是JSR303 JSR是Java Specification Requests的缩写 意思是Java 规范提案 是指向JCP Java Community Process 提出新增一个标准化技术规
  • pom是什么意思

  • 什么是TDD?

    作为手机硬件开发者来说 TDD问题的debug绝对是最有意思的一件事情 即使你有再丰富的手机行业开发经验 在前期的设计中都不一定能完美的排掉这个雷 同时在后期发现问题的debug中 也会走很多弯路 所以TDD问题一直是手机开发者头疼的问题
  • 最新VLC命令行参数大全(一)

    用法 vlc 选项 流 您可以在命令行中指定多个流 它们将被加入播放列表队列 指定的首个项目将被首先播放 选项风格 选项 用于设置程序执行期间的全局选项 选项 单字母版本的全局 选项 选项 仅对此选项之前的单条流生效 且优先级高于先前的设置
  • 细说三极管

    文章目录 前言 一 什么是三极管 二 三极管是哪三级 1 基极 2 集电极 3 发射极 三 三极管的分类 1 根据材料 2 根据结构 3 根据功率 4 根据工作频率 5 根据制作工艺 6 根据制外形封装 7 根据用途 四 三极管的工作原理
  • Adobe新的AI产品开放公测!Firefly带来全新的制图体验,让你效率翻倍!

    随着midjourney 还是Stable Diffusion 以及各式各样的AI绘图网站的出现 Adobe也推出AI绘图工具 Firefly 这款产品目前免费开放公测 未来将结合Photoshop Illustrator 等Adobe软件
  • 合宙Air101+蓝牙模块,实现手机控制舵机转动

    器材 蓝牙模块JDY33 合宙Air101 接线 JDY33的串口接Air101的串口1 TX U1 RX PB 07 RX U1 TX PB 06 舵机信号线接Air101PWM0 PB 00 main lua LuaTools需要PRO