432|0

50

帖子

0

TA的资源

一粒金砂(高级)

[嘉楠 CanMV K230]测评 ③点灯及代码离线运行 [复制链接]

本帖最后由 不爱胡萝卜的仓鼠 于 2024-9-29 00:54 编辑

        上一篇我们尝试在线运行了一个demo,但是在实际应用场景中,代码都是离线运行的,今天我们就要来尝试让代码离线运行。

        由于脱离电脑,就没有办法通过USB数据线把摄像头的图像上传给电脑,我手上也没有屏幕,最终我选择最基础的点灯,通过运行点灯程序,就可以很直观的看到代码是否有离线运行成功

 

一.点灯

        点灯的本质就是控制GPIO的高低电平输出,那么先来看看原理图,LED灯连接到K230的那个GPIO上

1.png
2.png

        通过原理图可以看到,使用的是GPIO52

        点灯的写法很多,可以参照一下01studio的文档:https://wiki.01studio.cc/docs/canmv_k230/basic_examples/led

        官方也提供了文档,关于点灯会可以用到以下2个文档:

1.pin模块:https://developer.canaan-creative.com/k230_canmv/main/zh/api/machine/K230_CanMV_Pin%E6%A8%A1%E5%9D%97API%E6%89%8B%E5%86%8C.html

2.FPIOA模块:https://developer.canaan-creative.com/k230_canmv/main/zh/api/machine/K230_CanMV_FPIOA%E6%A8%A1%E5%9D%97API%E6%89%8B%E5%86%8C.html

        其中FPIOA模块是用于指定这个引脚的功能,一个屋里引脚可以有多个功能,这个在单片机中很常见,他就可以对这个引脚的功能进行配置。而pin模块就是真正对GPIO进行控制使用的

    

        事实上不用FPIOA模块也可以实现点灯,直接使用pin模块就可以。代码如下,以下代码实现了闪灯效果,间隔1s

from machine import Pin
import time

#初始化52号引脚为输出模式,不拉高,驱动能力为默认的7
LED = Pin(52, Pin.OUT, pull=Pin.PULL_NONE, drive=7)

while True:
    #开灯
    LED.value(1)
    time.sleep(1)
    #关灯
    LED.value(0)
    time.sleep(1)

        效果如下

IMG_6598

 

 

二.离线运行代码

        LED灯闪烁的代码已经准备好了,接下来就可以让代码离线运行了。操作非常简单,只需要把代码的py文件保存到SD卡中即可。

        K230在USB连接后,直接可以在电脑上看到对应的盘符,名字叫CanMV,就可以直接保存文件了

3.png

 

        在CanMV中,有2个盘,一个是data,一个是sdcard    

4.png

        回头我们的代码就要放到sdcard中,现在的sdcard中文件如下

5.png

        上电默认运行的文件规则如下:

  • boot.py: 上电第1个运行的脚本,如果代码有while True阻塞,将不会运行下面的main.py。

  • main.py:上电第2个运行的脚本。

 

1.手动保存

那么只需要放一个名字叫boot.py的文件或者main.py就可以了,先试着放一个boot.py,里面内容就是我们刚才的代码

6.png

        断电后,再上电,代码成功运行

 

IMG_6600

 

2.IDE自动保存

        手动复制文件很麻烦,IDE中还提供了一键保存的方案。不过这个方法有一点需要注意,就是他是以main.py的名称保存的,那么按照刚才我们说的boot和mian的规则,你的sdcard路径下不能有boot.py,或者boot.py运行后main.py要能运行(也就是不能有while1循环阻塞,boot文件要有结束)。否则你下载进去的代码就没机会被执行了

 

        为了回头能区别出来两次保存的文件,我就把时间从1s改成了0.5s

 

        操作方法很简单,如下所示

7.png

 

这个点击是或否都行,我选择了否,不然注释就没了

8.png

等待保存 

11.png

 

保存成功

9.png

 

sdcard路径下就有main.py了

10.png

 

        现在我们不删除boot,让两个文件都在,看看是不是和之前说的一样,如果一样的话,这次上电就会一直运行boot,1s一次闪灯。

        效果如下,确实还是1s间隔,和我们的预期一样

IMG_6601

 

        然后我们把boot删除

12.png

        此时再重新上电就会运行main了,会看到0.5s间隔的闪灯,效果如下,和我们的预期一致

IMG_6602

 

 


回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表