python可以做硬件吗_Micropython让你会python就能做硬件
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就能做硬件相关推荐
- python和单片机的用处哪个大_用Python控制硬件1-Python控制硬件的几种方式
首先开篇名义,为什么我要用Python来控制硬件,主要还是工作需要:作为嵌入式软件工程师(工业产品为主),需要一种灵活高效的控制方法,辅助产品设计测试.多年的比较尝试下来,Python是为数不多的胜出 ...
- python可以给你干什么-你最想用python做什么?python到底能用来做什么?
我们知道python的应用前景很广阔,似乎哪个领域他都可以涉足,但是python真的在哪里都得心应手吗?我们今天就来看看这个问题: 如果你想学Python,或者你刚开始学习Python,那么你可能会问 ...
- 自学python单片机编程-作为一个硬件工程师,你该学学Python了
哈哈哈,原谅我也成了标题党.不过还是希望您能将这篇文章转发给做电子工程师的朋友看看,或许真的对他是有帮助的. 前一段时间有一篇很火的文章叫<Python正向硬件圈杀来!>,文章中谈论到了很 ...
- python到底可以做什么-编程小白必看!Python到底能做什么?
Python编程语言的入门门槛低,它的可读性强,代码简单易懂,尽管同样是使用C语言编写,但它又摒弃了C语言中复杂的指针,极大程度的简化Python的语法.对于初学者而言,学习Python不仅仅入门容易 ...
- python做excel麻烦_高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定!
原标题:高效办公必备:别人通宵做的 Excel,我用Python 半小时搞定! 最近经常听到周围的人抱怨:"工作忙,在加班--" 不知不觉,当代职场人早就被"996&qu ...
- python能开发什么产品_三周学 Python ?不,三周做个产品
我的同事在看到毫无开发经验的我用三周时间,不但从零基础用上了 Python,还做出了一个客户关系管理系统,强烈邀请我分享经验.惶恐,因为我并没有出色的智商,也没有觉得三周学 Python 是一个体现自 ...
- python中sys模块是什么内容_python中sys模块是做什么用的
python中的sys是提供了一系列有关python运行环境的变量和函数的模块,如sys.argv函数实现从程序外部向程序传递参数:sys.platform函数用于获取当前系统平台. sys模块提供了 ...
- bootstraptable 怎么在特定行添加数据_手把手教你做一个“渣”数据师,用Python代替老情人Excel...
大数据文摘出品 来源:medium 编译:张大笔茹 十年前,你说你是做数据的,大家的反应就是 -- 用 Excel 做做表. 现在,要成为一个合格的数据分析师,你说你不会 Python,大概率会被江湖 ...
- 0基础学python做什么工作好-零基础学Python,越早明白这些,越快找到好工作!...
如何学习python,就能仅靠python得到好工作? 读者A:自学python一年,用于写网络爬虫,但一直觉得自己对python理解还很低层.现在大三,打算再用一年时间学习python,让自己对这们 ...
最新文章
- 【Linux】12.ssh登录服务器一直被拒绝、以及 ssh连接总自己断开 的解决办法
- 语法分析器c语言实验报告,词法分析实验报告(C++)..doc
- StarGAN v2: Diverse Image Synthesis for Multiple Domains (多域多样性图像合成)
- YOLOv3 精度再次提高 4.3%,训练提速 40%!PaddleDetection全面升级
- 机器学习pdf_2020年新书-《机器学习算法入门》免费pdf分享
- php双线切换线路,双线路策略路由和脚本备份切换
- PAT:1013. 数素数 (20) AC
- idea2020 个性化设置
- Java开发手册黄山版新增规约摘录
- 微信小程序云开发 1 - 数据库
- 7654:等差数列末项计算
- python每天定时发送QQ消息--以驾校约课、给女友发情话为例
- iOS屏幕旋转技术点及解决方案总结
- 输入某辆小轿车三次的 耗油量(升)和行驶里程(公里),计算平均油耗(升/百公里)。
- Swift 语言概览
- 《疯狂java讲义》学习(44):线程同步
- struts2值栈、struts2标签、ONGL表达式、EL表达式、JSTL表达式、jsp标签
- [内核内存] [arm64] 内存回收2---快速内存回收和直接内存回收
- 如何用u盘做系统盘?
- wmf格式的图片如何通过Java转换成JPG格式的在页面上直接显示?
热门文章
- Google Earth Engine ——利用公开的河流数据计算河流的有效宽度
- 鸿蒙石之鉴流程,鸿蒙石之鉴攻略
- cesium--画线
- 【星球精选】Obsidian 中的 excalibrain 插件:免费的 theBrain ?
- php安装依赖于mysql吗_PHP_老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略,一、首先安装MySql:
对于MySql - phpStudy...
- 调研中经常遇到的问题及处理方法
- 关键路径算法以及实现
- Python框架——Tornado
- 新浪SAE上搭建WordPress个人博客网站-开篇
- 步进梁式加热炉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告