庐山派K230学习日志1 从点灯到吃灰

打印 上一主题 下一主题

主题 1010|帖子 1010|积分 3030

1 简介​

庐山派以K230为主控芯片,支持三路摄像头同时输入,典型网络下的推理能力可达K210的13.7倍(算力约为6TOPS)。支持CanMV,可作为AI与边沿计算平台

K230简介
K230芯片集成了两颗RISC-V处理器焦点,双核玄铁C908,12nm 制程工艺,主频高达1.6GHz,是环球首款支持RISC-V Vector 1.0标准的商用SOC,配备第三代KPU处理单元,专为图像、视频、音频处理和AI加速计划,提供强劲的当地AI推理能力。支持三路MIPI CSI视频输入,最大分辨率可达4K。K230支持常见的AI计算框架如TensorFlow和PyTorch。下面是该处理器的框架图:

2 开发前准备​

序号名称数量1️⃣立创·庐山派-K230-CanMV开发板 主板1片2️⃣GC2093||OV5647 摄像头(22P 0.5mm间距)1块3️⃣TF卡(2G以上 class10品级以上)1片4️⃣Type-C数据线(用来连接电脑)1条5️⃣TF 卡读卡器(把固件烧录进TF卡)1个 安装CanMV IDE K230,下载链接,写本文时最新版本为4.0.7,大家下载时下载最新的就可以了,单击下图中的CanMV IDE K230 for windows就可以把安装包下载到当地举行安装了。

打开后按照提示举行安装就可以了,留意安装到你知道的目次,建议不要安装到C盘。

安装成功之后可以在win11系统左下角的搜刮栏中点击搜刮找到CanMV IDE K230,我电脑这里的CanMV IDE是给K210利用的,如果大家也用过k210的话在打开IDE的时候必要留意,只有后面带K230标识的才支持我们的立创·庐山派-K230-CanMV开发板。如果搜刮不到大家也可以直接去本身的安装目次的bin目次下的canmvide.exe文件。

3 获取及烧录固件​

3.1 获取固件​

   固件获取链接
  1️⃣ 【从嘉楠开发者社区获取最新固件】 (推荐)
  点击这个链接,在资料下载栏目->K230->Images->CanMV->Micropython->CanMV-K230_LCKFB_micropython_v1.2-0-g9e4d9ca_nncase_v2.9.0.img.gz。
  2️⃣ 【从Github仓库获取最新固件】
  点击这个[链接](Releases · kendryte/canmv_k230),下载最新固件留意必要下载内里带LCKFB字符的固件。
  3️⃣ 【从我们的资料包中获取】
  在我们的离线资料内里的 【1】固件 目次内里探求。
    必要留意,不管是从Github下载下来的还是从我们资料包中获取的都是压缩包,解压出来的才是固件镜像。
  ⚠️警告:
  .gz后缀末端的是压缩包,.img后缀末端的才是固件。只能往 TF卡 中只能烧录 .img文件 格式的固件,如果直接烧录 .gz文件 大概会造成开发板损坏。
  如下图中的,1是固件镜像,2是压缩包,1是2解压得出来的文件。
  

3.2 烧录固件​

下载烧录工具Rufus,下载地址:Index of /downloads,如果网络不通畅的话也可以从我们的离线资料内里的 【0】工具/【2】烧录工具/【1】Rufus 目次中获取,这个软件是免安装的,下载下来后直接双击打开就可以了。我这里用的是4.5版本,界面如下:

此时把你的TF卡插入读卡器,然后把读卡器插入电脑,我这里利用的是4G的TF卡,插入后Rufus软件界面的设备列表栏会显示一个设备,而且左下角也会提示可以检测到设备,此时就可以点击镜像文件(请选择)后方的选择按钮来选择我们要烧录的镜像了,就选择我们在上一小节中获取到的 CanMV-K230_LCKFB_micropython_v1.1-0-g5a6fc54_nncase_v2.9.0.img 文件就可以了,选择后如下图所示:

精确选择固件镜像文件后我们直接点击右下角的开始按钮,继承操作会造成TF内所有内容全部消散,必要确保你这个TF卡内部没有重要数据,然后等待烧录完成绩可以了。当Rufus软件的状态那一栏走完进度条,提示准备停当时就表现成功烧录固件了,如下图所示:

   此时我们就可以按以下步调操作:
  步调:
  

  • 关闭Rufus软件。
  • 在电脑上软件弹出我们的读卡器 。
  • 拔出读卡器。
  • 从读卡器上拔出我们烧录号固件镜像的TF卡。
  • 在 立创·庐山派-K230-CanMV开发板 未供电状态插入TF卡。
  4 立创·庐山派 启动​

完成以上操作后,我们就可以给开发板上电了。用Type-C数据线将开发板连入电脑。
如果正常启动,板子上的红色指示灯(红灯)就会主动点亮,轻微等待一会后(十秒内)。我们就可以在设备管理器中看到一个 新的USB串行设备(COMx),同时我们电脑的也会出现一个CanMV设备,可以当做U盘来访问开发板内的文件。

   ⚠️留意:
  在第一次上电时,庐山派开发板会主动将TF卡除固件镜像外的剩余空间格式化为fat,并挂载在/data文件夹,格式化会占用一些时间而且会主动举行一次重启。后续上电时不会再举行这个操作,以是第一次上电会轻微慢一点。
  固然,如果你已经安装了CanMV IDE K230,打开IDE,当 立创·庐山派-K230-CanMV开发板 正常启动后,左下角的连接图标的右上脚就会出现一个USB标志,如果没有出现则表现开发板启动失败或未成功连接电脑。下图的左边是未接入开发板的IDE,右边是接入了开发板的IDE。
  

5 运行例程​

目前烧录固件的TF卡内有所有嘉楠官方提供的例程,源码+模型文件+字体等都在TF卡中,当立创庐山派开发板连接电脑后,用户可以直接在电脑的CanMV设备中的sdcard文件夹中找到所有文件

   ⚠️留意:
  

  • 不要利用IDE自带的例程,版本太老大概无法直接运行,必要利用固件自带的例程。
  • 例程默认的摄像头利用的是CSI2,就是开发板正面的那个立式的22P摄像头座,在运行和摄像头有关的例程时必要留意。
  • 为了制止占用USB传输带宽,建议将例程拷贝至电脑当地存储后再打开复制。
  其历程examples,libs,res目次结构如表所示:
  1. sdcard:
  2. ├─examples
  3. │  ├─01-Micropython-Basics
  4. │  │      demo_crc16.py
  5. │  │      demo_files.py
  6. │  │      demo_fs_info.py
  7. │  │      demo_globals.py
  8. │  │      demo_json.py
  9. │  │      demo_logging.py
  10. │  │      demo_sha256.py
  11. │  │      demo_sys_info.py
  12. │  │      demo_thread.py
  13. │  │      demo_time.py
  14. │  │      demo_view_mem.py
  15. │  │      demo_yield.py
  16. │  │      demo_yield_task.py
  17. │  │
  18. │  ├─02-Media
  19. │  │      acodec.py
  20. │  │      audio.py
  21. │  │      mp4muxer.py
  22. │  │      rtsp_server.py
  23. │  │      video_decoder.py
  24. │  │      video_encoder.py
  25. │  │      video_player.py
  26. │  │
  27. │  ├─03-Machine
  28. │  │  ├─adc
  29. │  │  │      adc.py
  30. │  │  │
  31. │  │  ├─fft
  32. │  │  │      fft.py
  33. │  │  │
  34. │  │  ├─fpioa
  35. │  │  │      fpioa.py
  36. │  │  │
  37. │  │  ├─i2c
  38. │  │  │      i2c_master.py
  39. │  │  │      i2c_slave.py
  40. │  │  │
  41. │  │  ├─pin
  42. │  │  │      pin.py
  43. │  │  │
  44. │  │  ├─pwm
  45. │  │  │      pwm.py
  46. │  │  │
  47. │  │  ├─rtc
  48. │  │  │      rtc.py
  49. │  │  │
  50. │  │  ├─spi
  51. │  │  │      spi.py
  52. │  │  │
  53. │  │  ├─timer
  54. │  │  │      timer.py
  55. │  │  │
  56. │  │  ├─touch
  57. │  │  │      touch.py
  58. │  │  │
  59. │  │  ├─uart
  60. │  │  │      uart.py
  61. │  │  │      uart1.py
  62. │  │  │
  63. │  │  └─wdt
  64. │  │          wdt.py
  65. │  │
  66. │  ├─04-Cipher
  67. │  │      cipher.py
  68. │  │
  69. │  ├─05-AI-Demo
  70. │  │      dynamic_gesture.py
  71. │  │      eye_gaze.py
  72. │  │      face_detection.py
  73. │  │      face_landmark.py
  74. │  │      face_mesh.py
  75. │  │      face_parse.py
  76. │  │      face_pose.py
  77. │  │      face_recognition.py
  78. │  │      face_registration.py
  79. │  │      falldown_detect.py
  80. │  │      finger_guessing.py
  81. │  │      hand_detection.py
  82. │  │      hand_keypoint_class.py
  83. │  │      hand_keypoint_detection.py
  84. │  │      hand_recognition.py
  85. │  │      keyword_spotting.py
  86. │  │      licence_det.py
  87. │  │      licence_det_rec.py
  88. │  │      nanotracker.py
  89. │  │      object_detect_yolov8n.py
  90. │  │      ocr_det.py
  91. │  │      ocr_rec.py
  92. │  │      person_detection.py
  93. │  │      person_keypoint_detect.py
  94. │  │      puzzle_game.py
  95. │  │      segment_yolov8n.py
  96. │  │      self_learning.py
  97. │  │      space_resize.py
  98. │  │      tts_zh.py
  99. │  │
  100. │  ├─06-Display
  101. │  │      display_hdmi.py
  102. │  │      display_lcd.py
  103. │  │      display_virt.py
  104. │  │
  105. │  ├─07-April-Tags
  106. │  │      find_apriltags.py
  107. │  │      find_apriltags_3d_pose.py
  108. │  │
  109. │  ├─08-Codes
  110. │  │      find_barcodes.py
  111. │  │      find_datamatrices.py
  112. │  │      find_qrcodes.py
  113. │  │
  114. │  ├─09-Color-Tracking
  115. │  │      automatic_grayscale_color_tracking.py
  116. │  │      automatic_rgb565_color_tracking.py
  117. │  │      black_grayscale_line_following.py
  118. │  │      image_histogram_info.py
  119. │  │      image_statistics_info.py
  120. │  │      multi_color_code_tracking.py
  121. │  │      single_color_code_tracking.py
  122. │  │
  123. │  ├─10-Drawing
  124. │  │      arrow_drawing.py
  125. │  │      circle_drawing.py
  126. │  │      cross_drawing.py
  127. │  │      ellipse_drawing.py
  128. │  │      flood_fill.py
  129. │  │      image_drawing.py
  130. │  │      image_drawing_advanced.py
  131. │  │      image_drawing_alpha_blending_test.py
  132. │  │      keypoints_drawing.py
  133. │  │      line_drawing.py
  134. │  │      rectangle_drawing.py
  135. │  │      text_drawing.py
  136. │  │
  137. │  ├─11-Feature-Detection
  138. │  │      edges.py
  139. │  │      find_blobs.py
  140. │  │      find_lines.py
  141. │  │      find_rects.py
  142. │  │      hog.py
  143. │  │      lbp.py
  144. │  │      linear_regression_fast.py
  145. │  │
  146. │  ├─12-Image-Filters
  147. │  │      adaptive_histogram_equalization.py
  148. │  │      blur_filter.py
  149. │  │      color_binary_filter.py
  150. │  │      color_light_removal.py
  151. │  │      edge_filter.py
  152. │  │      erode_and_dilate.py
  153. │  │      gamma_correction.py
  154. │  │      grayscale_bilateral_filter.py
  155. │  │      grayscale_binary_filter.py
  156. │  │      grayscale_light_removal.py
  157. │  │      histogram_equalization.py
  158. │  │      kernel_filters.py
  159. │  │      lens_correction.py
  160. │  │      linear_polar.py
  161. │  │      log_polar.py
  162. │  │      mean_adaptive_threshold_filter.py
  163. │  │      mean_filter.py
  164. │  │      median_adaptive_threshold_filter.py
  165. │  │      median_filter.py
  166. │  │      midpoint_adaptive_threshold_filter.py
  167. │  │      midpoint_filter.py
  168. │  │      mode_adaptive_threshold_filter.py
  169. │  │      mode_filter.py
  170. │  │      negative.py
  171. │  │      perspective_and_rotation_correction.py
  172. │  │      perspective_correction.py
  173. │  │      rotation_correction.py
  174. │  │      sharpen_filter.py
  175. │  │      unsharp_filter.py
  176. │  │      vflip_hmirror_transpose.py
  177. │  │
  178. │  ├─14-Socket
  179. │  │      http_client.py
  180. │  │      http_server.py
  181. │  │      iperf3.py
  182. │  │      network_lan.py
  183. │  │      network_wlan_ap.py
  184. │  │      network_wlan_sta.py
  185. │  │      tcp_client.py
  186. │  │      tcp_server.py
  187. │  │      udp_clinet.py
  188. │  │      udp_server.py
  189. │  │
  190. │  ├─15-LVGL
  191. │  │  │  lvgl_demo.py
  192. │  │  │  lvgl_touch_demo.py
  193. │  │  │
  194. │  │  └─data
  195. │  │      ├─font
  196. │  │      │      lv_font_simsun_16_cjk.fnt
  197. │  │      │      montserrat-16.fnt
  198. │  │      │
  199. │  │      └─img
  200. │  │              animimg001.png
  201. │  │              animimg002.png
  202. │  │              animimg003.png
  203. │  │
  204. │  ├─16-AI-Cube
  205. │  │      ClassificationApp.py
  206. │  │      DetectionApp.py
  207. │  │      MultiLabelApp.py
  208. │  │      OCR_Det.py
  209. │  │      SegmentationApp.py
  210. │  │      SelfLearningApp.py
  211. │  │
  212. │  ├─17-Sensor
  213. │  │      camera_dual_bind_hdmi.py
  214. │  │      camera_mirror_flip.py
  215. │  │      camera_single_bind_hdmi.py
  216. │  │      camera_single_bind_lcd.py
  217. │  │      camera_single_show_hdmi.py
  218. │  │      camera_single_show_lcd.py
  219. │  │      camera_snapshot_and_save.py
  220. │  │      camera_triple_bind_hdmi.py
  221. │  │
  222. │  ├─18-NNCase
  223. │  │  │  ai2d+kpu.py
  224. │  │  │  kpu.py
  225. │  │  │
  226. │  │  └─face_detection
  227. │  │          face_detection_320.kmodel
  228. │  │          face_detection_ai2d_input.bin
  229. │  │          face_detection_ai2d_output.bin
  230. │  │          prior_data_320.bin
  231. │  │
  232. │  ├─99-HelloWorld
  233. │  │      helloworld.py
  234. │  │
  235. │  ├─ai_test_kmodel
  236. │  │      embedding.kmodel
  237. │  │      insect_det.kmodel
  238. │  │      landscape_multilabel.kmodel
  239. │  │      ocr_det_int16.kmodel
  240. │  │      ocr_rec_int16.kmodel
  241. │  │      ocular_seg.kmodel
  242. │  │      veg_cls.kmodel
  243. │  │
  244. │  ├─ai_test_utils
  245. │  │      0.jpg
  246. │  │      1.jpg
  247. │  │      2.jpg
  248. │  │      3.jpg
  249. │  │      4.jpg
  250. │  │      5.jpg
  251. │  │      6.jpg
  252. │  │      7.jpg
  253. │  │      8.jpg
  254. │  │      dict.txt
  255. │  │
  256. │  ├─kmodel
  257. │  │      cropped_test127.kmodel
  258. │  │      eye_gaze.kmodel
  259. │  │      face_alignment.kmodel
  260. │  │      face_alignment_post.kmodel
  261. │  │      face_detection_320.kmodel
  262. │  │      face_landmark.kmodel
  263. │  │      face_parse.kmodel
  264. │  │      face_pose.kmodel
  265. │  │      face_recognition.kmodel
  266. │  │      gesture.kmodel
  267. │  │      handkp_det.kmodel
  268. │  │      hand_det.kmodel
  269. │  │      hand_reco.kmodel
  270. │  │      hifigan.kmodel
  271. │  │      kws.kmodel
  272. │  │      licence_reco.kmodel
  273. │  │      LPD_640.kmodel
  274. │  │      nanotracker_head_calib_k230.kmodel
  275. │  │      nanotrack_backbone_sim.kmodel
  276. │  │      ocr_det_int16.kmodel
  277. │  │      ocr_rec_int16.kmodel
  278. │  │      person_detect_yolov5n.kmodel
  279. │  │      recognition.kmodel
  280. │  │      yolov5n-falldown.kmodel
  281. │  │      yolov8n-pose.kmodel
  282. │  │      yolov8n_320.kmodel
  283. │  │      yolov8n_seg_320.kmodel
  284. │  │      zh_fastspeech_1_f32.kmodel
  285. │  │      zh_fastspeech_2.kmodel
  286. │  │
  287. │  └─utils
  288. │      │  dict.txt
  289. │      │  fist.bin
  290. │      │  five.bin
  291. │      │  phone_map.txt
  292. │      │  pinyin.txt
  293. │      │  prior_data_320.bin
  294. │      │  shang.bin
  295. │      │  shear.bin
  296. │      │  small_pinyin.txt
  297. │      │  wozai.wav
  298. │      │  xia.bin
  299. │      │  you.bin
  300. │      │  zuo.bin
  301. │      │
  302. │      ├─db
  303. │      │      readme.txt
  304. │      │
  305. │      └─db_img
  306. │              id_1.jpg
  307. │              id_2.png
  308. ├─libs
  309. │      AI2D.py
  310. │      AIBase.py
  311. │      PipeLine.py
  312. │      RtspSever.py
  313. └─res
  314.     └─font
  315.             LICENSE.txt
  316.             readme.txt
  317.             SourceHanSansSC-Normal-Min.ttf
复制代码
打开CanMV IDE K230,找到你感兴趣的例程,复制粘贴去就好了(亦可以点击IDE左上角的文件->打开文件来加载必要用到的例程),比如我这里打开examples->05-AI-Demo->object_detect_yolov8n.py,复制进IDE内里,然后连接开发板后点击左下角的绿色运行小三角就可以利用了,如下动图所示:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表