0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在嵌入式平台上玩转Python

h1654155971.7688 来源:未知 作者:李倩 2018-05-14 08:59 次阅读

几年前做项目时第一次听说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语言的通信定位开发板。板载资源丰富,列表如下:

pIYBAFr44BGAbUCEAABg-T3v-l8378.jpg

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,跟踪器,个人安全设备等通信导航设备。

pIYBAFr44BKAdqumAAE4exw9MQE181.jpg

pIYBAFr44BKAFABEAAD6UBrSB9E397.jpg

pIYBAFr44BOAT0xKAAFneeF3wpY529.jpg

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

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

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

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

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

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

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

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

2、编写程序测试

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

pIYBAFr44BOATVDtAAAtPGfdzRs323.png

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

pIYBAFr44BSAHG6VAAB75hX8BtQ447.png

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

pIYBAFr44BSACFaaAAApbfxGg0Q558.png

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

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

pIYBAFr44BSASeDqAABdIlo9gS8644.jpg

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

pIYBAFr44BWAaFhoAADrDMTSQYM947.jpg

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

pIYBAFr44BWARjQQAAEelGCzFsI142.png

我们所看到的设备是由开发板里的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()

等等

pIYBAFr44BaACW_MAADeUpuAs-o316.png

这时来看一下板上的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的设计哲学是“优雅”、“明确”、“简单”。

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288401
  • 开发板
    +关注

    关注

    25

    文章

    4429

    浏览量

    93990
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466

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

文章出处:【微信号:weixin21ic,微信公众号:21ic电子网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    微内核操作系统在嵌入式平台上的应用

    平台上运行的操作系统一方面会根据嵌入式平台所执行的功能对内核组件进行裁剪,在满足系统的应用功能的基础上去除不必要的部分;另一方面,嵌入式平台
    发表于 09-01 13:41

    Python在开发实时嵌入式系统中的作用

    。MicroPython并不孤单。Synapse和OpenMV等公司在嵌入式系统中使用Micro Python或自己的Python端口。学习面向对象编程Python是一种免费的编程语言
    发表于 01-11 18:22

    嵌入式平台上怎么实现μC/GUI的移植?

    。为了使便携心电监护仪实现友好的人机交互和更加方便的显示,这里提出一种GUI界面系统设计,就是在基于NiosⅡ处理器的嵌入式平台上实现μC/GUI的移植,使之实现系统功能。
    发表于 11-05 07:00

    如何移植Python27到ARM-LINUX嵌入式平台

    移植Python27到ARM-LINUX嵌入式平台
    发表于 05-22 10:28

    何在手持信息终端嵌入式系统平台上实现MIDI的播放?

    本文将着重介绍如何在手持信息终端嵌入式系统平台上实现MIDI的播放。
    发表于 05-28 06:05

    何在嵌入式Linux系统平台上设计建立图像视频?

    本文使用的系统硬件平台采用Samsung公司的处理器S3C2410,并以此为基础,在基于嵌入式Linux系统平台上设计了建立图像视频的一种方法。
    发表于 06-08 06:10

    关于嵌入式Python环境的相关资料推荐

    本文首发于just4fun缘起这里将讨论的嵌入式Python环境并不是硬件嵌入式开发的那个嵌入式,如果对Python和硬件感兴趣,推荐mic
    发表于 10-28 07:09

    如何使嵌入式操作系统在不同的硬件平台上有效地运行

    平台上有效地运行,是嵌入式系统开发中需要解决的关键问题。解决的方法是在硬件平台和操作系统之间提供硬件相关层来屏蔽这些硬件的差异,给操作系统提供统一的运行环境,这种硬件相关层就是嵌入式
    发表于 11-05 08:06

    嵌入式Python的区别是什么

    从概念上来说,嵌入式Python的区别还是比较明显的,嵌入式是一个开发领域,而Python则是一门编程语言。下面就来和大家说一说嵌入式
    发表于 11-08 07:46

    嵌入式平台上板载的微控制器是什么

    1 填空题嵌入式竞赛平台上板载的微控制器是: 3 级流水线,具有 128 Kbytes的Flash存储空间。(请在第一、二空格处填写10进制数值)解析:STM32G431RBT6采用采用
    发表于 11-08 06:09

    Python在开发实时嵌入式系统中的作用是什么

    Raspberry Pi等单板计算机上被采用。随着这种广泛且不断增长的采用,人们可能想知道在实时嵌入式系统中是否存在Python的位置。以下是开发人员可能...
    发表于 12-14 06:41

    嵌入式Python环境的相关资料下载

    本文首发于just4fun缘起这里将讨论的嵌入式Python环境并不是硬件嵌入式开发的那个嵌入式,如果对Python和硬件感兴趣,推荐mic
    发表于 12-14 09:13

    激光雷达点云数据分割算法的嵌入式平台上的部署实现

    点击上方“AI算法修炼营”,选择“星标”公众号精选作品,第一时间送达这篇文章是激光雷达点云数据分割算法的嵌入式平台上的部署实现。主要的创新点有两点:一是利用多路分支采用不同分辨率输入后再...
    发表于 12-21 08:28

    在实时嵌入式系统中是否存在Python的位置

    Raspberry Pi等单板计算机上被采用。随着这种广泛且不断增长的采用,人们可能想知道在实时嵌入式系统中是否存在Python的位置。以下是开发人员可能...
    发表于 12-22 06:25

    Qt在海思嵌入式平台上的GDB调试过程是怎样的

    Qt在海思嵌入式平台上的GDB调试过程是怎样的
    发表于 12-24 06:33