龙空技术网

MicroPython 玩转硬件系列3:上电执行程序

TopSemic 649

前言:

现时看官们对“python硬件信息”都比较着重,同学们都需要剖析一些“python硬件信息”的相关文章。那么小编也在网上收集了一些关于“python硬件信息””的相关知识,希望兄弟们能喜欢,小伙伴们快快来了解一下吧!

1.引言

上一篇:MicroPython 玩转硬件系列2:点灯实验 我们在ESP32上实现了LED灯的闪烁,但是有一个问题,该功能的实现需要我们在串口终端里去手动执行代码,可不可以让ESP32上电后自动执行代码呢?当然是可以的,本篇文章介绍如何实现该功能。

2.ampy安装

ampy是什么,大家直接看下方的官方介绍即可,

github.com/scientifichackers/ampy

Adafruit MicroPython Tool (ampy) - Utility to interact with a CircuitPython or MicroPython board over a serial connection.

Ampy is meant to be a simple command line tool to manipulate files and run code on a CircuitPython or MicroPython board over its serial connection. With ampy you can send files from your computer to the board's file system, download files from a board to your computer, and even send a Python script to a board to be executed.

安装方式:

pip install adafruit-ampy -upgrade

3.ampy工具使用

前面的2篇文章,我们都是通过直接在Putty终端里写代码或者把Windows里写好的代码copy到Putty终端里执行的。有了ampy后,我们就不需要这么做了,我们可以现在Windows写好MicroPython程序,然后通过ampy工具直接运行程序。

第1步:在Windows里,写一个hello.py文件

print("Hello World!")

第2步:直接在DOS窗口里,通过ampy在板子上运行hello.py程序,执行:

ampy --port COM3 run led.py

注意:执行ampy指令前,你得确保串口没有被占用。

如果换成下方的led.py文件

from machine import Pinimport timeled=Pin(4,Pin.OUT)while True:    led.on()    print("LED on!")    time.sleep(1.0)  # Delay for 1 second.    led.off()    print("LED off!")    time.sleep(1.0)  # Delay for 1 second.

执行:

ampy --port COM3 run led.py

我们看到led在不断闪烁了,但是并没有打印信息,并且也没有退出,这是什么原因呢?

没打印的原因:By default the run command will wait for the script to finish running on the board before printing its output.

针对这种情况,我们使用下面的指令:

ampy --port COM3 run --no-output led.py

这样就不会一直停在那里了。同时我们打开PuTTY可以看到在这里一直有输出。

4.上电执行代码

通过以下3个步骤就可以实现上电自动执行代码了:

1) 将led.py改名为main.py

2) ampy --port COM3 put main.py

3) 板子重新上电,就可以看到灯不停的闪烁了

如果需要删除掉main.py,只需要执行:

ampy --port COM3 rm main.py

5.参考资料

digikey.com/en/maker/projects/micropython-basics-load-files-run-code/fb1fcedaf11e4547943abfdd8ad825ce

cirmall.com/bbs/thread-102620-1-1.html

标签: #python硬件信息