0 引言python真得使用越来越广泛了,记得我在6年前学习python时,当时还只是把它做为一个脚本语言来看,没事学着大神们搞搞网络安全的相关知识。然后,几年用python的应用遍地都是,让人更加吃惊的是,python都可以用于硬件开发了。说到这里,很多人可能想到的是树莓派、香蕉派,因为支持linux系统,可以进行硬件编程,同时带了rpi等python库,让你可以用python控制硬件的gpio口等。实现上,python已经完全可以脱离系统,直接进行单片机的开发了。MicroPython是在单片机上可以跑的Python,也就是说,你可以通过Python脚本语言开发单片机程序。它遵守MIT协议开源,被授权人拥有复制、修改、发行和再授权的权利。由剑桥大学的理论物理学家乔治•达明设计。和Arduino类似,但MicroPython更强大。它的语法跟Python3基本一致,拥有自家的解析器、编译器、 虚拟机和类库等。目前它支持基于32-bit的ARM处理器,比如STM32F405、STM32f407等,也就是说ARM处理器STM32F405上直接可运行Python语言,用Python语言来控制单片机。1 Micropython开发板

Micropython从诞生的那一刻起,就被很多人关注,相应的开发板也迎运而生。

1.1 pyboard官方版

当前,支持的开发板有很多,如官方的pyboard,已经有pybv10和pybv11两个版本。该版本又被称为micropython的初型,以stm32f405为mcu,1024KiB flash ROM and 192KiB RAM,带有一个tf卡槽。官方网站为www.micropython.org。

1.2 tpyboard国内版

Tpyboard几乎是国内最早支持micropython的专用开发板,官方网站为www.tpyboard.com。据了解已有基本版V0X,wifi版V202,lan版V201以及GPRS和GPS版V70X等。同时,该网站还发布了较为完整的tpyboard和micropython中文文档(http://docs.tpyboard.com/zh/latest/)

V0X

支持wifi的esp8266版

支持lan版本

支持gprs和gps版本

1.3 openmv

随着micropython的发展,一些专用开发板出现,如openmv,带摄像头的支持micropython的开发板,此开发板采用的是STM32f7系列的mcu,对图像的处理能力更强,你可以用几句python代码就能完成一个可控制的摄像头。

openmv

1.4 lopy

lopy是基于micropyhton支持LoRa, WiFi 和 Bluetooth 三种无线方式的开发板,它可以用于微型无线网关、报警器、机器人控制等,支持arduino IDE、Pymakr IDE(没有找到是什么软件),以及支持Microsoft Azure的云服务。

lopy

除了以上版本外,当前还有pycom等其它版本,这里就不一一描述了。

2、micropython能干什么

既然micropython是用Python语言能来控制单片机,那么单片机能做什么基本能反映出它能做什么。还是让我们一起看一下单片机能干什么?

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:

2.1 智能仪器

​        单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。   例如精密的测量设备(电压表、功率计,示波器,各种分析仪)。

2.2 工业控制

单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

2.3 家用电器

现在的家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。

2.4 网络和通信

现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。

2.5 医用设备领域

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。

2.6 模块化系统

某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。   在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。

2.7 汽车电子

单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、abs防抱死系统、制动系统、胎压检测等。

2.8 此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。

3 向世界说“Hello world”(以tpyboard为例)

3.1 基本的连接方法

程序调试的连接方法:通过 USB 线连接开发板的microusb口与你的 PC 机(windows,mac,linux皆可)的usb口。当连接成功后开发板将上电和进入开机程序,绿色的 LED 灯应该在半秒或更少的时间内亮起,当其熄灭时意味着开机程序已完成。此时,电脑会出现一个u盘设备,容量97K左右。该u盘里存在4个文件:

boot.py 启动文件,确定启动方式,类似引导文件

main.py  主程序,boot.py默认引导启动的程序,也就是你的python代码主要是写在这里。

pybcdc.inf 驱动程序,win7以上基本不需要驱动,个别精简系统需要安装驱动。如果确实需要安装,请参考http://www.micropython.net.cn/support/tutorial/222.html

Readme.txt

使用的连接方法:使用时其实就是给该开发板供电,供电也是用microusb,直接将5V电源通过该口引入,如你可以使用充电宝、pc等具有供电能力的设备,利用usb连接供电。

3.2 点亮板载LED 向世界说”Hello“

学习语言首先要做的就是学会hello world,同样学习单片机首先要做的就是点亮第一盏灯。这里我们来看看如何点亮tpyboard板子上本身带的灯,板子上共有4个LED,分别从里到外是LED1、LED2、LED3、LED4。这里我们以点亮LED3为例。直接修改main.py文件,代码如下:# main.py -- put your code here!

import pyb

pyb.LED(3).on()

对,就这三句话,去了注释只有两句。修改完,点击保存时,板载的第一个灯会亮起,此时一定要等灯熄灭以后,按rst键或者重新拨插下usb。灯亮的过程表示正在存储,因为此时是存在mcu的flash中,所以速度略慢一点。如果后面我们讲了如何使用tf卡后,就会发现不存在这个过程。

重新给板子上电,此时会发现led3亮了。

python可以做硬件吗_Micropython让你会python就能做硬件相关推荐

  1. python和单片机的用处哪个大_用Python控制硬件1-Python控制硬件的几种方式

    首先开篇名义,为什么我要用Python来控制硬件,主要还是工作需要:作为嵌入式软件工程师(工业产品为主),需要一种灵活高效的控制方法,辅助产品设计测试.多年的比较尝试下来,Python是为数不多的胜出 ...

  2. python可以给你干什么-你最想用python做什么?python到底能用来做什么?

    我们知道python的应用前景很广阔,似乎哪个领域他都可以涉足,但是python真的在哪里都得心应手吗?我们今天就来看看这个问题: 如果你想学Python,或者你刚开始学习Python,那么你可能会问 ...

  3. 自学python单片机编程-作为一个硬件工程师,你该学学Python了

    哈哈哈,原谅我也成了标题党.不过还是希望您能将这篇文章转发给做电子工程师的朋友看看,或许真的对他是有帮助的. 前一段时间有一篇很火的文章叫<Python正向硬件圈杀来!>,文章中谈论到了很 ...

  4. python到底可以做什么-编程小白必看!Python到底能做什么?

    Python编程语言的入门门槛低,它的可读性强,代码简单易懂,尽管同样是使用C语言编写,但它又摒弃了C语言中复杂的指针,极大程度的简化Python的语法.对于初学者而言,学习Python不仅仅入门容易 ...

  5. python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!

    原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...

  6. python能开发什么产品_三周学 Python ?不,三周做个产品

    我的同事在看到毫无开发经验的我用三周时间,不但从零基础用上了 Python,还做出了一个客户关系管理系统,强烈邀请我分享经验.惶恐,因为我并没有出色的智商,也没有觉得三周学 Python 是一个体现自 ...

  7. python中sys模块是什么内容_python中sys模块是做什么用的

    python中的sys是提供了一系列有关python运行环境的变量和函数的模块,如sys.argv函数实现从程序外部向程序传递参数:sys.platform函数用于获取当前系统平台. sys模块提供了 ...

  8. bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...

    大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...

  9. 0基础学python做什么工作好-零基础学Python,越早明白这些,越快找到好工作!...

    如何学习python,就能仅靠python得到好工作? 读者A:自学python一年,用于写网络爬虫,但一直觉得自己对python理解还很低层.现在大三,打算再用一年时间学习python,让自己对这们 ...

最新文章

  1. 【Linux】12.ssh登录服务器一直被拒绝、以及 ssh连接总自己断开 的解决办法
  2. 语法分析器c语言实验报告,词法分析实验报告(C++)..doc
  3. StarGAN v2: Diverse Image Synthesis for Multiple Domains (多域多样性图像合成)
  4. YOLOv3 精度再次提高 4.3%,训练提速 40%!PaddleDetection全面升级
  5. 机器学习pdf_2020年新书-《机器学习算法入门》免费pdf分享
  6. php双线切换线路,双线路策略路由和脚本备份切换
  7. PAT:1013. 数素数 (20) AC
  8. idea2020 个性化设置
  9. Java开发手册黄山版新增规约摘录
  10. 微信小程序云开发 1 - 数据库
  11. 7654:等差数列末项计算
  12. python每天定时发送QQ消息--以驾校约课、给女友发情话为例
  13. iOS屏幕旋转技术点及解决方案总结
  14. 输入某辆小轿车三次的 耗油量(升)和行驶里程(公里),计算平均油耗(升/百公里)。
  15. Swift 语言概览
  16. 《疯狂java讲义》学习(44):线程同步
  17. struts2值栈、struts2标签、ONGL表达式、EL表达式、JSTL表达式、jsp标签
  18. [内核内存] [arm64] 内存回收2---快速内存回收和直接内存回收
  19. 如何用u盘做系统盘?
  20. wmf格式的图片如何通过Java转换成JPG格式的在页面上直接显示?

热门文章

  1. Google Earth Engine ——利用公开的河流数据计算河流的有效宽度
  2. 鸿蒙石之鉴流程,鸿蒙石之鉴攻略
  3. cesium--画线
  4. 【星球精选】Obsidian 中的 excalibrain 插件:免费的 theBrain ?
  5. php安装依赖于mysql吗_PHP_老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略,一、首先安装MySql: 对于MySql - phpStudy...
  6. 调研中经常遇到的问题及处理方法
  7. 关键路径算法以及实现
  8. Python框架——Tornado
  9. 新浪SAE上搭建WordPress个人博客网站-开篇
  10. 步进梁式加热炉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告