micropython gpio_【esp8226 micropython】之二 micropython GPIO

本帖最后由 Chocho 于 2017-3-7 10:54 编辑

micropython在ameba上的使用

我们以blink和呼吸灯作为列子来学习micropython在ameba上的使用,但是目前ameba暂时还不支持Timer,所以现在就还没有呼吸灯demo.

blink程序

from machine import Pin

import time

led = Pin('PC_1',Pin.OUT)

while True:

led.value(1)

time.sleep(0.5)

led.value(0)

time.sleep(0.5)

第一次要在ameba上使用micropython,必须先把micropython烧录到ameba板子里,其烧录方式十分简单,下载下面这个链接,然后解压就会得到一个ram_all.bin的文件(如果在windows下解压的有问题,可以考虑在linux或虚拟机中去解压),将这个文件烧录到ameba板子,就可以在ameba上使用micropython了,当然我们需要一个终端(putty)来写micropython

.链接:https://github.com/cwyark/micropython/releases/download/v1.8.3/ram_all.tar

1.png (10.35 KB, 下载次数: 47)

2017-2-15 14:23 上传

将ameba链接到PC后,需要安装一个驱动,驱动安装好后,就可以在我的电脑看到可移动设备MBED.https://developer.mbed.org/media/downloads/drivers/mbedWinSerial_16466.exe.

然后用右键单击->我的电脑->管理->设备管理器->端口.就可以看到ameba所在的端口号.我们可以看到我这里的端口号是COM7.

烧录方法:

驱动安装好后,在我的电脑会看到一个可移动的设备MBED,双击打开,把之前解压的到的ram_all.bin文件复制到这个MBED中,此间会看到绿灯一直闪烁,这就是正在烧录中,等到绿灯不在闪烁时,即完成烧录.

2.png (81.83 KB, 下载次数: 41)

2017-2-15 14:24 上传

准备工作做好后,打开putty终端,有如下界面,按照下面的箭头修改选择.

3.png (42.03 KB, 下载次数: 28)

2017-2-15 14:24 上传这里都是默认选择115200 8 1 None None.

4.png (32.93 KB, 下载次数: 29)

2017-2-15 14:24 上传

设置好后,点击open,然后点击几下enter键,就有如下界面,

5.png (35.93 KB, 下载次数: 36)

2017-2-15 14:24 上传

在该终端中按Ctrl+E,就会出现一个可粘贴的命令行,如下

6.png (7.98 KB, 下载次数: 30)

2017-2-15 14:24 上传

复制blink程序,然后在终端中单击右键,就完成复制了,如下图,复制完成就按Ctrl+D,取消复制就按Ctrl+C.

7.png (10.35 KB, 下载次数: 27)

2017-2-15 14:25 上传

就这么简单led灯就闪烁起来了,完成后退出按Ctrl+C(目前ameba还不支持这个命令).

micropython在esp32上的使用

esp32平台暂时还不支持Timer,所以暂时还没有呼吸灯demo.

blink程序

from machine import Pin

import time

led = Pin(13,Pin.OUT)

try:

whileTrue:

led.value(1)

time.sleep(0.5)

led.value(0)

time.sleep(0.5)

except:

led.value(0)

烧录micropython固件的方法:

用官方给的烧写工具来烧写,:https://github.com/micropython/micropython-esp32/tree/esp32/esp32

官方的烧录工具下载下来后,双击打开这个烧写工具,如下图:

8.png (72.2 KB, 下载次数: 28)

2017-2-15 14:25 上传

打开过后会有两个界面:

9.png (67.6 KB, 下载次数: 37)

2017-2-15 14:25 上传

点击右边界面的ESP32DownloadTool,我们就可以看到烧录固件的界面了,做到这里我们就离成功不远了,继续加油吧!这个时候我们把刚编译好的或者下载好的micropython的三个bin文件导入到烧录工具,在我的电脑查看端口号,用右键单击->我的电脑->管理->设备管理器->端口.注意,一定不要把地址弄错了,否则烧录可能会不成功或者烧录成功后不能正常使用.

10.png (107.57 KB, 下载次数: 24)

2017-2-15 14:25 上传

11.png (170.74 KB, 下载次数: 36)

2017-2-15 14:25 上传

烧录完成后,关闭烧录工具,然后打开运行micropython的终端putty.选择端口号(COM12)、connection type(Serial).

12.png (43.65 KB, 下载次数: 35)

2017-2-15 14:26 上传

其他的一些设置如下,设置好过后单击Open

13.png (32.5 KB, 下载次数: 30)

2017-2-15 14:26 上传

Open后按几下enter键,我们就可以在putty终端中输入micropython语言了,

14.png (11.53 KB, 下载次数: 32)

2017-2-15 14:26 上传

按住Ctrl+E可以进入paste mode,在此模式下单击右键就可以粘贴程序,粘贴成功后按Ctrl+D完成粘贴,micropython会执行粘贴的程序.

15.png (10.79 KB, 下载次数: 36)

2017-2-15 14:26 上传

这样我们的led灯就在闪烁了,有木有觉得其实点亮blink还是很简单的啊.完成后按Ctrl+C退出执行程序,led灯就停止闪烁了.

micropython在esp8266上的使用

blink和呼吸灯在esp8266上都支持,所以呢,我们就来一起学习用micropython怎么在esp8266上运行blink和呼吸灯吧!

blink程序:

from machineimport Pin

import time

led = Pin(14,Pin.OUT)

try:

while True:

led.value(1)

time.sleep(0.5)

led.value(0)

time.sleep(0.5)

except:

led.value(0)

呼吸灯程序:

from machineimport Pin,Timer,PWM

pwm =PWM(Pin(14),100)

polar = 0

duty = 0

def setLed(t):

global duty,polar

if(polar == 0):

duty+=16

if(duty >= 1008):

polar = 1

else:

duty -= 16

if(duty <= 0):

polar = 0

pwm.duty(duty)

tim = Timer(1)

tim.init(period=10,mode=Timer.PERIODIC, callback=setLed)

try:

while True:

pass

except:

tim.deinit()

pwm.deinit()

首先我们把esp8266板子连接到PC,然后用和esp32和ameba找端口号一样的方法找到我们需要的esp8266的端口号.我这里的端口号是COM9(你们的需要自己查看).

我们要在esp8266上使用micropython,就必须得先把micropython的esp8266的固件烧录到板子中,micropython官网有编译好的固件可以下载,地址:http://micropython.org/download.

然后打开运行micropython的终端putty.选择端口号(COM9)、connection type(Serial).

16.png (43.47 KB, 下载次数: 31)

2017-2-15 14:27 上传

其他的一些设置如下,设置好过后单击Open

17.png (37.57 KB, 下载次数: 31)

2017-2-15 14:27 上传Open后按几下enter键,我们就可以在putty终端中输入micropython语言了.

18.png (23.21 KB, 下载次数: 26)

2017-2-15 14:27 上传blink

19.png (9.83 KB, 下载次数: 29)

2017-2-15 14:27 上传

呼吸灯

20.png (93.11 KB, 下载次数: 27)

2017-2-15 14:27 上传

然后我们就可以用同esp32和ameba一样的方法来实现blink,但是esp8266的板子上自己带有一个led灯,所以不用外接led灯,实现呼吸灯的方法也是一样的,这里就不做过多的介绍了.

esp32平台IO口读取

IO口读取程序:

from machineimport Pin

import time

button =Pin(34,Pin.IN)

while True:

print(button.value())

time.sleep(1)

我们把读取IO口的程序输入到终端里运行,此时在IO34脚什么也不接,所以他读取到的是低电平,输出0,当我们把IO34脚接到3.3V引脚,此时读取到的是高电平,输出1,

21.png (61.98 KB, 下载次数: 34)

2017-2-15 14:27 上传

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值