如何在嵌入式平台玩转Python 先做个通讯定位的小项目

Python与机器学习 徐 自远 649℃

几年前做项目时第一次听说Python,朋友强力推荐。对于这位老大,我几乎每次和聆听完指导后的第一件是就是百度刚才那些我不听不明白的专业术语。

Python is a clear and powerful object-oriented programming language, comparable to Perl, Ruby, Scheme, or Java.

Some of Python’s notable features:

· Uses an elegant syntax, making the programs you write easier to read.

· Is an easy-to-use language that makes it simple to get your program working. This makes Python ideal for prototype development and other ad-hoc programming tasks, without compromising maintainability.

· Comes with a large standard library that supports many common programming tasks such as connecting to web servers, searching text with regular expressions, reading and modifying files.

· Python’s interactive mode makes it easy to test short snippets of code. There’s also a bundled development environment called IDLE.

· Is easily extended by adding new modules implemented in a compiled language such as C or C++.

· Can also be embedded into an application to provide a programmable interface.

· Runs anywhere, including Mac OS X, Windows, Linux, and Unix.

· Is free software in two senses. It doesn’t cost anything to download or use Python, or to include it in your application. Python can also be freely modified and re-distributed, because while the language is copyrighted it’s available under an open source license.【1】

简言之,Python是一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件, 源代码和解释器。Python遵循 GPL(GNU General Public License)协议[2] 。它具有丰富而强大的库,常被昵称为胶水语言。能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起,应用于任何平台,而且还有我们最喜欢的开源 、免费噢!

如果不想每天面对计算机如此的多国语言,不如选一两种通用语。难得它能在嵌入式开发的平台上行得开,那就来进一步熟悉吧!

1、开发板硬件测评

先从某宝上购得PYBOARD V702一块,先来看看外观;

底板硬件资源如下:

配上Nokia5110的SPI接口LCD屏,组成上一个完整的传输系统。来个全家照吧!

TPYBoard_V702是遵照MIT许可的MicroPython开发板,支持Python语言的通信定位开发板。板载资源丰富,列表如下:

1)主处理器

它的主处理器为ARM CORTEX-M4系列的STM32F405,最高工作频率168MHz,利用意法半导体的ART加速器实现了FLASH零等待状态。支持DSP指令和浮点单元,具有动态功耗调整功能和丰富的接口【2】。

• 2个USB OTG(其中一个支持HS)

• 音频:专用音频PLL和2个全双工I²S

• 通信接口多达15个(包括6个速度高达10.5 Mb/s的USART、3个速度高达42 Mb/s的SPI、 3个I²C、2个CAN和1个SDIO)

• 模拟:2个12位DAC、3个速度为2.4 MSPS或7.2 MSPS(交错模式)的12位ADC

• 定时器多达17个:频率高达168 MHz的16和32位定时器

• 可以利用支持Compact Flash、SRAM、PSRAM、NOR和NAND存储器的灵活静态存储器控制器轻松扩展存储容量

• 基于模拟电子技术的真随机数发生器

• STM32F415还整合了加密/HASH处理器,为AES 128、192、256、Triple DES和HASH(MD5、SHA-1)实现了硬件加速。

集成:STM32F405/415产品系列具有512KB(仅限于WLCSP90封装)~1MB Flash和192KB SRAM,采用尺寸小

至4 x 4.2 mm的64~144引脚封装。

2)外部设备

当然除了这颗高级的“心”之外,它更搭载了模块—-GU620。它是一款内嵌高灵敏度GPS&BEIDOU&蓝牙功能的GSM/GPRS模块,可同时支持四频段制式,有更小的体积。其中的GPS是基于UBLOX的成熟芯片组设计开发,可进行高达66个PRN信道的卫星跟踪,适用于车载监控导航,防盗跟踪,PND,跟踪器,个人安全设备等通信导航设备。

并且板子搭配了SHT20数字温湿度传感器和科美奇的三轴数字加速度传感器芯片MMA7660FC是± 1.5G三轴数字输出的I2C,超低功率,紧凑型电容式微电机的加速度计,超低功耗,小型容性MEMS的传感器,具有低通滤波器,用于0g偏移和增益误差补偿,以及用户可配置的转换成6位分辨率,用户可配置输出速率等功能。该器件通过中断引脚(INT)可以提供传感器数据变化、产品方向和姿态识别等中断。性能如下【3】:

·MMA7660FC可在六个方向定制垂直水平座向

·集成了众多智能的运动功能,如方向、震动和敲击检测集成了众多智能的运动功能,如方向,震动和敲击检测

·自动唤醒休眠功能自动唤醒休眠功能

·包括智能电源管理功能包括智能电源管理功能

相信这样丰富的外部传感器,在你下面的物联网应用中会激发出更好的创意吧!

下面我们将板子上电,效果如下:

对比色彩还是很艳丽的哦!虽然还没定到经纬度。

2、编写程序测试

下面来查看一下电脑—>设备管理,可以看到其它设备中提示如下。

并且电脑会增加一个盘符TPYBFLASH,打开后可以看到板子带的启动及应用文件,就在下面了。

需要更新一下驱动程序,右键—>更新驱动,选择PYBCDC.INF文件,安装完成后,在可以在设备管理器中看到。

到python官网上下载网址:https://www.python.org/

双击后安装完成,效果如图所示。

在开始菜单下就可以看到python的程序喽!

点击python3.5(64-bit)就打开了它的命令窗口,如图。

我们所看到的设备是由开发板里的Flash实现,并由四个文件关联组成:

1)boot.py

这个脚本文件执行时,开发板启动。它设置了开发板的多个选项参数。

2)Main.py

在boot.py运行后被执行,包含python程序的主要脚本。

3)Pybcdc.inf

Windows驱动文件,用来配置USB端口。

4)Readme.txt

开启Python的必要基础信息。

还是先来弄个LED点亮的小程序来走一下流程吧!

先将TPYBFLASH目录下的main.py用记事本的方式打开,实现点亮LED灯。

# main.py — put your code here!

import pyb //导入模块的函数和类

led=pyb.LED(2) //创建变量LED2

led.on() //点亮LED2

while True: //循环闪烁

led.toggle()

pyb.delay(500)

保存后,将这四个文件拷贝到文件夹。然后将板子从电脑上退出。当再次上电后就可以看到,Led绿灯在toggle闪烁了。

简单吧!编译都没有的噢!所见及所得。

当然这时你也可以通过串口来进行一些调试【4】。

在串口中,将串频率设成115200(与板子默认配置相关),串口对应成13,连点击连接图标。这时重启开发板就会在终端看到下面的打印信息。我们当然可以用它来做一些测试和验证。

比如输入:print(“hello world”)

Pyb.LED(1).ON()

Pyb.LED(2).ON()

等等

这时来看一下板上的LED灯,吼吼,都亮喽!

3、总结:

PyBoard支持三种启动模式

l 标准模式。先执行boot.py文件,然后再执行main.py文件。

l 恢复文件系统。将Flash文件系统恢复为出厂数据,

l 安全模式启动。假若你的文件系统被损坏,可以进入模式。

它集成了更多的传感器和外设,很方便实现物联网平台的搭建。MicroPython支持更多的平台,例如:STM32F4 Discovery Board,NUCLEO-F401RE Board,NUCLEO-F767ZI Board,ESP8266,WiPy等,在开发板内刷上固件就可以使用了。

MicroPython脚本语言最大的优点它是解释型语言,使用简单、方便、高效,而且较C,JAVA等语言更容易理解和使用。Python的设计哲学是“优雅”、“明确”、“简单”。

当然后面还会再有更多更有趣的实验与心得会与大家分享哦!

4、参考资料:

【1】https://wiki.python.org/moin/BeginnersGuide/Overview

【2】

http://www.stmcu.com.cn/Product/pro_detail/cat_code/STM32F405_415/family/81/sub_family/127/sub_child_family/153/layout/product

【3】MMA7660FC.pdf Rev 7, 11/2009

【4】http://docs.tpyboard.com/zh/latest/tpyboard/tutorial/repl/

写在最后

喜欢此篇文章或觉得这篇文章对你有帮助的读者可以点播关注或者转发,私信小编001即可获得小编自己整理的一份2018最新的python资料和0基础入门教程,欢迎初学和进阶中的小伙伴

如何在嵌入式平台玩转Python 先做个通讯定位的小项目http://t.jinritoutiao.js.cn/RNPKhk/

转载请注明:徐自远的乱七八糟小站 » 如何在嵌入式平台玩转Python 先做个通讯定位的小项目

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号