未加星标

Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二03 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
0x01 引言

Micropython是运行在微控制器上的Python,遵守MIT协议。剑桥大学数学科学中心的Damien P. George在研究各种深奥数学、物理问题之余,还搞了一个MicroPython项目,将Python移植到ARM Cortex M微处理器上,并开发了电路板。2013年曾经在KickStarter上成功筹得近10万英镑。2014年成功完成项目,发货。 参考网站: http://www .micropython.net.cn

同时,这个项目也在GitHub上开源,至今已有1800+星,60位贡献者。George曾在2014年PyCon UK上介绍MicroPython,所用硬件平台叫pyboard。

0x02 micropython开发板概述

Micro Python是Python 3编程语言的一个简洁和快速实现,专门优化运行于一个微控制器上。它基于ANSIC,语法跟Pyton 3基本一致,拥有自家的解析器、编译器、虚拟机和类库等,下面是MicroPython支持的一些常见开发板:

1、Pyboard


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

2、Pymagic


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

3、TPYBoardV102


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

TPYBoard单片机开发板,现有TPYBoardV101、v102两个版本,其中v102为v101的升级版,新增swd接口。采用python开发语言,提供了30个GPIO,轻松使用python开发物联网产品。支持Python3.0及以上版本的直接运行,支持重力加速度传感器,支持上百周边外设配件。 参考网站: http://www .micropython.net.cn

0x03 以TPYBoardV102为例,讲解micropython如何使用。

下面以TPYBoardV102开发板为例,详解micropython如何使用。比如说,如果现在要运行第一个脚本,那么在TPYBoardV102上面只要做这么几步:

第一步:通过USB线插入TPYBoardV102跟电脑连接,然后电脑上面会弹出来一个名称为TPFLASH的U盘,如下图:


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

空间有点小只有95KB,对你没有看错,不是95MB,只有95KB。这是因为现在使用的是STM32芯片内置的flash空间,所以就只有这么大了,但是这么小写入N个python脚本文件也是足够的了。而且,我会告诉你插入TF卡后,能够扩展到4个G的嘛。

第二步:打开U盘打开后里面有如下四个文件:


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

其中main.py为开机自动运行文件,可以将自己的代码放在里面;boot.py为开机引导文件,由它加载main.py;pybcdc.inf为windows下的虚拟串口驱动文件;README.txt包含开启开发板的必要基础信息。

第三步:编辑mian.py:

现在我们可以开始编写自己的 python 程序了。用文本编辑器打开 main.py 文件。Windows 环境下可以使用记事本或者其他编辑器。Mac 和 linux 下使用你喜欢的文本编辑器即可。打开文件后你将看到如下的一行:


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

该行以 # 字符开始,意味着只是一个注释。这样的命令行不会被执行,仅为代码提供信息用在这个 main.py 加多两行,如下所示:


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

第一行表明使用 pyb 模块,这个模块包含了控制开发板的所有函数和类。

第二行打开了蓝色的 LED:先是在 pyb 模块中使用了 LED 类,创建了 LED 4 的实例,然后将其点亮

第四步:重置开发板

为运行这个小小的脚本,我们需要保存并关闭 main.py文件,然后在 USB 设备中退出(或者卸载),就像退出移动磁盘一样。

当设备安全退出或解除挂载后就来到了实现功能的地方:按下板上的复位键将重置开发板并运行写好的程序。黑色的复位按键位于右边,USB 接口下。当按下复位键后绿色的 LED 将快速闪烁,然后蓝色的 LED 保持长亮。

至此编写和运行第一个 MicroPython 程序就完成了,加油!

0x04 TPYBoard单片机开发板实用案例

实例一:点亮LEDS

pyboard 板上最容易实现的事情莫过于点亮板上附带的小灯。连接开发板,按照上篇教程中提到的登录方法,就可与在解释器中开始点亮 LED 灯了,代码如下:

myled = pyb.LED(1) myled.on() myled.off()

这些命令将控制 LED 的亮和灭。

这种方式不错,不过我们将尝试让其更智能化。在你擅长的文本编辑器里打开 pyboard 里边的 MAIN.PY 文件,写入或粘贴如下的代码。如果你是 python 新手,那么希望从此开始你能对 python 有正确的认识印象。

led = pyb.LED(2) while True: led.toggle() pyb.delay(1000)

当你保存了文件后,按一下rst键,pyboard上的绿色LED将持续闪烁。


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

实例二:TPYboard控制LCD5110显示6x8字符

先看一下LCD5110针脚含义吧(注意:LCD5110的针脚有些不一样的)

TPYBoard的针脚与5110的针脚对应关系如下:

TPYBoard LCD5110 memo

――――――――――――――――――――――――――――

# any Pin => RST Reset pin (0=reset, 1=normal)

# any Pin => CE Chip Enable (0=listen for input, 1=ignore input)

# any Pin => DC Data/Command (0=commands, 1=data)

# MOSI => DIN data flow (Master out, Slave in)

# SCK => CLK SPI clock

# 3V3 or any Pin => VCC 3.3V logic voltage (0=off, 1=on)

# any Pin => LIGHT Light (0=on, 1=off)

# GND => GND

还是看不明白的话,直接上针脚编号吧

TPYBoard LCD5110 memo

――――――――――――――――――――――――――――

Y10 => RST Reset pin (0=reset, 1=normal)

Y11 => CE Chip Enable (0=listen for input,1=ignore input)

Y9 => DC Data/Command (0=commands, 1=data)

X8 => DIN data flow (Master out, Slave in)

X6 => CLK SPI clock

VCC

Y12 => LIGHT Light (0=on, 1=off)

GND


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

接线ok后,可运行main.py了。


Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板

main.py源代码:

#main.py import pyb import upcd8544 from machine import SPI,Pin def main(): SPI = pyb.SPI(1) #DIN=>X8-MOSI/CLK=>X6-SCK #DIN =>SPI(1).MOSI 'X8' data flow (Master out, Slave in) #CLK =>SPI(1).SCK 'X6' SPI clock RST = pyb.Pin('Y10') CE = pyb.Pin('Y11') DC = pyb.Pin('Y9') LIGHT = pyb.Pin('Y12') lcd_5110 = upcd8544.PCD8544(SPI, RST, CE, DC, LIGHT) lcd_5110.lcd_write_string('Hello Python!',0,0) lcd_5110.lcd_write_string('Micropython',6,1) lcd_5110.lcd_write_string('TPYBoard',12,2) lcd_5110.lcd_write_string('v102',60,3) lcd_5110.lcd_write_string('This is a test of LCD5110',0,4) if __name__ == '__main__': main()

更多相信信息可参考网站: http://www .micropython.net.cn

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

分页:12
转载请注明
本文标题:Geek入门神器:TPYBoard-能跑MicroPython的stm32开发板
本站链接:http://www.codesec.net/view/481575.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(58)