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)