TPYBoard V102:能跑Python的stm32开发板
近来micropython语言做硬件编程很火,随之而来的就开始带动着支持micropython语言编程的开发板也开始火的发烫,今天小编就来和大家介绍一款很经典的micropython开发板—TPYBoardV102开发板。
一.板载硬件资源介绍
按照惯例先来介绍一个这块开发板的硬件组成,个人感觉这个开发板的性能还是属于相当不错的,下面详细介绍一下。
TPYBoardV102是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4个LED灯、一个加速度传感器,可在3V-10V之间的电压正常工作。
主控芯片采用STM32F405,M4的内核,168MHZ的最高运行速度,1024KB的Flash,192KB的RAM,这个配置完全可以做满足大部分的实验学习和工业开发。
SD卡存储功能,最大支持8G内存的内存卡,完全不用担心采集来的数据没地方放,透露个小秘诀,这个板子紧急时刻还能客串一把读卡器。
板载四个LED灯,可以用来指示当前代码的运行状态,做各种报警或者状态显示等等,实在无聊还能做个流水灯,呼吸灯或者流水呼吸灯都行。
TPYBoardV102开发板上板载了一个加速度传感器,可以读取当前板子的倾斜和运动的状态,可以做一个实时的运动状态监测。
板载了两个按键,一个是复位按键,另一个按键是给用户自己自定义用的。
TPYBoardV102开发板
二.板载接口资源介绍
介绍了板载硬件器件,再介绍一下板子上硬件接口资源:
接口 数量 备注
GPIO 30 支持5V的有28个
SPI 2
CAN 2
I2C 2
USART 5
ADC 12 精度12bit
DAC 2
SWD 1
TPYBoardV102开发板针脚图
这些硬件接口资源用作实验和开发完全够用了。
三.典型实验介绍
接下来介绍一下我用这个板子做过的一些小实验。
1.板载器件实验介绍
先来说一下用过的板载的器件做的实验:
利用板载的加速度传感器和LED灯实验使用加速度传感器,这个实验是在采集了加速度传感器的返回值后,根据返回值进行判断,从而通过板载LED灯的状态来反应出当前开发板的状态。
这个功能很实用,可以利用这个功能可以实时检测很多物体运动状态,最经典的我感觉就是在汽车的碰撞试验中的应用了。
2.连接外设实验介绍
这个开发板上带了很多的硬件接口,非常方便大家连接外设,下面介绍几个比较经典又常用外设器件在TPYBoardV102开发板上的使用:
1.声光控小夜灯
利用TPYBoardV102开发板连接光敏电阻传感器和咪头传感器,做一个声光控小夜灯的实验,这个灯就用板子上带的LED就可以。
这个实验虽然很简单,但是很直接说明了声控灯的基本原理,在这个实验中同时用到了ADC接口和GPIO接口,在学习方面很实用的;
2.智能亮度调节小夜灯
利用TPYBoardV102开发板连接光敏电阻加上板载的LED灯,可以做一个所在地光线越暗,板子LED灯越亮度实验。
这个实验在使用了ADC接口的同时,还使用了PWM输出的功能,做成功这个实验之后,就可以做呼吸灯这一类的实验了。
3.DIY时钟
利用TPYBoardV102开发板连接LCD5110显示屏和DS3231时钟模块制作一个实时显示温度和时间日期的小电子表,要是再加上个蜂鸣器就可以做成一个闹钟。
这个实验主要是为了学使用LCD5110显示屏和DS3231时钟模块,最重要是学习SPI和I2C硬件接口的使用方法,学会SPI和I2C硬件接口后就可以使用一些列的SPI和I2C接口的器件了。
4.DIY温湿度计
利用TPYBoardV102开发板连接LCD5110显示屏和DHT11制作一个温湿度检测仪,这个就属于很实用的了,板子不做实验的时候可以摆在桌上还能看看温度湿度什么,用着自己的做的东西,心情肯定不一样。
这个实验主要是在学习使用DHT11器件和单总线的使用方法,主要的还是学习单总线的使用方法,学会单总线的使用后,就可以使用很多类似DHT11和18B20这一类的器件,还可以在两个芯片之间使用单总线通信。
5.红外寻迹小车
利用TPYBoardV102开发板连接红外传感器模块结合小车底盘,做一个红外寻迹小车。
这个实验很简单了,主要是为了学习一下L298N电机驱动模块的使用方法。
6.蓝牙无线小车
利用TPYBoardV102开发板连接蓝牙模块结合小车底盘制作一个蓝牙无线小车,蓝牙无线小车应该可以算得上的智能小车里面的经典了,这个开发板做智能小车的DIY实验制作还是很不错的。
这个实验最好是在基于红外循迹小车的基础上来做,同时学习一个串口的使用方法,个人感觉这个开发板上串口的使用做的还是非常人性化的了,配置串口非常简单,只需要一行代码即可,对于串口数据的收发也只需要一行代码就可以完成。
关于串口,还有一点个人感觉非常实用的函数封装,就是在我不需要使用串口的时候,可以把串口关掉,而且也只需要一句代码就可以完成,这样一来在长期工作的时候可以节省下很多的功耗,同时也能减少一些不必要的干扰。
这里就和大家简单的介绍这几个小实验,更多的实验和教程大家可以访问:
www.micropython.net.cn
这里有很多例程和教程,都是完全对外开放的,非常方便大家学习。
TPYBoard V102:能跑Python的stm32开发板的更多相关文章
- 复习完毕STM32开发板
经过半个晚上的折腾,终于复习了STM32开发板,并使用ST官方库调试完毕一个printf重定向到串口的程序,3.5的库同以前的库不大一样,不过最终搞好了可以睡觉了,还可以睡7个小时. ...
- 转载:百为STM32开发板教程之十二——NAND FLASH
http://bbs.21ic.com/icview-586200-1-1.html 百为STM32开发板教程之十二——NAND FLASH 参考资料:百为stm32开发板光盘V3\百为stm32开发 ...
- 转载:百为STM32开发板教程之十一——NOR FLASH
转载:http://bbs.21ic.com/icview-586199-1-1.html 百为STM32开发板教程之十一——NOR FLASH 参考文档:百为stm32开发板光盘\st官方参考资料\ ...
- stm32开发板无法正常写入的问题或者写入后无法正常运行的问题
在调试stm32的程序的时候遇到这样一个问题. 用Keil往stm32里写入程序时出现无法访问内存的错误.情况如下 然后 J-link没有提示异常.偶尔可以下载成功,但是程序无法正确的执行. 经过一番 ...
- 学完STM32开发板,就选4412开发板让你有目标的学习嵌入式开发
600余页用户使用手册 linux实验手册(资料不断更新)100期配套零基础高清视频教程 轻松入门 (资料不断更新)2000人售后认证群 在线支持 售后无忧 源码全开源 原厂技术资料经典学习书籍推荐 ...
- 制作STM32开发板要买的电子元器件
1.STM32F103VET6芯片 2.电阻(10K.1.5K.1K.510R.47R.27R.0R) 3.电容(104.4.7uf.1uf.22uf.10pf.) 4.二极管(普通二极管D1206. ...
- 用Altium Designer16 绘制STM32开发板PCB 笔记
第一部分 Altium designer 软件概括 一.安装:要安装英文版,只安装pcb design和importers/exporters 二.设置:dxp-preferences我们关心的是sy ...
- STM32开发板的TIM3开启和关闭
关闭定时器中断要考虑好多情况 1)关闭定时器时,定时器是否在处在工作状态 2)关闭定时器时,定时器是否正好进入中断,造成关闭程序出现断层,进而无法实现完整关闭程序,此时可以使用高一级别的外部中断强制进 ...
- Python玩转硬件:TPYBoard-Micropython开发板大盘点
学习python能做什么? 可以快速搭建一个漂亮的网站 可以写爬虫 实现微信机器人助手 可以实现很多自动化的任务 -- IEEE发布2017年编程语言排行榜:Python更是高居首位,那么Python ...
随机推荐
- 如何在Raspberry Pi 3B中安装Windows 10 IoT Core
Windows 10 IoT Core简介 Windows 10 IoT是微软专门为物联网生态打造的操作系统,Windows 10 IoT Core则是Windows 10 IoT 操作系统的核心版本 ...
- 如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)
我们经常要向容器传递敏感信息,最常见的莫过于密码了.比如: docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 在启动 MySQL 容器时我 ...
- iOS_应用程序的生命周期
每个iPhone程序都包括唯一一个UIApplication对象,它管理整个程序的生命周期,从载入第一个显示界面開始,而且监听系统事件.程序事件调度整个程序的运行. int main(int argc ...
- freemarker四种变量
freemarker四种变量 1.简单介绍说明 (1)数据模型中的变量:root中的变量 (2)模板中的变量:使用<#assign>定义的变量 (3)局部变量:在指令中的变量 (4)循环变 ...
- python自动化--文件处理
文件处理 格式 打开 f=open('a.txt',mode='r',encoding='utf-8') 读写 data=f.read() print(data) 关闭 f.close() 流程分析: ...
- 自学Zabbix3.5.4-监控项item-History and trends
历史和趋势是在Zabbix中存储收集数据的两种方法.然而,历史保持着每一个收集的价值,趋势保持每小时的平均信息,因此减少了对资源的需求. 1. 保留历史数据 我们可以通过如下方式来设置保留数据的时 ...
- bandit_pass
boJ9jbbUNNfktd78OOpsqOltutMc3MY1CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9UmHadQclWmgdLOKQ3YNgjWxGoRMb5luKpIwr ...
- Unable to resolve persistence unit root URL
异常信息 时间:2017-03-07 11:46:05,516 - 级别:[ WARN] - 消息: [other] The web application [ROOT] appears to hav ...
- 解决model 里 NSInteger类型
#import "CJGWCListModel.h" @implementation CJGWCListModel - (NSInteger)goods_number{ if (_ ...
- sudo,visudo
visudo修改/etc/sudoers文件 用户名/%组名 主机名/主机别名/网段=(身份)命令 若(ALL)为空则为所有身份,即包含root身份 user1 ALL=/sbin/shutdown ...