本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站。作者:酷电玩家

环境搭建

官方文档详细环境搭建教程:环境搭建

1、下载Git进行安装。

2、安装lisa zep工具,并初始化 CSK6 SDK 所需的开发环境。

3、检查开发环境

lisa info zep

开发环境的安装情况,如图:

获取源码

1、执行以下命令后,将拉取 Sample 项目 和SDK到本地并自动完成初始化:

lisa zep create --from-git https://cloud.listenai.com/zephyr/applications/app_algo_hsd_sample_for_csk6.git

AI案例体验

1、使用VSCODE打开,项目结构如下图左侧:

其中, prj.conf 文件为工程配置文件

2、打开PC端图像预览功能
打开 prj.conf 文件,将 CONFIG_WEBUSB=n 改为CONFIG_WEBUSB=y ,如下图:

3、编译固件

lisa zep build -b csk6011a_nano

4、烧录应用程序

lisa zep flash

5、使用串口烧录算法运行所需的资源
使用 USB 线接上 DAPLink USB 口进行烧录,依次执行以下命令,完成资源的烧录。

lisa zep exec cskburn -s \\.\COMx -C 6 0x400000 .\resource\cp.bin -b 748800
lisa zep exec cskburn -s \\.\COMx -C 6 0x500000 .\resource\res.bin -b 748800

6、PC 工具获取
拉取 PC 工具项目到本地:

git clone https://cloud.listenai.com/zephyr/applications/csk_view_finder_spd.git

7、打开工具
使用 Edge 浏览器打开项目 csk_view_finder_spd/src 目录下的 index.html 文件:

8、安装驱动
Windows 系统点击网页上的【 Windows 系统,使用必读】按钮,按照步骤安装驱动,在安装驱动的过程,需保持 CSK6 USB 接口与电脑的连接。

9、使用工具查看
使用TypeC数据线连接 CSK6 USB 接口至电脑,若在PC端可看到如下图提示,说明设备已被识别成功:

10、点击“选择设备”按钮,选择“CSK View Finder”选项,点击“连接”,即可看到预览图和识别结果:

PWM舵机控制

1、查看引脚定义以及修改设备树

①在.sdk\zephyr\dts\arm\csk\csk6.dtsi设备树文件中有如下定义:

可以看出 PWM 是由 通用定时器gpt0 产生的,共有 0~7 八路 PWM 通道

②打开 引脚功能定义 表格,每个引脚的 Function11 为 PWM 复用功能:

③在boards\csk6011a_nano.overlay设备树文件中的**csk6011ananopinctrl节点**里定义了一些引脚的复用功能,如摄像头引脚等:

在选择 PWM 输出引脚时需特别注意,不要与这里所使用到的引脚相同,否则可能会导致摄像头等无法正常工作

.sdk\zephyr\boards\arm\csk6011a_nano\csk6011a_nano_pinctrl.dtsi设备树文件开头定义了一个宏,如下图:

即**csk6011ananopinctrl节点就是pinctrl节点**,在 csk6011a_nano_pinctrl 里定义的是摄像头的引脚,不要随意改动,在 pinctrl 里追加了串口、SPI、IIC、PWM的一些引脚复用,如下图:

.sdk\zephyr\boards\arm\csk6011a_nano\csk6011a_nano_pinctrl.dtsi设备树文件中默认定义了四个PWM,其使用的引脚如下:

使用到了GPIOB 02、GPIOB 06、GPIOA 04、GPIOA 05四个引脚,上面定义的 PWM 默认处于关闭状态,开启 PWM 方法后面再说,先回到boards\csk6011a_nano.overlay设备树文件中,其中定义的是摄像头所使用的的引脚,有如图所示引脚定义:

其中也使用到了GPIOA 04、GPIOA 05 ,所以要使用摄像头功能,就不能开启 PWM4 和 PWM5 ,除非修改 PWM4 和 PWM5 的复用引脚

⑤因此我们可以选择 GPIOB 06(PWM2) 和 GPIOB 02(PWM6),当然也可以使用 PWM0 PWM1 PWM3 和 PWM7,不过需要在设备树文件里添加对应的 设备节点。

2、PWM使用

在开发板原理图中可以看到,GPIOB 06上接的是 LED 灯,可以验证呼吸灯,下面以 GPIOB 02(PWM6) 为例来控制舵机:

.sdk\zephyr\boards\arm\csk6011a_nano\csk6011a_nano.dts设备树文件中开启相应的 PWM,如下图:

其中status = "okay";即表示开启

.sdk\zephyr\boards\arm\csk6011a_nano\csk6011a_nano.dts设备树文件中添加舵机节点,如下图:

其中pwm-servo1即为该节点的别名,可以在程序中通过该别名获取该节点的信息

在prj.conf文件中添加 PWM 组件配置:

#打开pwm配置
CONFIG_PWM=y

在 main.c 中添加如下代码:

/* PWM */
//uint32_t period = PWM_SEC(50U);  //50Hz-即20ms
/* 获取设备树配置 */
static const struct pwm_dt_spec pwm_servo1 = PWM_DT_SPEC_GET(DT_ALIAS(pwm_servo1));
//static const struct pwm_dt_spec pwm_servo2 = PWM_DT_SPEC_GET(DT_ALIAS(pwm_servo1));void ServoControl()
{int ret;printk("PWM-based Servo\n");if (!device_is_ready(pwm_servo1.dev)) {printk("Error: PWM device %s is not ready\n",pwm_servo1.dev->name);return;}/* 设置pwm参数,通道、频率(max_period=125000HZ)、脉宽(50%)、标志(PWM_POLARITY_NORMAL) */ret = pwm_set_dt(&pwm_servo1, 20000000, 2000000);if (ret) {printk("Error %d: failed to set pulse width\n", ret);return;}
}

其中pwm_servo1 = PWM_DT_SPEC_GET(DT_ALIAS(pwm_servo1));就是通过节点别名获取节点信息,函数ServoControl()即舵机控制函数,其中调用了pwm_set_dt(&pwm_servo1, 20000000, 2000000);来设置 PWM 的周期和占空比,第一个参数就是从设备树中获取的节点信息结构体,第二个参数就是周期(单位ns,也就是20000000ns = 20ms),第三个参数就是占空比(单位ns,即2ms),对于舵机而言,周期为20ms,占空比为2ms的脉冲信号就是使舵机转到最大角度。

3、总结:以上只说明了舵机控制的基本方法,基于上述方法,结合头肩识别获取到的坐标信息,就可以实现一个简单的头肩跟踪舵机云台了,篇幅有限就不再细说了,关于头肩坐标相关内容看官方文档有说明:接口说明

【聆思CSK6 视觉AI开发套件试用】头肩、手势识别体验与PWM舵机控制相关推荐

  1. 【聆思CSK6 视觉AI开发套件试用】基于CSK6011a_nano的虚拟打砖块交互系统

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:马博 非常感谢极术社区和聆思科技提供的机会,加之前做过其他视觉模块的测试项目,于是尝试申 ...

  2. 【聆思CSK6视觉AI开发套件试用】AI手势检测识别+编译Helloworld示例

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:Zeee 前言: 首先,感谢极术社区联合聆思科技给予宝贵的试用机会.借助本次对CSK6视 ...

  3. 【聆思CSK6 视觉AI开发套件试用】AI控制直流电机转速接口打通

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:oxlm 背景 在访问极术社区时,偶然发现聆思科技的CSK6开发板的评估活动,看CSK6 ...

  4. 【聆思CSK6视觉AI开发套件试用】从部署工程师和测试工程师角度体验CSK6

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:cfx 1.体验(baipiao)之前 作为一个精通多种移动端AI框架(TFLite.A ...

  5. 【聆思CSK6 视觉AI开发套件试用】人脸识别和 tflite-micro 语音识别推理实验

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:SunnyCase 1. 前言 非常幸运得到这次测评 CSK6 视觉AI开发套件的机会, ...

  6. 【聆思CSK6视觉AI开发套件试用】基于AI手势识别的剪子包袱锤游戏

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:寒冰1988 感谢极术社区联合聆思组织的本次活动,很荣幸得到本次体验国产AI MCU的机 ...

  7. 【聆思CSK6 视觉AI开发套件试用】基于CSK6的头肩手势检测控制会议相机进行数字变焦

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:海锋 基于CSK6的头肩手势检测控制会议相机实现变倍功能 首先感谢极术社区与聆思科技的信 ...

  8. 【聆思CSK6 视觉AI开发套件试用】CSK6011与STM32F469I 开发板对比

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:冷山 1. 引言 非常感谢极术社区和聆思科技提供的这次试用机会,让我再一次被幸运击中,因 ...

  9. 【聆思CSK6 视觉AI开发套件试用】开发环境与烧写问题解决

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:ifconfig 抱歉这么晚才发文章,由于疫情被封在家了一个多星期,刚开始正常. 一.开 ...

  10. 【聆思CSK6视觉AI开发套件试用】CSK6系列头肩识别初体验

    本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:張弩拔劍 背景 前言 聆思CSK4002以先进的AI算法, 出色的性价比, 以及优越的头 ...

最新文章

  1. javascript断点调试方法
  2. python爬取aspx数据
  3. python数字类型-详解python的数字类型变量与其方法
  4. dockerclient 查看端口占用_docker 端口被占用问题解决
  5. 个人求职简历计算机应用技术学院信息门户,计算机应用技术专业求职简历范文...
  6. 0924html小测答案
  7. 数据结构(十五)dijkstra单源最短路径
  8. 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列1
  9. python网络爬虫系列教程——python网络数据爬虫误区,让你的爬虫更像人类
  10. 多分类支持向量机及其Python实现
  11. php soap 超时,PHP SoapClient超时错误处理程序
  12. docxtemplater 图片模块_使用docxtemplater来处理word模板
  13. 三星手机的计算机功能在哪里,【分享】三星手机几个投屏电脑的方法
  14. 答答星球微信答题小程序头脑王者源码带后台手机app开发排位pk
  15. Hadoop退出安全模式
  16. Unity 屏幕中显示区域截图
  17. [web] request的Content-Type小结
  18. Mysql数据备份的概念
  19. 真实烟雾效果PS笔刷
  20. FP7195转模拟恒流调光芯片在机器视觉光源的应用优势

热门文章

  1. 计算机教师笑话,笑话段子电脑学家
  2. java版本双蛇大战
  3. js代码大全(各种方法、属性)《转载》
  4. Android 面试题 经典
  5. 会长得了绝症(转自NGA)
  6. 要求有一个 abstract 类,类名为 Employee。Employee 类有一个 abstract 方法:public abstract double earnings();
  7. allatori混淆工具_代码混淆神器 Allatori
  8. 我的微语录周记2012-07-09---2012-…
  9. SolidWorks 如何在曲面上获取与基准线相交的分割线
  10. 计算机运行速度慢怎样解决方法,电脑运行速度慢的解决方法:瞬间加快电脑运行速度妙招...