M2DOCK上手视觉指南

【有基础可跳过】促使我们做上手指南的原因永远都是以降低用户使用难度为目的,但一些基础知识(Python语法)我们还是需掌握熟悉的,而大部分的小伙伴是从K210(MaixPy)换代升级到M2DOCK(MaixPy3)的,但我们区分这两者之间的不同吗?显然刚接触的小伙伴们是不清楚的。

充足的准备能让后续的上手旅程更事半功倍(为了不掉坑里~)文档以M2DOCK的全功能套餐来演示,我们收到后会有一套M2DOCK板卡、Type-C线以及SD镜像卡,但还需准备一个USB3.0读卡器以作备用。

上手指南搭配流程图一起食用更佳~

文档示例环境:Windows10镜像版本:v831-m2dock-maixpy3-0.5.4-20230505

对于V831的镜像文件名字是有对应的规则,以后大家可以根据自己的需求来进行下载。就以v831-m2dock-maixhub-0.5.1-20220701.zip和v831-m2dock-maixpy3-0.5.1-20220701.zip来对比说明

上述镜像均为开源版,只适用于TF卡烧录启动

系统相当于燃机的原料,我们把系统烧录完成好后接着下一步安装需使用到的软件。

注意事项(超重要!):下载时确保我们安装的软件包版本(大于0.5.0)且在安装过程中会弹出安装驱动程序的提示,请根据提示安装驱动并确保安装完成才能进行下一步操作。

接下来根据注意事项来自行下载安装包并安装好驱动及软件,根据示例文档熟悉界面的基础用法。

一起搭配我们的【M2DOCK开箱大放送】视频食用更佳噢~

第一步:USBType-C数据线【需自行准备的话】请准备质量可靠或者是手机附赠的数据线,质量差的数据线会因电压问题造成开发板处于非正常工作状态导致后续影响使用,有些Type-C线只能供电。

第二步:把我们准备的镜像卡插入M2DOCK的卡槽内,并确定烧录的版本(大于0.5.1)即可。

第三步:将M2DOCK与电脑通过OTG标识的USB口连接,确认设备通电亮起(power)电源红灯,请看下图红圈别接错USB口的位置,OTG标识的丝印在板子背面。

第四步:确认屏幕出现logo或二维码(wiki)表示系统启动开始工作,同时电脑会弹出U盘标识(意味着板卡系统已准备就绪)即可进行下一环开始使用!

然后勾选卸载驱动(重要!!一定要勾选)进行卸载即可,U盘自动弹出也代表底层硬件正常可用。

如果U盘还是没有如上述步骤出现,可以重烧系统或重启设备或考虑换台电脑操作,有可能是个别系统驱动不兼容导致的,实在是解决不了请找官方的淘宝客服。

开始体验运行代码前,我们先了解M2DOCK支持多种编程方式,分别是Linuxshell(adb)命令行、Jupyternotebook(Python)开发、U盘编辑运行(Python)等。Linuxshell更多的是专业开发者或是熟悉Linux终端的同学进行使用,而如果是无基础的萌新更推荐其余两种方式。

下文全以适配软件MaixPy3IDE的使用来示例。

IDE软件启动时会附带一个keep_adb.exe命令行终端的程序提供给熟悉linux终端操作开发板的同学,软件版本0.4.2后keep_adb服务会自动调用adb配置映射(forward)端口(22,18811,18812)与板子连接的ide服务是否工作。

如何进行判断:可以在交互终端输入ps|grepmjpg查看是否存在下图红框所指示的服务。

最后确认系统防火墙是否阻止了软件底层所需要TCP1881118812的端口号(主用于运行程序和图像传输)

启动MaixPy3IDE时会弹出Jupyter的编辑网页,我们先来测试板卡的连接以及外设是否正常可用。

复制下列代码块,再点击上方菜单栏中的运行,测试板子连接是否正常。

importplatformprint(platform.platform())importtimeprint(time.asctime())

由运行后打印出的结果我们可知以下信息:

当确定板卡的连接状态正常后,我们来测试屏幕以及摄像头的功能是否正常。

运行以下程序后可在代码下方看见摄像头实时获取的图像。

frommaiximportcamera,display,image#引入python模块包whileTrue:img=camera.capture()#从摄像头中获取一张图像display.show(img)#将图像显示出来

图中我们看见运行程序后可实时看到摄像头捕捉的画面,正面我们的屏幕以及摄像头都是正常可用的。

如果屏幕没有显示内容:那么首先确认一下镜像镜像版本,并且确认一下外设和驱动对的上。

上文我们使用了Maixpy3IDE搭载的Jupyter(Python)运行代码并测试了屏幕及摄像头的功能,接下来我们来体验Linuxshell命令行的使用并给M2DOCK进行联网。

M2Dock带有2.4G无线模组,可以用来连接2.4G频段的无线网络,因镜像的更新(WiFi)链接方式有两种可供大家选择,但是文档示例以最新镜像方法为示例标准,更多可查询下文给出的参考链接。

使用下面的命令来连接名称:Sipeed_Guest密码:qwert123的无线网络。

wifi_connect_ap_testSipeed_Guestqwert123

上文我们尝试了怎么使用Linuxshell来进行联网操作,这里我们来尝试使用U盘配置开机脚本。

对于M2DOCK如何使用U盘设置开机脚本呢?其实很简单只需要一下几个步骤:

第一步:把(待存)脚本存成名为main.py的文件,然后根据第二步判断存放位置。第二步:判断U盘目录下是否有app的文件夹,如果有就把main.py存进app文件夹后进行下一步,如果没有直接把main.py存放在U盘即可进行下一步。第三步:存放好后使用电脑操作系统自带的移除U盘方式来保证文件在没有损坏的情况下保存进板卡,否则会因为不当操作而导致main.py没有正常保存到U盘(板卡系统)里面。

注意事项:MaixPy3IDE运行时会停止M2Dock的开机脚本程序,所以我们应该在电脑托盘找到并退出MaixPy3IDE或者选择仅使用板子上的TypeC串口来进行供电以查看开机运行脚本效果。

以下为root目录下main.py文件里的出厂默认开机脚本:

#!/usr/bin/envpythonfrommaiximportcamera,display,image,nnimage.load_freetype("/home/res/sans.ttf")qrcode=image.open('/home/res/qrcode.png')canvas=image.new((display.width(),display.height()),(0xFF,0xFF,0xFF),"RGB")canvas.draw_image(qrcode,(canvas.width-qrcode.width)//2,(canvas.height-qrcode.height)//2)info="wiki.sipeed.com/maixpy3"w,h=image.get_string_size(info,1.2)canvas.draw_string((canvas.width-w)//2+5,canvas.height-h-5,info,1.2,color=(0x00,0x00,0x00))foriinrange(120):img=camera.capture().draw_image(canvas,alpha=0.7)display.show(img)

在使用U盘进行传输文件之前我们需要先了解电脑端U盘的目录与M2DOCK文件系统目录的对应规则。

规则:电脑上的U盘对应着M2DOCK文件系统的/root目录。

传输文件操作如下:(前提M2DOCK通过OTG口连接电脑端)

通过上文我们清楚了如何使用Python运行程序、如何使用Linuxshell进行联网以及使用U盘设置开机脚本,熟悉的朋友们都知道MAIX系列主打的就是视觉+AI芯片,那图像处理是我们必不可少的体验过程。

图像处理还分传统以及AI视觉,而在M2dock上我们主要学习传统的背景知识以及用法。

这个章节更多的讲述的是认识一些经典外设并学会使用调用它的示例。

这一章节讲述的是在M2DOCK上如何实现播放视频以及录音播放的使用示例。

到达进阶使用这里后,这里则需要小伙伴们具备一些Linux基础了才能继续往下走学习。

全志V831使用TinaLinux系统移植自OpenWrt。

Opkg是一个轻量快速的套件管理系统,目前已成为Opensource界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。

有时镜像包更新但我们确不想再次进行烧录板子以作更新,这时可以手工更新MaixPy3达到更新目的。

M2DOCK是双Type-c接口的(分别是UART/OTG)而OTG接口是默认作为USB从机来使用的。

如果想使用USB摄像头则需手动更改端口为主机模式,从板子上的串口USB(UART)来操作板子,并执行以下命令修改OTG口为主机模式使用。

echo"usb_host">/sys/devices/platform/soc/usbc0/otg_role将USBOTG口作为从机M2Dock默认的OTG口就是USB从机设备,如有其他原因需重新设置成从机设备的话,只需在M2DOCK上执行以下命令即可。

echo"usb_device">/sys/devices/platform/soc/usbc0/otg_role更换屏幕目前开发板支持的屏幕有1.3寸、2.4寸、2.8寸的IPS屏,且只是支持在我们淘宝上售卖的显示屏;对于别的屏幕有需求的,可以走商务通道进行定制。

目前MaixII-Dock开发板目前支持的摄像头有sp2305、vs3205、ov2685(只支持在官方店上再售卖的摄像头,有别的摄像头需求可以进行商务定制),摄像头之间的切换同样时需要更换设备树文件,更换方式上面的更换屏幕一样的。

有需求的可以自行尝试,但是对于V831还是推荐使用MaixPy3和MaixHub。

无论是在K210还是M2DOCK(V831)上一定要学会使用我们公开的文档资料,去借助资料的力量帮助自己在学习的道路上往前走,学会借助资源完善自身的不足,可以让你少走很多的坑以及弯路。

上文我们说过了MAIX系列主打的就是视觉+AI的特性,所以AI算法应用也是上手体验里不可少的一环。

训练自己的AI模型有两种方法:分别是在线训练以及本地训练。

这个章节可以搭配下文的编译与开发一起食用更佳噢~

当你走到这时已经代表你熟悉(V831)的基础操作准备深层了解,以下的文档是为了开发者写的参考文,希望可以基于此让更多的伙伴进入Linux嵌入式开发的领域。

完成上面的环境配置后,这里提供了可运行的Demo内容就是如何使用V831LINUXC++进行图像视觉处理和开发,在此我们提供了串口+mvcvai的示例项目,供开发者评估使用,此处不涉及到ISP调试,需要进一步ISP图像调试则需要联系SIPEED。

操作步骤:连接上板子的OTG接口后,在/libmaix/libmaix/examples/app_dls831目录下使用make下进行编译(编写好的脚本会自动把编译好的文件上传并运行)。

我们可以看到程序是保持稳定三十帧的运行速率。

接下来我们来认识一下现有的库:分别是AI、Opencv、Openmv、LVGL。

YOLOv2是一种基于深度学习的目标检测算法,它是YOLO(youonlylookonce)的改进版本。

YOLOv2相比于YOLO主要有以下几个不同的改进点:

YOLOv2的优点主要有以下几个方面:

接下来我们来尝试采用人脸模型为测试:

为了照顾C程序在/libmaix/components/maix_cv_image/src/libmaix_cv_image.cpp下对Opencv的函数又做了一层封装,当时还没有全面用C++但现在已经全部迁移到C++了。

可以在提供的libmaix/components/maix_dls831/src/dls831_uvai.cpp的例子中,看到是如何采用了Opencv实现滤波和二值化等操作。

voidAdaptiveThreshold(cv::Mat&src,cv::Mat&dst,doubleMaxval,intSubsize,doublec,adaptiveMethodmethod=meanFilter){if(src.channels()>1)cv::cvtColor(src,src,cv::COLOR_RGB2GRAY);cv::Matsmooth;switch(method){casemeanFilter:cv::blur(src,smooth,cv::Size(Subsize,Subsize));//均值滤波break;casegaaussianFilter:cv::GaussianBlur(src,smooth,cv::Size(Subsize,Subsize),0,0);//高斯滤波break;casemedianFilter:cv::medianBlur(src,smooth,Subsize);//中值滤波break;default:break;}smooth=smooth-c;src.copyTo(dst);for(intr=0;r(r);constuchar*smoothptr=smooth.ptr(r);uchar*dstptr=dst.ptr(r);for(intc=0;csmoothptr[c]){dstptr[c]=Maxval;}elsedstptr[c]=0;}}}//自适应阈值提取边缘AdaptiveThreshold(gray,gray,255,21,10,meanFilter);`**前文的例子中不仅有Opencv的常用算法,也提供了Opencv的画图方法。**

//绘制十字线for(size_ti=0;i

image.find_blobs(thresholds,roi=Auto,x_stride=2,y_stride=1,invert=False,area_threshold=10,pixels_threshold=10,merge=False,margin=0,threshold_cb=None,merge_cb=None)根据上面的链接描述,我们再看看imlib中的使用几乎一模一样。

imlib_find_lines(&out,img,&roi,x_stride,y_stride,threshold,theta_margin,rho_margin);在上面提供的例子中就采用了寻找直线的功能。

串口的使用非常的简单,我们先设置好波特率,数据位,停止位等参数,打开串口后挂载到select中,当串口收到数据后会打印一个字节出来。

uint8_t_set_rgbs_color(uint8_t*color_buf){uint8_tret=0;uint8_ti=0;uint8_tj=0;uint8_tk=0;uint8_ttx[25]={0};uint8_trgb[3]={0};uint8_tbyte=0;uint8_tibit=0;uint8_t*p=color_buf;for(i=0;i<2;i++){rgb[0]=p[0];rgb[1]=p[1];rgb[2]=p[2];for(j=0;j<3;j++){uint8_tcolorBit[4]={0};byte=rgb[j];for(ibit=0;ibit<4;ibit++){colorBit[ibit]=(((byte>>(2*ibit+1))&1)*0x60+((byte>>(2*ibit+0))&1)*0x06+0x88);}tx[k++]=colorBit[3];tx[k++]=colorBit[2];tx[k++]=colorBit[1];tx[k++]=colorBit[0];}p+=3;}tx[0]&=0x0f;//spineedclearheadhighleveltx[0]|=0x40;tx[24]=0b1000000;//spineedclearendhighlevelret=spi_xfer_data(tx,25,(int)(4/1.05e-6));returnret;}PWM通过写寄存器的方式直接对三个PWM进行初始化操作。

第一步:我们可以通过命令去查找mpu6050在IIC上的地址

i2cdetetc-y2

我们可从上图得知有两个地址:62以及68,62是板卡上自带的三轴传感器,而68则是我们的mpu6050挂载在IIC上的地址。

第二步:拿到地址后也可以通过命令直接去查看mpu6050中寄存器的值

i2cdump-y20x68

第三步:分别取出高八位和低八位的值后,拼接起来后再通过一层换算才能得到真实的数据,以加速度、角速度和温度为例,打印出换算后的个值。

很多的问题的出现都是误操导致的,如果AQ里没有你遇见的问题,那就自己尝试解决问题,一步一步往回溯源根据报错信息遗漏哪一步哪一环。

THE END
1.如何在Illustrator中旋转和镜像对象若要以对象的中心点为轴镜像对象,请选择“对象”>“变换”>“镜像”,或双击“镜像”工具。 若要以其他参考点为轴来镜像对象,请按住 Alt 键 (Windows) 或 Option 键 (Mac OS),并在文档窗口中的任意位置单击。 在“镜像”对话框中,选择镜像对象时所要基于的轴。您可以基于水平轴、垂直轴或具有一定角度的轴https://helpx.adobe.com/cn/illustrator/using/rotating-reflecting-objects.html
2.ai镜像工具怎么使用用法如下:操作设备:戴尔灵越7400 操作系统:win10 操作程序:AI 2021 2.91 1、首先打开需要编辑的AI文件,选择想要编辑的图形。2、然后点击选择左侧中的“镜像工具”。3、然后鼠标光标变成十字图标,点击想要的镜像中心。4、然后按下“alt”,松开鼠标就完成了。https://zhidao.baidu.com/question/370456088373256812.html
3.ai镜像工具怎么使用的方法第1步、点击钢笔工具,绘制一个要镜像的三角形出来。 第2步、点击镜像工具,可以点击要镜像的二个点。 第3步、然后三角形就镜像出来了。 第4步、如果要以直线为镜像参照线。那就选中三角形。点击镜像工具,此教程由软件自学网首发,点击直线。 第5步、然后就可以镜像到直线的另一边了。第https://m.rjzxw.com/jiaocheng/14491.html
4.ai镜像工具怎么使用的方法(图文)最需网第1步、点击钢笔工具,绘制一个要镜像的三角形出来。 第2步、点击镜像工具,可以点击要镜像的二个点。 第3步、然后三角形就镜像出来了。 第4步、如果要以直线为镜像参照线。那就选中三角形。点击镜像工具,点击直线。 第5步、然后就可以镜像到直线的另一边了。 https://www.zuixu.com/down/87858.html
5.AI里镜像工具怎么应用啊2、选择工具V选中小的圆角矩形,找到工具栏中镜像工具;https://edu.iask.sina.com.cn/jy/jvd0dQJTWl.html
6.AI镜像工具插件使用介绍大家好,我是小溜,相信大家对于AI的插件多少都有些了解,大部分插件还是非常有用的,那么今天小溜我主要给大家分享一个,AI镜像工具插件的使用介绍,希望本文内容可以帮助到大家,感兴趣的小伙伴可以关注了解一下。 想要更深入的了解“AI”可以点击免费试听溜溜自学网课程>> 工具/软件 电脑型号:联想(Lenovo)天逸510S; https://mobilezixue.3d66.com/article/details_120579.html
7.ai镜像工具怎么快速绘制图形?ai镜像花朵图形的技巧Illustrator教程ai镜像工具怎么快速绘制图形?ai中的工具很多,想要使用镜像功能简单的将线条变成花朵,下面我们就来那看ai镜像花朵图形的技巧,需要的朋友可以参考下 ChatGPT & MidJourney 绘图免魔法无限使用 【点击领取】 ai中想要绘制一些有规律的图形,我们不需要用手去一点一点画出来,而是想办法用已有基本图形生成新的图形,比如使用https://www.jb51.net/Illustrator/763225.html
8.在ai里如何绘制真实云朵如何在AI中画圆?如何在ai ai画半圆的方法:在画板的空白区域画圆和矩形绘制。ai镜像工具怎么样快绘制Graphics inaiWe want绘制有些规则图形可以直接用现有的基本图形工具完成,那么具体应该怎么用呢?2.5D插画如何绘制-如何使用AI 绘制2.5D插画如何使用AI 绘制2.5D插画众所周知,现在很多横幅广告都会使用2.5D等距插画绘制http://chengdu.cdxwcx.cn/article/iopcig.html
9.ai中使用镜像工具的详细操作今天18183小编讲解了在ai中使用镜像工具步骤,下文就是关于在.ai中使用镜像工具的教程,一起来学习吧。 ai中使用镜像工具的详细操作 点击下方图片进入网盘下载保存Adobe全系列软件绿色版--全家桶 首先打开此软件,然后用选择工具把要镜像处理的图像选中。 接着在选中的形态下,点击工具箱中的镜像工具,或按快捷键O。 https://m.18183.com/soft/4397654.html
10.ipad怎么使用ai软件?ipad可以使用AI设计软件吗?iPad铅笔工具 在iPad上使用 铅笔工具 具有一些设备独有的出色功能.首先,通过停止路径(无需从屏幕释放Apple Pen),可以创建 角点.这对于在仍使用一条连续线的同时分离曲线非常有用! 6. 如何在Illustrator for iPad上使用镜像工具 桌面应用程序上的对称对象 https://www.yutu.cn/news_19112.html
11.如何使用AI绘画工具开启镜像功能AI百科在AI 绘画领域,镜像工具是一个强大的功能,它可以帮助艺术家轻松地创建对称或反转图像。在本文中,我们将介绍如何在不同的 AI 绘画工具中开启镜像功能,并探讨其在艺术创作中的应用。 Midjourney Midjourney 中的镜像功能称为 "镜像模式"。要启用镜像模式,请在提示中添加以下关键词: https://heiti.cn/ai/25081.html
12.alpine基吹像如何启动镜像工具ai快捷键alpine 基础镜像 如何启动 镜像工具ai快捷键 最近在学习AI的基本操作,总结了一些快捷键的使用方法,利用快捷键可以提高制图效率,从而达到更好的体验效果,以下是一些最基本的快捷键的使用。** 工具栏 ** 临时使用抓手工具:空格 默认前景色和背景色:D 放大镜工具:Zhttps://blog.51cto.com/u_16213592/10713996
13.全球AI工具箱轻松使用最新ChatGPT4.0,无任何限制【全球AI工具箱】当下最火的ChatGPT4.0,国内无任何限制,打开直接使用 一、 什么是ChatGPT镜像? ChatGPT镜像是指将ChatGPT模型和相关的软件环境打包成一个可部署的镜像文件。镜像文件可以在不同的计算机或服务器上进行部署和运行,使得ChatGPT模型可以在本地或私有网络中使用。 https://cloud.tencent.com/developer/news/1243334
14.超全,国内超好用的ai工具箱合集ai超全系统工具箱大集合gpt五、 ai工具百宝箱 超全,国内超好用的ai工具箱合集,含有各种最新的ai工具。 ai写作、ai绘画、ai生成视频你、镜像网站。 各种网站应有尽有。 一、chatgpt知识库 https://diri1.notion.site/diri1/ChatGPT-102f0a2a6dd649a0a69a1ebebed3a965 二、 ai工具合集 https://blog.csdn.net/qq_20179331/article/details/130007956
15.AI镜像快捷键:快速掌握AI操作技巧创业仆你还在为繁琐的AI操作步骤而苦恼吗?想要快速上手AI工具,提升工作效率?别担心!今天就来教你几个AI镜像快捷键,让你轻松掌握AI操作技巧,秒变AI达人! 一、AI镜像快捷键是什么? AI镜像快捷键,指的是将一些常用的AI操作步骤,通过快捷键的方式进行快速操作。类似于我们使用电脑时,用“Ctrl + C”复制、“Ctrl + V”https://cyepu.com/55885.html
16.用AI软件中的镜像翻转功能简单制作文字翻页渐变投影实操案例教程用AI软件制作文字渐变叠加投影效果实操案例教程来了,今天来分享的文章是用AI工具制作文字翻页的效果,大家可以学习一下! 1.选择文字工具,输入我们所需要输入的文字(教程演示的为HUA HAO NI YE HAO),然后右击将文字创建轮廓 2.将文字旋转90度,并填充黑白渐变 https://www.mgzxzs.com/mp/43/7235.html