文档章节

Micropython+STM32制作加速度传感器无线小车

bodasisiter
 bodasisiter
发布于 2016/09/20 11:11
字数 1548
阅读 305
收藏 0

    现在无线控制已经成为了电子科学领域的主流,这次就来教大家做一个主流中的主流--无线控制的小车,先给大家看一下最终的成品演示视频:(小车详细演示视频请参见:http://www.micropython.net.cn典型实例页面)。

成品图

    首先介绍一下需要用到的材料:

  •     TPYBoardv102开发板两块
  •     小车底盘一个
  •     LORA无线模块两块
  •     充电宝一个
  •     9014三极管两个(为什么用到它呢,后面再说)。

    在这个开发板上有一个及速度传感器,我是看到开发板上有个加速度传感器才想起来这样做的,这里的呢我们先介绍一下加速度传感器。(注:本人用的是下面的开发板,大家可根据个人喜好自行选择,这里仅以此板子为例)Micropython+STM32

    加速度传感器,包括由硅膜片、上盖、下盖,膜片处于上盖、下盖之间,键合在一起;一维或二维纳米材料 、金电极和引线分布在膜片上,并采用压焊工艺引出导线;工业现场测振传感器,主要是压电式加速度传感器。其工作原理主要利于压电敏感元件的压电效应得到与振动或者压力成正比的电荷量或者电压量。目前工业现场典型采用IEPE型加速度传感器,及内置IC电路压电加速度传感器,传感器输出与振动量正正比的电压信号,例如:100mV/g (每个加速度单位输出100mV电压值。1g=9.81m/s-2)。Micropython+STM32


    关于上面的介绍你是不是没看懂?没看懂也没关系,那是我参照官方的介绍写的,其实我也看不懂。其实通俗的说吧,加速度传感器就是通过测量由于重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。通过分析动态加速度,你可以分析出设备移动的方式。是不是还是不太懂怎么获取这个倾斜的值?那也没关系,我们的Python语言里有获得这个倾斜值的函数,直接使用就可以啦。但是这里值得注意的是,这个函数返回的倾斜度是一个值,每一个传感器因为做工时的差异,返回值不同,这个需要大家自己做实验看一下。Micropython+STM32


    得到倾斜值后,下面的工作的就简单了,那就是判断板子在怎么倾斜,然后把倾斜的信号传出去,这样就OK啦,妥妥哒。


    介绍完了这控制端的,那咱们得说说怎么把控制的信号传出吧。这里呢主要是使用了lora模块,这个模块现在还是挺流行的。我亲自去做过一个传输距离的实验,具体的距离我没测,但是我感觉最起码也得有个二三里地吧,这距离对于做个小车妥妥哒够用啦。


    说一下lora模块的使用吧,lora模块的使用呢,也很简单,串口通信,无线透传。就是说你使用单片机通过串口给模块什么,模块就给你传输什么(定点的话需要带上地址信道),这个lora模块说明说的很详细。但是是不是觉得还要用串口,感觉好麻烦?我也觉得麻烦,但是Python语言和这个开发板的功能都很强大,有一个写好的使用串口的方法,直接调用就可以(瞬间感觉开发好简单啦)。Micropython+STM32


    上面介绍了控制端的工作和原理,下面说一下被控制端(就是按在小车上的)。


    被控制端就是要使用开发板控制小车地盘的电机转动,这里被我被坑了一次,我在某宝上买这架车的时候,问了客服需不需要其他的东西,客服说不用。我感觉现在连电机的驱动都不用啦,感觉好高端,但是买回来发现还是需要一个L298N驱动。瞬间感觉被骗了,但是,悲愤的同时,我的两个9014上场了,简单的做了一个三极管开关电路,妥妥哒(虽然速度略慢)。


    信号接收部分,这个和控制端差不多的,都是使用了lora模块,然后把收到的数据做判断。判断后再按照自己的逻辑驱动电机,小车就开起来了(小车怎么拐弯的我就不介绍了,网上教程大把多)。


    上面说了这么多,其实也很抽象啦,下面来个聚象的,上图。  先上一个自己画的简单的原理图。

控制器

被控制端

    这两张图是我画来帮助大家理解的(我这样做的被控制端的电路,速度略慢。大家可以在驱动那里做个放大电路,速度可以上去的,但是不能后退,大家可以直接使用L298N驱动。),我做的时候是使用杜邦线的,并没有电路图,再上一张成品图给大家看。

    这些都是给大家参考的,大家做的时候多学习多看看,亲身体验了才能真的学到东西。
    下面的程序给大家,大家可以参考一下。更加具体的代码操作请查看http://www.micropython.net.cn

   

   本次使用的开始板 TPYBoard是遵守MIT协议由TurnipSmart公司制作的一款MicroPython开发板,它 是基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个 加速传感器、时钟模块,可在3V-10V之间的电压正常工作。

© 著作权归作者所有

共有 人打赏支持
bodasisiter
粉丝 19
博文 177
码字总数 159012
作品 0
潍坊
私信 提问
TPYBoard超全DIY案例一览:轻松玩转MicroPython开发!

TPYBoardv102是一款比较成熟和经典的MicroPython开发板,不仅适用于学习实验还能应用于大型的工业级开发,是MicroPython入门和研发的不二之选。下面我们就扒开v102的“层层外衣”来一次知识大...

bodasisiter
07/05
0
0
[MicroPython]TPYBoard智能小车“飞奔的TPYBoard装甲一号”

智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途。智能小车能够实时显示时间、速度、里程,具...

bodasisiter
07/19
0
0
TPYBoard之DIY一个无线装甲小车

  *本文作者:_橙子 ゝ,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。   智能小车作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人...

FreeBuf
07/26
0
0
安卓开发中的重力感应传感器

安卓开发中拥有多种传感器,google提供了11种传感器供应用层使用:加速度、磁力、方向、陀螺仪、光线、压力(返回当前压强)、温度、接近(检测物体与手机的距离)、重力、线性加速度和旋转矢...

Vincent540329
2015/09/29
247
0
Python这么强大, 怎样才能快速入坑?

作为一种年轻的编程语言,Python为何能在短短几年的时间内就以迅雷不及掩耳之势驰骋编程界?答案很简单,在人工智能时代,AlphaGo 都在使用的 Python语言,是最接近 AI 的编程语言。 随着Pyt...

bodasisiter
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

详解如何实现一个简单的 vuex

首先我们需要知道为何要使用 vuex。父子组件通信用 prop 和自定义事件可以搞定,简单的非父子组件通信用 bus(一个空的 Vue 实例)。那么使用 vuex 就是为了解决复杂的非父子组件通信。 仅仅...

嫣然丫丫丫
15分钟前
1
0
算法——RangePartitioner实现之reservoirSample

简介 reservoir的作用是:**在不知道文件总行数的情况下,如何从文件中随机的抽取一行?**即是说如果最后发现文字档共有N行,则每一行被抽取的概率均为1/N? 我们可以:定义取出的行号为cho...

freeli
18分钟前
1
0
Python安装及netcdf数据读写

一、在CentOS7系统上安装Python3 在anaconda官网下载(http://https://www.anaconda.com/download/#linux)(Anaconda指的是一个开源的Python发行版本,是Python的包管理器和环境管理器) 下...

voole
22分钟前
1
0
基于NEO的私链(Private Blockchain)

1.准备工作 1.NEO-GUI 2.NEO-CLI 3..NET Core Runtime (不能是2.x版本,官方建议是1.12,实际上我用1.14也是没有问题的) 4.四台windows操作系统的虚拟机(本文是基于AWS的,理论上本地跑虚...

NEO-FANS
29分钟前
1
0
linux中shell if 判断总结

UNIX Shell 里面比较字符写法 -eq 等于; -ne 不等于; -gt 大于; -lt 小于 ; -le 小于等于; -ge 大于等于; -z 空串; -n 非空串; = 两个字符相等; != 两个字符不等 无论什么编程语言都离不开条...

linuxprobe16
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部