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

3个月前 (11-28 13:47)阅读2回复0
wly
wly
  • 管理员
  • 注册排名8
  • 经验值132955
  • 级别管理员
  • 主题26591
  • 回复0
楼主

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

  0x01 引言

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

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

  0x02 micropython开发板概述

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

  1、 Pyboard

  2、 Pymagic

  3、 TPYBoardV102

  TPYBoard单片机开发板,现有TPYBoardV101、v102两个版本,此中v102为v101的晋级版,新增swd接口。摘用python开发语言,供给了30个GPIO,轻松利用python开发物联网产物。撑持Python3.0及以上版本的间接运行,撑持重力加速度传感器,撑持上百周边外设配件。参考网站:

  0x03 以TPYBoardV102为例,讲解micropython若何利用。

  下面以TPYBoardV102开发板为例,详解micropython若何利用。好比说,假设如今要运行第一个脚本,那么在TPYBoardV102上面只要做那么几步:

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

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

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

  此中main.py为开机主动运行文件,能够将本身的代码放在里面;boot.py为开机引导文件,由它加载main.py;pybcdc.inf为windows下的虚拟串口驱动文件;README.txt包罗开启开发板的需要根底信息。

  第三步:编纂mian.py:

  如今我们能够起头编写本身的 python 法式了。用文本编纂器翻开 main.py 文件。Windows 情况下能够利用记事本或者其他编纂器。Mac 和 linux 下利用你喜欢的文本编纂器即可。翻开文件后你将看到如下的一行:

  该行以 # 字符起头,意味着只是一个正文。如许的号令行不会被施行,仅为代码供给信息用在那个 main.py 加多两行,如下所示:

  第一行表白利用 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将持续闪烁。

  实例二: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

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

  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()

  更多相信信息可参考网站:

0
回帖

Geek进门神器:TPYBoard-能跑MicroPython的stm32开发板 期待您的回复!

取消