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

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

3天内不再提示

做为IT人的你 趁年轻学点Python吧

h1654155971.7688 来源:未知 作者:伍文辉 2018-05-06 09:03 次阅读

曾几何时,流行过这么一句话:再不疯狂我们就老了!这是青春的再召唤,还是献给青春的挽歌,个中滋味,也许只有内心自知!

AI蓬勃发展的今天,IT巨头都在悄悄布局,做为IT人的你,是否也准备好了?虽说Python不是进入AI领域的最佳编程语言,但毫无疑问,Python是进入其中并探索AI奥秘非常流行的编程语言。所以,趁着还年青,无论是心理还是身理,亦或是职业生涯的青春期,学点Python吧!

Adafruit推出的Metro M0 Express开发板,集MCU开发与Python一体,确实是入门Python的极佳开发板。纯Python学习,不免枯燥,如果还能在开发板上点个灯,是不是会更好一点!(话外音:还是枯燥!)

除了Python,还可以使用Arduino来开发、测试,也算是一专多能了。

先看板,再点灯,此乃学习电子的不二法门(个人经验,切勿模仿)。

初看,这货不是Arduino板么?其实不是滴,虽具其形,但内心更强大。Metro M0 Express拥有一颗 ATSAMD21G18芯,相比ATmeg328来说,在主频及存储方面都有极大的提升。引脚全面兼容Arduino UNO。

供电方面,新增了7V~9V DC供电接口,DC Jack规格为5.5/2.1mm,极性内正外负,旁边还有一个物理开关,手动打开或关断电源

与Arduino不同的是,GPIO接口不再使用过孔,而是使用贴片式,开发板背面整体一块,配合Metro Express的大大Logo,更显大气。

硬件配置方面,MCU型号为ADSAMD21G18,最高运行主频为48MHz,3.3V工作电压。存储组合则为256KB的Flash存储加32KB的SRAM;另外还板载了一片4MB的SPI存储,进一步扩充了存储需求。 Metro Express的主要特性如下:

• ATSAMD21G18核心,最高运行主频为48MHz

• 256KB/32KB的存储组合

• 2MB SPI Flash存储扩展

• 32.768KHz晶振

• 3.3V电压调节器,最大支持500mA电流

• 原生USB支持,不再需要FTDI转串口支持

• 硬件串口/I2C/SPI支持

• PWM输出

• 25个GPIO,工作电压为3.3V

• SWD调试接口

电源开关

值得指出的是,25个GPIO可除了可以复用做数字/模拟引脚外,其中还包括了一个真正的模块输出引脚A0。另外原生的USB支持,免去了类似FTDI之类的转换芯片,USB接口除了可以充当串口通讯设备外,还可以连接键盘、鼠标及MIDI设备。

另外在开发板上也集成了一个SWD调试接口,只是不知道在Arduino环境里如何使用它?

先不管这些了!上个电看看。

使用MicroUSB转换线连接开发板的USB口与PC连接,测试用的PC上安装的是Windows 10系统。当开发板与PC连接后,通过USB给开发板供电。上电后开发板的三色LED灯循环变换显示颜色,另外指示串口通信的TX指示灯开始闪烁。

Windows 10自动检测到串口设备并安装了正确的驱动程序,如下

另外PC上会多出一个大容量存储磁盘,其中包含了PYTHON启动代码及相关的资源,如下

其中main.py里面包含了相关的功能代码。在串口的输出如下

这个默认的程序有点复杂,对于初学者来说,咱们来尝试写个简单的点灯程序,也算是第一个hello world程序。

我们知道在PC上写Python程序,有很多的IDE可供选择。那么在为MCU写代码时,有什么好的IDE可供选择呢?Adafruit官方推荐使用Mu来作为Metro M0 Express的IDE。从官网下载并安装Mu程序,启动后画面如下

界面比较朴素,没有什么噱头!不过这个IDE提供了一个REPL控制台,这是个很实用的程序。当然你也许会想,用VSCode行不?用Spyder行不?当然也行,不过我们知道Python程序都提供了一个REPL环境供用户获取帮助或实验简单的代码,这个时候这些IDE就没有用了,因为这些IDE都是基于PC端的Python解释器!

先写一段简单的Python代码,与MCU无关,纯粹是验证Python解释器。

代码如下

import time

s = 0

for i in range(10):

print(i)

time.sleep(1)

print('s = {}'.format(s))

将代码保存为sum.py,如下

Mu聪明的地方在于它能将代码保存到开发板映射到PC的磁盘上,将文件命名为sum.py并保存。然后看串口中是否有输出。然而并没有,仍然是main.py程序的输出!

原来,CircuitPython在处理程序的执行时,会遵循一定的规则。CircuitPython会在磁盘上依次查找code.txt, code.py, main.txt及main.py,找到并执行第一个程序。咱们将上述代码保存为sum.py,根本不是上述文件之列,所以刚创建的文件根本就不会运行!

明白了这一点,就好办了。只需要将sum.py更名为code.py就可以了,试试!

更名后的代码文件即时生效了,如下

可以看到咱们期望的结果了。

不止如此,提示还给出了一些有用的信息,比如"Auto-reload is on"这句话告诉我们,代码文件修改并保存后会即时生效,同时我们也看到了code.py执行会优先于main.py。

最后一个有趣的地方在于,当code.py执行完毕后,我们可以按任意键进入REPL环境,如下

确实很好很强大!

不过我们前面提到Mu这个IDE时也说了,Mu本身就提供了一个REPL环境,

下面这个窗口就是REPL环境了,这是个很有用的窗口,例如我们想看看开发板GPIO接口的命名,可以在REPL里执行如下命令

熟悉Arduino编程的用户一定对A0、A1这些接口耳熟能详,所以,如果要引用其中一个接口,按照Python的规则,应该是board.XX,其中XX就是上面列出的名称了。

好,下面开始正式点灯,编辑如下代码

很光棍的一段代码,当然也好懂!保存,然后就自动运行了。看到LED灯闪啊闪,串口也有对应的输出。

然而问题来了,Cpython中的哪些库可以用呢?这个可以参考官方的文档,参见附录。上面代码中用到的一些库都在参考资源中列出来了,花5分钟熟悉一下!

说了半天,CircuitPython是啥?CircuitPython是大名鼎鼎的MicroPython的再移植产品,专门为Adafruit的部分硬件定制。

除了支持Python,开发板也支持Arduino模式开发。按照Arduino一般的开发模式,首先要下载并安装对应的板级库文件,Metro M0 Express也不例外,如下

确定后,就可以在Arduino的开发板管理器里添加对应的开发板类型了。这里碰到一点糟心的事,就是官方的PDF文档里举例使用的是另一款开发板,不是针对Metro M0 Express的,花了很长时间安装后却发现找不到Metro M0 Express这一开发板型号,重新在网页版里找到了正确的库文件后才解决!因为Arduino现在支持的开发板种类太多,很多开发板的命名也比较相似,结果往往就是找错了对象,闹了笑话,浪费了时间!

下图是正确安装了软件库后显示的板卡名称

现在可以打开一个blink程序来点灯了,编译并上传的结果如下

LED灯又开始闪烁了。

不过问题又来了,Python不能用了!

这是正常现象,现在的存储空间被ARDUINO程序占用了,所以PYTHON当然也就不能用了。怎么办呢,下面是切换回Python的方法。

首先双击开发板上的复位键,进入bootloader模式,此时PC端映射的盘符会变成METROBOOT,里面有3个文件,如下

从附录给出的CircuitPython参考里下载一个扩展名为.bin的文件,注意不要下载错了,必须是针对Metro M0的.bin文件,然后拖动到映射的盘符里,等待大约15秒钟,奇迹出现了,CircuitPython又出现了。只是此时的CircuitPython里还没有创建可运行的Python文件,自己写一个,命名为code.py或main.py,然后丢到映射盘里,又可以了!

总体来说,Metro M0 Express还是很好玩的。首先是硬件参数提升了,更高的运行主频及更大的存储空间,完败Arduino UNO R3!;其次,引入了CircuitPython的新式编程语言,一方面程序代码更简单,另一方面也为那些想要学习和了解Python的用户提供了一个学习的理由;最后一点就是灵活的引导配置模式,使得在二种编程语言(c/c++及Python)之间可以灵活切换!

至于配置过程中碰到的文档不一致的问题,只能怪笔者看文档的时候不够细心,不过如果官方在整理文档时,针对性更具体一点,也许用户的体验会更好一点吧!

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

    关注

    87

    文章

    29892

    浏览量

    268180
  • python
    +关注

    关注

    55

    文章

    4776

    浏览量

    84392
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186540

原文标题:再不学点Python,咱真老了

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

收藏 人收藏

    评论

    相关推荐

    周立功写给学单片机的年轻人 经典励志

    周立功写给学单片机的年轻人经典励志
    发表于 08-11 18:39

    怎么学点

    怎么学点阵PCB打样找华强 http://www.hqpcb.com/3 样板2天出货
    发表于 10-22 20:08

    年轻人该怎么正确应对高血压

    ,含盐或钠的调味料,罐头、腌制品、蛋黄、动物内脏、动物性脂肪要避免摄食。可多摄取多元不饱和脂肪酸,如新鲜鱼肉,对血压控制及日后冠状动脉粥状硬化有帮助。  年轻人该怎么正确应对高血压,做为年轻人来说
    发表于 04-01 16:25

    年轻人的困惑

    的发展方向也非常地迷茫。他们甚至不知道自己究竟适合什么行业,能做什么?他们应该选择跳槽、转行?还是去考研充电呢?面对种种困惑?作为年轻人又该有怎样的选择呢?作为IT爱好者来说,单片机嵌入式开发工作
    发表于 11-11 16:36

    放下的浮躁心

    种种困惑?作为年轻人又该有怎样的选择呢?作为IT爱好者来说,单片机嵌入式开发工作是一个不错的选择。发烧友专业单片机嵌入式培训技术解决的职场困惑,深圳单片机培训,西乡单片机嵌入式培训,技术咨询qq2116084661
    发表于 06-03 15:51

    Python 之父 退出Python 核心决策层,而转居幕后

    岁了,那创始退出我想也有身体的原因!毕竟不是谁都想“活到老,干到老”的。还是 Linus 好,镇得住,不服就喷服!迟早都会发生的。如同佛陀涅磐的时候,弟子问他以后如何修行,佛陀答:以戒为师。或许
    发表于 07-14 17:45

    年轻人,以后让AI给你升职加薪

    进行提问和打分,有时候会让觉得Ta没能完全看出深藏于灵魂的才华。但是,如果有一天对面坐的不再是一个“”,那么这样的面试,能想象吗?
    发表于 08-28 09:16

    机器Python仿真软件介绍

    相关知识机器Python仿真软件介绍软件安装使用Python的第一步现在,我们将尝试使该机器移动。 有关的RoBIOS命令是int VWSetSpeed(int linSpeed,
    发表于 12-20 07:53

    荣耀10全新上市,一起来看看它对“年轻人”的理解

    和30年的手机发展历程相比,「荣耀」这个名字显的年轻奔放,却不稚嫩青涩。而荣耀的定位也很契合它的标签——向年轻人输出优质的产品和文化。
    的头像 发表于 05-07 16:12 5513次阅读

    浅谈Python语言

    python是目前市面上,我个人认为是最简洁&&最优雅&&最有钱途&&最全能的编程语言,没有之一。所以既然决定了要学习python,那么就需要先下一个决心,至少决定要做为自己的主力语
    发表于 10-09 09:45 1589次阅读

    马云、雷军、李彦宏等大佬告诉年轻人是否要买房

    眼下对于年轻人来说,最大的负担可能就是买房了,而且市场环境在倒逼着年轻人尽早去考虑房子这样的大事,但是对于不少年轻人来说,想要拥有自己的一套房子,倾尽一家之力或许都不一定能搞定,所以年轻人
    发表于 11-28 15:29 2097次阅读

    小米CC9评测 契合年轻人需求的全功能拍照旗舰

    的相关产品也往往被冠以“年轻人的第一个**”,但是,小米手机真的了解年轻人的审美和喜好吗?年轻人需要的只是高性价比吗?
    的头像 发表于 07-10 10:29 4395次阅读

    Python写机器上位机

    Python写GUI的插件比较多,常用的有Tkinter、pyqt5,本将使用pyqt5写机器的上位机。Tkinter 是 Python的标准 GUI 库,是Python推荐使用的界
    发表于 05-09 11:10 0次下载
    <b class='flag-5'>Python</b>写机器<b class='flag-5'>人</b>上位机

    轰趴馆要如何搞定这届年轻人

    年轻人在追求什么?”随着00后与90后逐渐成为当前的消费主力,这个问题的答案变得愈加重要。作为消费主力,年轻人可能不再关注消费所具备的社会价值和附加价值。被消费主义洗脑的人其实只是少数,更多
    的头像 发表于 02-28 14:23 564次阅读
    轰趴馆要如何搞定这届<b class='flag-5'>年轻人</b>?

    详解pcb光学点是什么

    详解pcb光学点是什么
    的头像 发表于 10-12 10:36 1603次阅读