K210(SiPEED MaixBit)MicroPython使用参考(二、初步应用之点灯)

11 篇文章 8 订阅

0.首先确保软硬件环境已安装配置好:

1)最新固件,一般情况下通用固件即可,可根据具体需要更新其他版本

2)K210开发板,摄像头,显示屏均按要求连接好

3)MaixPy IDE安装完成,工作正常,能够通过串口与K210正常通信

1.Helloworld

文件->示例->01-Baseics->Helloworld.py,“开始(运行脚本)”:

等待5-10秒钟,屏会显示出摄像头所采集到的图像,同时MaixPy IDE的帧缓冲区也会出现该图像。

2.点1个灯

文件->新建文件,拷贝以下代码(来自SiPEED官方):

from fpioa_manager import fm
from Maix import GPIO

io_led_red = 13
fm.register(io_led_red, fm.fpioa.GPIO0)

led_r=GPIO(GPIO.GPIO0, GPIO.OUT)
led_r.value(0)

连接开发板,点击“开始(运行脚本)”,此时开发板靠近“BOOT”的一个红色LED点亮。把数字13分别改为12、14测试,可点亮绿色、蓝色LED。实际上,GPIO虽然设为输出,但仍可读入数据,因此如果要使灯闪烁起来,读取端口值并进行减1取绝对值运算(!不可用;~运算的1值-2,0值-1,1值0),代码如下:

from fpioa_manager import fm
from Maix import GPIO
import utime

io_led_red = 13
fm.register(io_led_red, fm.fpioa.GPIO0)

led_r=GPIO(GPIO.GPIO0, GPIO.OUT)
led_r.value(0)
while True:
    utime.sleep_ms(500)#延时500ms
    led_r.value(abs(led_r.value()-1))

3.轮流点亮3个灯

1)运行以下代码,即完成所谓的board_info配置。其他版本板卡的配置见:Board - Sipeed Wiki

import json

config = {
  "type": "bit",
  "board_info": {
      'BOOT_KEY': 16,
      'LED_R': 13,
      'LED_G': 12,
      'LED_B': 14,
      'MIC0_WS': 19,
      'MIC0_DATA': 20,
      'MIC0_BCK': 18,
  }
}

cfg = json.dumps(config)
print(cfg)

try:
  with open('/flash/config.json', 'rb') as f:
    tmp = json.loads(f.read())
    print(tmp)
    if tmp["type"] != config["type"]:
      raise Exception('config.json no exist')
except Exception as e:
  with open('/flash/config.json', "w") as f:
    f.write(cfg)
  import machine
  machine.reset()

2)运行以下代码,即可按照红、绿、蓝的顺序,轮流闪烁3个灯(来自【K210】【MaixPy】一、Maix Dock入门之FPIOA和GPIO_Joseph Cooper的博客-CSDN博客,有修改):

from fpioa_manager import *#导入fpioa_manager模块中的所有函数
from Maix import GPIO
from Maix import FPIOA     #从Maix模块中导入GPIO和FPIOA类中的函数
import utime
from board import board_info #需添加board_info

fpioa = FPIOA()     #生成FPIOA类对象

#fm为Fpioa_Manager类已经定义的对象
fm.register(board_info.LED_R, fm.fpioa.GPIO0)#将LED_R的物理引脚信息注册到接口GPIO0
fm.register(board_info.LED_G, fm.fpioa.GPIO1)
fm.register(board_info.LED_B, fm.fpioa.GPIO2)


led_r=GPIO(GPIO.GPIO0,GPIO.OUT)
led_g=GPIO(GPIO.GPIO1,GPIO.OUT)
led_b=GPIO(GPIO.GPIO2,GPIO.OUT)

while True:
    led_r.value(0)
    utime.sleep_ms(500)#延时500ms
    led_r.value(1)
    led_g.value(0)
    utime.sleep_ms(500)
    led_g.value(1)
    led_b.value(0)
    utime.sleep_ms(500)
    led_b.value(1)

4.呼吸灯(来自K210学习笔记(四)——输出PWM_纸箱里的猫咪的博客-CSDN博客

from machine import Timer,PWM
import time


io_led_blue = 14
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_PWM)
ch = PWM(tim, freq=500000, duty=50, pin=io_led_blue)
duty=0
dir = True
while True:
    if dir:
        duty += 10
    else:
        duty -= 10
    if duty>100:
        duty = 100
        dir = False
    elif duty<0:
        duty = 0
        dir = True
    time.sleep(0.1)
    ch.duty(duty)

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SDAU2005

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值