一板网电子技术论坛

风筝
发表于: 2019-8-15 17:38:54 | 显示全部楼层

在本篇文章中,您将了解到micropython编程及其平台。在本文结束时,您可以了解到micropython及其应用程序和编程环境,您还可以使用micropython的实用库和函数编写一个简单的程序。


什么是MicroPython?

Python是一种非常流行且实用的高级编程语言。但是在编程微控制器方面,由于其高速和适当的处理能力,其他编程语言比Python更常见。 MicroPython是Python3的开源实现,包括一小部分Python标准库,并针对具有有限ROM和RAM的微控制器执行进行了优化。此版本的Python语言设计为具有高速度,可用于与某些微控制器(如pyboard、Wipy、ESP32、ESP8266和MicroBit)进行通信。


所需的材料

●    ESP8266开发板

●    适用于ESP8266的MicroPython固件

●    ESP8266 Flasher

●    putty

py-module-.compressed.jpg


为何选择ESP8266?

我们更倾向于使用ESP8266进行MicroPython编程而不是其他微控制器。使用ESP8266模块的优势在于具有用于互联网和网络连接的Wi-Fi连接,包括具有大容量RAM且价格合理的强大控制器。

py-logo-.compressed.jpg


在ESP8266上运行MicroPython

作为在ESP8266模块上运行Python脚本的第一步,您应该下载ESP8266的MicroPython固件并将其上载到电路板上。

您可以从以下链接下载ESP8266或其他微控制器固件:http://micropython.org/download

下载固件后,您应该将其上传到主板上。为了对ESP8266模块进行编程,您需要ESP8266Flasher,您可以从以下链接下载:https://github.com/nodemcu/nodemcu-flasher

要进入MicroPython编程环境或REPL(Read Evaluate Print Loop),您应该使用串行终端。我们使用Putty软件在Windows上与ESP8266进行通信。您也可以从以下链接下载Putty软件:https://www.putty.org/


现在您已经下载了所需的软件,您可以对ESP8266进行编程,如下所示:

1.   从Operation菜单中选择连接到ESP8266模块的串口。

py-2.png

2.  现在,在Config菜单中添加刚刚下载的模块的固件路径。

py-3.png

3.  现在单击Flash以在ESP8266模块上安装固件。

py-4.png


安装固件后,应为Putty软件设置以下配置以进入REPL。

1.  从Putty连接类型中选择串口连接。然后选择正确的COM并将波特率设置为115200。

py-5.png

2.  现在单击“Open”以获取REPL命令提示符。

py-6.png

注意:如果在进入REPL编程环境后文本没有出现在屏幕上,或者您无法在命令提示符下写入任何命令,请从Putty设置中进入Terminal部分并启用Force-on选项

py-7.png

1.jpg


通过WebREPL进行MicroPython编程

按照以下步骤进入WebREPL MicroPython编程环境:

1.   在浏览器中打开http://micropython.org/webrepl/。然后返回到命令提示符并输入以下命令。

  1. import webrepl_setup
复制代码

2.   运行此命令后,系统将询问您是否要启用或禁用WebREPL。输入E以启用WebREPL。

2.jpg

3.   然后,系统会要求您设置密码。输入Y后,您可以输入所需的密码。

3.jpg

4.  完成这些步骤后,连接到ESP模块的WiFi。寻找名为micropython的WiFi网络。密码默认为micropythoN。

5.  连接到WiFi后,返回浏览器中的WebREPL页面。单击“连接”并输入您之前选择的密码。

py-1.png


项目1:使用MicroPython控制LED(数字控制)

现在我们想运行一个简单的代码使用MicroPhyton控制LED。 ESP8266的电路板上有两个LED,连接到引脚2和16。要使用MicroPayton打开和关闭这些LED,您需要控制模块的输入和输出引脚(GPIO)。您可以使用machine库执行此操作。

  1. >>> import machine
复制代码

现在您可以使用此库的函数。以下命令将模块的pin2定义为输出引脚:

  1. >>> LED = machine.Pin( 2, machine.Pin.OUT)
复制代码

您可以使用以下命令打开和关闭上面定义的LED:

  1. >>>LED.on()
  2. >>>LED.off()
复制代码

或者:

  1. >>>LED.value(1)
  2. >>>LED.value(0)
复制代码

现在我们想通过在电路上添加一个键来制作一个闪烁的LED。我们还需要utime库以及machine库。


注意:当您在ESP8266上编写代码时,它继续运行!为了在模块上上传新代码,您需要使用sys库来结束仍在运行的先前代码。

  1. >>> import machine
  2. >>> import utime
  3. >>> import sys
  4. >>> LED = machine.Pin( 2, machine.Pin.OUT)
  5. >>> Button = machine.Pin( 0, machine.Pin.IN, machine.Pin.PULL_UP)
复制代码

通过将按键连接到引脚0,您可以通过按键退出以前的代码。

  1. >>>while True:
  2.   >>>  if Button.value() == 0:
  3.        >>> sys.exit()
复制代码

exit()函数结束前一个程序。

  1. # Turn LED on and then off
  2.   >>>  led.on()
  3.   >>> utime.sleep_ms(500)
  4.   >>>led.off()
  5.   >>>  utime.sleep_ms(500)
复制代码

sleep_ms()函数的作用类似于延迟函数,并以毫秒为单位生成延迟。

小提示:有关MicroPython编程及其库和函数的更多信息,请访问以下链接:https://docs.micropython.org/en/latest/library/index.html


项目2:使用MicroPython控制LED(模拟控制)

现在我们想用电位器控制LED灯。 为了控制LED灯,我们使用PWM。 将电位器连接到ESP8266模块ADC引脚。该引脚读取电位器的模拟值并将其转换为0到1024之间的数字值。然后,该数字值作为PWM占空比发送,以控制LED灯的强度。

  1. >>> import machine
  2. >>> import utime
  3. >>> import sys
  4. >>> LED = machine.Pin( 2, machine.Pin.OUT)
  5. >>> Button = machine.Pin( 0, machine.Pin.IN, machine.Pin.PULL_UP)
  6. >>> ADCpin = machine.ADC(0)
  7. >>> PWM=PWM(Pin(2))

  8. >>>while True:
  9.   >>>  if Button.value() == 0:
  10.        >>> sys.exit()

  11. >>>AnalogValue = adc.read()
  12. >>>AnalogValue = AnalogValue * (3.3 / 4095)
  13. >>>pwm.duty(AnalogValue)
  14. >>>utime.sleep_ms(2)
复制代码

以上就是本文的全部内容,希望您能学习到新的知识。如遇到问题,请随时在本帖下面进行回复。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 4 | 回复: 4



手机版|

GMT+8, 2019-11-14 18:57 , Processed in 0.093752 second(s), 31 queries . Powered by Discuz! X3.4

YiBoard一板网 © 2015-2018 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表