python 加速度_Micropython TPYBoard之无线加速度小车
现在无线控制已经成为了电子科学领域的主流,这次就来教大家做一个主流中的主流–无线控制的小车,先给大家看一下最终的成品演示视频:
://v.youku.com/v_show/id_XMTY2MzAzNDAzNg==.html?spm=a2h0k.8191407.0.0&from=s1.8-1-1.2
首先介绍一下需要用到的材料:
TPYBoardv102开发板两块
小车底盘一个
LORA无线模块两块
充电宝一个
9014三极管两个(为什么用到它呢,后面再说)。
在这个开发板上有一个及速度传感器,我是看到开发板上有个加速度传感器才想起来这样做的,这里的呢我们先介绍一下加速度传感器。
加速度传感器,包括由硅膜片、上盖、下盖,膜片处于上盖、下盖之间,键合在一起;一维或二维纳米材料 、金电极和引线分布在膜片上,并采用压焊工艺引出导线;工业现场测振传感器,主要是压电式加速度传感器。其工作原理主要利于压电敏感元件的压电效应得到与振动或者压力成正比的电荷量或者电压量。目前工业现场典型采用IEPE型加速度传感器,及内置IC电路压电加速度传感器,传感器输出与振动量正正比的电压信号,例如:100mV/g (每个加速度单位输出100mV电压值。1g=9.81m/s-2)。
关于上面的介绍你是不是没看懂?没看懂也没关系,那是我参照官方的介绍写的,其实我也看不懂。其实通俗的说吧,加速度传感器就是通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。通过分析动态加速度,你可以分析出设备移动的方式。是不是还是不太懂怎么获取这个倾斜的值?那也没关系,我们的Python语言里有获得这个倾斜值的函数,直接使用就可以啦。但是这里值得注意的是,这个函数返回的倾斜度是一个值,每一个传感器因为做工时的差异,返回值不同,这个需要大家自己做实验看一下。
得到倾斜值后,下面的工作的就简单了,那就是判断板子在怎么倾斜,然后把倾斜的信号传出去,这样就OK啦,妥妥哒。
介绍完了这控制端的,那咱们得说说怎么把控制的信号传出吧。这里呢主要是使用了lora模块,这个模块现在还是挺流行的。我亲自去做过一个传输距离的实验,具体的距离我没测,但是我感觉最起码也得有个二三里地吧,这距离对于做个小车妥妥哒够用啦。
说一下lora模块的使用吧,lora模块的使用呢,也很简单,串口通信,无线透传。就是说你使用单片机通过串口给模块什么,模块就给你传输什么(定点的话需要带上地址信道),这个lora模块说明说的很详细。但是是不是觉得还要用串口,感觉好麻烦?我也觉得麻烦,但是Python语言和这个开发板的功能都很强大,有一个写好的使用串口的方法,直接调用就可以(瞬间感觉开发好简单啦)。
上面介绍了控制端的工作和原理,下面说一下被控制端(就是按在小车上的)。
被控制端就是要使用开发板控制小车地盘的电机转动,这里被我被坑了一次,我在某宝上买这架车的时候,问了客服需不需要其他的东西,客服说不用。我感觉现在连电机的驱动都不用啦,感觉好高端,但是买回来发现还是需要一个L298N驱动。瞬间感觉被骗了,但是,悲愤的同时,我的两个9014上场了,简单的做了一个三极管开关电路,妥妥哒(虽然速度略慢)。
信号接收部分,这个和控制端差不多的,都是使用了lora模块,然后把收到的数据做判断。判断后再按照自己的逻辑驱动电机,小车就开起来了(小车怎么拐弯的我就不介绍了,网上教程大把多)。
上面说了这么多,其实也很抽象啦,下面来个聚象的,上图。
先上一个自己画的简单的原理图。
控制器
被控制端
这两张图是我画来帮助大家理解的(我这样做的被控制端的电路,速度略慢。大家可以在驱动那里做个放大电路,速度可以上去的,但是不能后退,大家可以直接使用L298N驱动。),我做的时候是使用杜邦线的,并没有电路图,再上一张成品图给大家
成品图
这些都是给大家参考的,大家做的时候多学习多看看,亲身体验了才能真的学到东西。
下面的程序给大家,大家可以参考一下。
控制端源代码:
[code]import pyb
xlights = (pyb.LED(2), pyb.LED(3))
ylights = (pyb.LED(1), pyb.LED(4))
from pyb import UART
from pyb import Pin
#from ubinascii import hexlify
from ubinascii import *
accel = pyb.Accel()
u2 = UART(2, 9600)
i=0
K=1
[/code]
*********************主程序************************
[code] print('while')
while (K>0):
_dataRead=u2.readall()
if(1>0):
x = accel.x()
print("x=")
print(x)
if x > 10:
xlights[0].on()
xlights[1].off()
u2.write('\x00\x05\x18YOU')
#pyb.delay(1000)
print('\x00\x01\x18YOU')
elif x < -10:
xlights[1].on()
xlights[0].off()
u2.write('\x00\x05\x18ZUO')
print('\x00\x01\x18ZUO')
#pyb.delay(1000)
else:
xlights[0].off()
xlights[1].off()
y = accel.y()
print("y=")
print(y)
if y > 15:
ylights[0].on()
ylights[1].off()
#u2.write('\x00\x05\x18HOU')
#pyb.delay(1000)
#print('\x00\x01\x18HOU')
elif y < -15:
ylights[1].on()
ylights[0].off()
u2.write('\x00\x05\x18QIAN')
#pyb.delay(1000)
print('\x00\x01\x18QIAN')
else:
ylights[0].off()
ylights[1].off()
pyb.delay(10)
[/code]
被控制端源代码:
[code]import pyb
from pyb import UART
from pyb import Pin
from ubinascii import hexlify
from ubinascii import *
M1 = Pin(‘X1’, Pin.OUT_PP)
M3 = Pin(‘Y1’, Pin.OUT_PP)
u2 = UART(2, 9600)
i=0
K=1
[/code]
*********************主程序************************
[code]“print(‘while’)
while (K>0):
M1.high()
pyb.delay(3)
M3.high()
if(u2.any()>0):
print(‘1234’)
M1.low()
M3.low()
pyb.delay(3)
_dataRead=u2.readall()
print(‘123’,_dataRead)
if(_dataRead.find(b’QIAN’)>-1):
M1.low()
M3.low()
print(‘QIAN’)
pyb.delay(250)
elif(_dataRead.find(b’ZUO’)>-1):
M1.low()
M3.high()
print(‘ZUO’)
pyb.delay(250)
elif(_dataRead.find(b’YOU’)>-1):
M1.high()
M3.low()
print(‘ZUO’)
pyb.delay(250)
[/code]
python 加速度_Micropython TPYBoard之无线加速度小车相关推荐
- python 加速度_MicroPython动手做(20)——掌控板之三轴加速度
#MicroPython动手做(20)--掌控板之三轴加速度 #简单测试3个轴加速度值的变化 from mpython import * while True: oled.fill(0) x1 = a ...
- MMS-F-A01无线加速度传感器
MMS-F-A01无线加速度传感器说明书 1.产品介绍: MMS-F-A01无线加速度传感器采用最先进的无线物联网技术--LORA技术,同时具有低功耗和长距离通信的特性,通信距离可达5km,传感器引进 ...
- android 加速度传感器测步数,基于加速度传感器的运动步数检测算法研究
基于加速度传感器的运动步数检测算法研究 为解决人体运动过程中手腕摆动对步数检测干扰的影响,提出了一种区域峰值步数检测算法.该算法根据人体运动时的加速度信号特征,使用高斯滤波去除噪声对加速度信号的影响, ...
- 单片机遥控车c语言程序,基于51单片机的无线遥控小车设计[附发射接收程序]
/***************************************************************/ /*[基于51单片机的无线遥控小车设计] 作者王*茹 */ /*** ...
- ART-PI调试记录----重力感应无线智能小车第二弹之OneNet+板载wifi控制电机转动
ART-PI-重力感应无线智能小车第二弹-----OneNet+板载wifi控制电机转动 雷德斯 and枕头们,好久不见,大家是不是更优秀了呢,哈哈,工作太忙啦,夜里肝一篇,大家久等啦,话不多说,来, ...
- Python pywifi 、Kali linux aircrack-n、Hashcat 【python、kali】破解无线WiFi密码(详细流程)
目录 1.pywifi.python破解wifi 1.1 pywifi模块下载 1.1.1运行python是在PyCharm 2020.3, 1.1.2 pywifi模块介绍并安装: 1.1.3 ...
- NRF905无线通讯小车
记录一下整的无线通讯小车,第一次使用NRF905无线模块,查了一堆资料,做了个采集小车,在此记录,防止忘记. mmexport1648565535394 功能 遥控器部分: 遥控器:遥控器上电时候停留 ...
- 基于51单片机的无线遥控小车
基于51单片机的无线遥控小车 材料:STC89C51(1个).nrf2401(2个).L298N(2个).小车底盘.18650(4个).按键若干.蜂鸣器 功能:前进.后退.左转.右转.鸣笛. 程序请移 ...
- ART-PI调试记录---重力感应无线智能小车第一弹之扩展板设计
ART-PI重力感应无线智能小车第一弹-----ART-PI扩展板设计 雷德斯 and枕头们,小飞哥又又叒好久没更新文章啦,最近实在是太忙啦,大家久等啦,这次是系列文章,一步步教你如何在ART-PI上 ...
最新文章
- Facebook万字长文:AI模型全部迁移至PyTorch框架
- 【Cocos2D-X 学习笔记】Node父类的方法和属性
- Ogre 2011-11-29
- 网易Q2季报图解:游戏营收重回百亿 净利同比降29%
- JZOJ 5466. 【NOIP2017提高A组冲刺11.9】玩游戏
- Bug邮件队列插入不了
- 「 ThoughtWorks面试 —— 一次愉快的技术交流 | 掘金技术征文」
- android studio 导入项目卡死,AndroidStudio导入新项目一直卡在Building gradle project info...
- 发布HTML 7-3
- LeetCode 1115. 交替打印FooBar
- 三星折叠屏手机出事!才用两天就“挂了”
- 空间换时间--程序策略
- RHEL 7.2 源码安装Python 3.6.2报错
- Ansible Loops
- 光猫修改rms服务器地址大全,华为光猫备份jffs2及HG8321R-RMS切换HG8321版本教程
- C语言:将3*4矩阵中找出行最大,列最小的那个元素。-将低于平均值的人数作为函数返回值,将低于平均分的分数放入below数组中。...
- 立即注册 | 甲骨文云技术嘉年华重磅开启,全球云大会精彩再现!
- 亚马逊账户安全需要做什么?亚马逊账户规则
- Web前端之布局模型
- 战地4稳定的服务器,战地4 游戏服务器