0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于iMX6ULL处理器的监控平台体验--米尔MYD-Y6ULX-V2开发板

米尔电子 2023-05-25 10:49 次阅读

本篇测评由电子发烧友的优秀测评者“HonestQiao”提供。

01.

评测规划


米尔MYD-Y6ULX-V2开发板上带有SIM卡的插槽,于是结合我之前的使用米尔板子的经验,想制作一个远程监控的平台。
不过通过硬件手册了解到,板子自身不带有LTE模块,需要安装一个Mini PCI-E接口的LTE 模块才能够使用4G网络,且仅支持仅支持移远EC20型号。
而手头暂时没有这个型号的LTE模块,于是退而且其次,使用有线网络来进行数据的传输。
这块板子的full镜像,提供了通过V4L对USB摄像头的支持,直接插接上USB摄像头就能使用了。
最终,具体的评测规划如下:

使用米尔MYD-Y6ULX-V2开发板提供摄像头监控数据

使用OLED呈现开发板的设备负载、IP地址和服务信息

使用PyQT5开发监控显示界面

使用opencv进行人脸识别检测

02.

硬件准备

使用USB连接的摄像头即可

  • SSD1306 OLED

MYD-Y6ULX-V2开发板支持IIC和SPI通讯,我手头正好有合适的IIC通讯的SSD1306 OLED用上556c655a-fa8f-11ed-ba01-dac502259ad0.jpg 

  • USB2TTL

开始使用MYD-Y6ULX-V2开发板的时候,需要使用串口连接做一些基础的设置55a5b13e-fa8f-11ed-ba01-dac502259ad0.jpg 

  • 米尔MYD-Y6ULX-V2开发板

将以上设备都连接到开发板以后,具体如下:55d6337c-fa8f-11ed-ba01-dac502259ad0.jpg 具体的配置连线,后续会进行说明;具体的接口分布如下:56062f46-fa8f-11ed-ba01-dac502259ad0.png MYD-Y6ULX-V2开发板默认已经少录了系统,但是属于较老的版本,我们需要自己烧录为最新的版本。
根据使用手册,选用如下的镜像,并按照手册设定好启动方式,进行烧录更新。

  • 镜像类型:

FullEMMC5644cd5a-fa8f-11ed-ba01-dac502259ad0.png 

  • 烧录方式:

述镜像需要先解压,然后使用官方提供的Win32 Disk Imager烧录到SD卡,然后接到开发板上5677c9e4-fa8f-11ed-ba01-dac502259ad0.jpg 

  • 拨码开关

MYD-Y6ULX-V2开发板有几个不同的子型号,以及设置不同的启动方式的时候,需要通过板载的拨码开关来控制。我评测的开发板,为eMMC版本,所以更新选择TF Card启动(eMMC版本)模式,具体如下:56ae8984-fa8f-11ed-ba01-dac502259ad0.png 

  • 连接调试串口:

参考之前的接口分布,使用USB2TTL连接开发板的调试串口和电脑56cf0c22-fa8f-11ed-ba01-dac502259ad0.png 在电脑端,使用串口终端工具进行连接:Windows系统可以视同使用Putty或者mobaxterm,Linux和macOS系统可以使用minicom或者picocom我用的是macOS,所以使用picocom连接:56f21f3c-fa8f-11ed-ba01-dac502259ad0.png 

  • 烧录:

关机装状态下,插好SD卡后,重新上电开机,就会自动启动,并进刷机状态,并输出正在升级的提示信息。升级需要一段时间,请耐心等待。

  • 验证:

更新成功后,断电,然后将拨码开关设置回eMMC启动模式,重启上电开机,最终会看到如下的启动信息,其中NXP i.MX Release Distro 5.10-gatesgarth表示已经更新到了当前系统:5729f876-fa8f-11ed-ba01-dac502259ad0.png 

在更新完毕后,需要对开发板进行一些基础的设置,以方便后续进一步操作。

  • eth0、eth1的IP设置:

参考:7.2. 通用网络配置

使用vi修改文件:/etc/systemd/network/10-static-eth0.network使用vi修改文件:/etc/systemd/network/11-static-eth1.network静态配置示例如下:

[Match]Name=eth0[Network]Address=192.168.1.177/24Gateway=192.168.1.1DNS=192.168.1.1

动态配置示例如下:

[Match]Name=eth0
[Network]DHCP=yesEOF

配置后,可以重启网络服务,然后查看结果:

service systemd-networkd restartifconfig

5757c922-fa8f-11ed-ba01-dac502259ad0.png 

时区设置:

参考:ntpd时钟同步服务使用vi修改:/etc/sysconfig/clock

ZONE="Asia/Shanghai"UTC=trueARC=false

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ntpd对时设置

参考:ntpd时钟同步服务使用vi修改:/etc/sysconfig/ntpd

# Drop root to id 'ntp:ntp' by default.OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid"# Set to 'yes' to sync hw clock after successful ntpdateSYNC_HWCLOCK=yes #make no into yes; BIOS的时间也会跟着修改# Additional options for ntpdateNTPDATE_OPTIONS=""

使用vi修改:/etc/ntp.conf

重启服务生效:

service ntpd restart
date

查看结果:

578d6d20-fa8f-11ed-ba01-dac502259ad0.png 

远程连接:

以上设置完成后,就可以在其他电脑上,使用ssh远程连接,来连接开发板了。然后,在其他电脑上,使用ssh工具进行远程连接:

Windows系统可以视同使用Putty或者mobaxterm,Linux和macOS系统可以直接使用ssh命令



米尔为MYD-Y6ULX-V2开发板提供了详细的开发环境建立的指导,参考《MYD-Y6ULX_Linux软件开发指南.pdf》即可完成所需要的工作。

开发环境需要在一个Ubuntu环境下建立,而不是开发板自身的系统上。

Ubuntu开发环境建立

从开发板的资料包页面,下载光盘镜像:http://down.myir-tech.com/MYD-Y6ULX/,也可以从百度网盘下载相应的资料包。

首先安装基础工具包,并进行工作目录的构建:

sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev
mkdir -p ~/MYD-Y6ULX-develexport DEV_ROOT=~/MYD-Y6ULX-devel
sudo mkdir /media/cdimagesudo mount -o loop ~/Downloads/MYD-Y6ULX_L5.10.9_20220826.iso /media/cdimagecp -r /mnt/cdimage/02_Images $DEV_ROOT/cp -r /mnt/cdimage/03_Tools $DEV_ROOT/cp -r /mnt/cdimage/04_Sources $DEV_ROOT/

安装编译链编译链:根据手册的说明,使用full系统的应用工具链,以便进行应用的交叉编译

57b4fdb8-fa8f-11ed-ba01-dac502259ad0.png

cd $DEV_ROOT/03_Tools/Tools_chain/bash fsl-imx-fb-glibc-x86_64-myir-image-full-cortexa7t2hf-neon-myd-y6ull14x14-toolchain-5.10-gatesgarth.sh
. /opt/test5.10/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi$CC -v

安装编译工具链时的提示:安装到/opt/test5.10目录

57e91ab2-fa8f-11ed-ba01-dac502259ad0.png

安装完成后的验证:

5803f454-fa8f-11ed-ba01-dac502259ad0.png


要使用到摄像头,并对外提供监控数据,使用mjpg_streamer最合适了。

在网上也有不少 iMX6移植原版mjpeg-streamer的文章可供参考,不过我查看后大受误导。

直接使用我之前的版本,进过简单的修改,就能使用MYD-Y6ULX-V2开发板的编译工具链进行成功编译了。

mjpg_streamer分支版本:https://github.com/jacksonliam/mjpg-streamer

下载地址:https://github.com/jacksonliam/mjpg-streamer/archive/refs/heads/master.zip

交叉编译:

完成编译后,结果如下:

588ecade-fa8f-11ed-ba01-dac502259ad0.png 

  • 带so文件部署

使用scp将以上文件拷贝到开发板

ssh root@192.168.1.177 "mkdir ~/mjpeg_server/"scp mjpg_streamer root@192.168.1.177:~/mjpeg_server/scp *.so root@192.168.1.177:~/mjpeg_server/


  • mjpeg_streamer测试

将mjpg_streamer部署到开发板上以后,就可以远程连接到开发板进行测试了。

查看摄像头设备

查看设备指令:v4l2-ctl --list-devices

58ce7ad0-fa8f-11ed-ba01-dac502259ad0.png

从上图可以看出,识别到了连接的USB摄像头HIK 720P Camera,对应的第一个设备地址/dev/video2可以被mjpg_streamer调用。


  • 启动mjpg_streamer测试:

cd ~/mjpeg_server./mjpg_streamer -i "input_uvc.so -d /dev/video2 -n -r 640x480 -f 10" -o "output_http.so -w ./"

默认启动的mjpg_streamer是可以任意访问的,这很危险。但可以使用-c 用户名:密码来设置一个访问密码,可以参考下图中的指令:

58f1c800-fa8f-11ed-ba01-dac502259ad0.png 

  • 访问测试:

现在在其他电脑上,可以直接通过浏览器访问开发板上提供的摄像头数据流在我的环境下,访问地址为:http://192.168.1.177:8080/?action=stream

591d3166-fa8f-11ed-ba01-dac502259ad0.png

我所使用的SSD1306 OLED使用IIC通讯的,之前我也使用过一个Linux环境下的ssd1306工具。
经过尝试,这个工具可以使用MYD-Y6ULX-V2开发板的编译工具链进行编译和使用。

  • 下载地址:https://github.com/armlabs/ssd1306_linux/archive/refs/heads/master.zip
  • 交叉编译

修改配置文件 Makefile,具体修改如下:

59aa49e8-fa8f-11ed-ba01-dac502259ad0.png

修改完成后,进行编译,编译完成后,部署ssd1306_bin一个文件即可

makels -l ssd1306_bin
# 部署文件到开发板scp ssd1306_bin root@192.168.1.177:~/mjpeg_server/

  • 硬件连接

参考手册上的说明,进行硬件的连接。我所使用的OLED使用到了VDD_5V、DGND、I2C2_SCL、I2C2_SDA。务必要注意所使用的OLED的电压,有的只能使用3.3V,使用5V会完蛋。

56062f46-fa8f-11ed-ba01-dac502259ad0.png

5a27e5ec-fa8f-11ed-ba01-dac502259ad0.png

5a569c20-fa8f-11ed-ba01-dac502259ad0.jpg

OLED显示测试

上述硬件连接完成后,就可以远程连接到开发板,进行测试了。

查看OLED设备是否成功硬件连接,通常IIC地址为3c:i2cdetect -y -a 1

5a880bf2-fa8f-11ed-ba01-dac502259ad0.png

然后,进行显示测试

cd ~/mjpeg_server./ssd1306_bin -n 1 -I 128x64./ssd1306_bin -n 1 -c./ssd1306_bin -n 1 -r 0./ssd1306_bin -n 1 -x 0 -y -0 -m "Hello World!\n\nI'm MYD-Y6ULX-V2."

5aaaac3e-fa8f-11ed-ba01-dac502259ad0.jpg

完成以上两项工作,开发板部分的基础工作就完成了,可以写一个启动脚本来进行控制,具体如下:
为了安全访问,在脚本中设置了访问的用户名和密码,可以根据实际需要进行修改。
以下的操作,都需要远程连接到开发板上进行。

服务启动脚本:~/mjpeg_server/mjpeg_server_start.sh

#!/bin/bash
cd "${0%/*}"
killall mjpg_streamer >/dev/nul 2>&1device=$(v4l2-ctl --list-devices | grep 'Camera' -A1 | grep /dev/video | head -1 | awk '{print $NF}')./mjpg_streamer -i "input_uvc.so -d $device -n -r 640x480 -f 10" -o "output_http.so -w ./ -c test:test123" &
./ssd1306_bin -n 1 -I 128x64./ssd1306_bin -n 1 -r 0
let count=0while truedo nowdate="$(date '+%Y-%m-%d %H:%M:%S')" load="$(w | head -1 | sed -e 's/^.*average: //' | cut -d ',' -f 1)" temp=$(echo "scale=1;$(cat /sys/devices/virtual/thermal/thermal_zone0/temp)/1000" | bc) ipstr=" ${nowdate}\n L:${load} T:${temp}" if [[ $count -gt 0 ]];then ./ssd1306_bin -n 1 -x 0 -y 0 -m "${ipstr}" else ./ssd1306_bin -n 1 -c ipstr="${ipstr}\n**-*-IP Address-*-**" i=0 for ip in $(ip addr show | grep -v "127.0.0.1" | awk -F'[ /]+' '{if($0 ~ / inet /) print $3;}') do let i=i+1 ipstr="${ipstr}\nIP${i}: ${ip}" done
ipstr="${ipstr}\nSRV: ip:8080/?action" ipstr="${ipstr}\n =stream"
echo -e "${ipstr}" ./ssd1306_bin -n 1 -x 0 -y 0 -m "${ipstr}" fi let count=count+1 if [[ $count -gt 15 ]];then let count=0 fi sleep 1done

开机启动:

screen-Smjpeg_server/home/root/mjpeg_server/mjpeg_server_start.sh

配置完成后,就可以重新启动开发板,OLED显示屏上会显示对应的信息:

5ae776a0-fa8f-11ed-ba01-dac502259ad0.jpg

然后在电脑上,打开之前的访问地址,进行测试了。

MYD-Y6ULX-V2开发板的full环境支持使用QT5进行应用开发,但实际使用中,需要屏幕配合。
我手头没有对应的屏幕,所以这一步的工作,就在电脑上进行,并使用PyQT5进行开发。
具体要做的工作如下:

操作界面开发

mjpeg流读取显示

人脸识别

其中人脸识别部分,参考了:* opencv快速入门人脸检测与人脸识别

涉及到具体的代码的开发,我就直接上代码了,感兴趣的同学,可以查看代码进行学习。

from PyQt5 import QtWidgetsfrom PyQt5.QtGui import QImage, QPixmap, QKeySequencefrom PyQt5.QtCore import QThreadimport sys, cv2, threading, random, signalimport numpy as npimport socketimport time, datetimeimport requestsfrom requests.auth import HTTPBasicAuth
# 0-摄像头 1-socket 2-from remoteCAMERA_SOURCE = 2CAMERA_LOCAL_INDEX = 0 # 如果使用本地摄像头,则表示其videoN的NCAMERA_SOCKET_PORT = 8888 # 如果视同socket,设置端口# CAMERA_REMOTE_URL = "http://192.168.1.15:8080/live.mjpg"CAMERA_REMOTE_URL = "http://192.168.1.177:8080/?action=stream"CAMERA_SOURCE_NAME = ["USB摄像头", "网络图像流", "米尔MYD-Y6ULX-V2摄像头监控"]AUTH_CONFIG = {"user":"test","pass":"test123"}FACE_DETECTION = True
if FACE_DETECTION == True: # https://blog.csdn.net/FontThrone/article/details/105314973 # https://github.com/FontTian/DS-Exhibitio face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') face_cascade.load('./haarcascades/haarcascade_frontalface_default.xml') face_box_colors = [ (255, 0, 0), (0, 255, 0), (0, 255, 0), (255, 255, 0), (255, 0, 255), (0, 255, 255), (255, 128, 128), (128, 255, 128), (128, 255, 128), (255, 255, 128), (255, 128, 255), (128, 255, 255) ]
# 应用定义app = QtWidgets.QApplication(sys.argv)window_w, window_h = 640, 480 # 窗口宽度和高度scale = 0.58 # 视频信息宽高比
# 界面定义Form = QtWidgets.QWidget()Form.setWindowTitle(CAMERA_SOURCE_NAME[CAMERA_SOURCE])Form.resize(window_w, window_h)
# 窗口大小改变时自动调整按钮def windowResize(self): global window_w, window_h, scale window_w = Form.width() # 窗口宽度 window_h = Form.height() # 窗口高度 label.setGeometry(0,0, window_w, int(window_w*scale)) # 调整 QLabel 尺寸 btn1.setGeometry(10, window_h-40,70,30) # 调整按钮位置 btn2.setGeometry(80, window_h-40,70,30) # 调整按钮位置 btn3.setGeometry(window_w - 80, window_h-40,70,30) # 调整按钮位置
Form.resizeEvent = windowResize # 设置窗口大小改变时触发
# 关闭应用时的处理ocv = True # 设置是否处理视频def closeOpenCV(self): global ocv, output ocv = False # 关闭窗口时,停止处理视频 print("关闭程序") try: output.release() # 关闭窗口时,释放视频处理资源 except: pass
Form.closeEvent = closeOpenCV # 窗口关闭时触发
label = QtWidgets.QLabel(Form)label.setGeometry(0,0, window_w, int(window_w*scale)) # 设置 QLabel 的位置和大小
# 存储文件时使用的文件名def rename(): # return str(random.random()*10).replace('.','') return datetime.datetime.now().strftime('%Y%m%d_%H%M%S')
photo = False # 按下拍照按钮时,设置处于拍照状态
# 按下拍照按钮时的处理def takePhoto(): global photo photo = True # 设定拍照状态为True print("马上拍照")
btn1 = QtWidgets.QPushButton(Form)btn1.setGeometry(10, window_h-40,70,30) # 设置拍照按钮的位置和大小btn1.setText('拍照')btn1.clicked.connect(takePhoto) # 按下拍照按钮时触发
fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 设置视频中的存储格式recorderType = False # 按下录像按钮时,设置处于录像状态
# 按下录像按钮时的处理def recordVideo(): global recorderType, output if recorderType == False: # 如果按下按钮时没有在录像,则开始录像 # 设定存储的视频信息 output = cv2.VideoWriter(f'videos/{rename()}.mp4', fourcc, 20.0, (window_w, int(window_w*scale))) recorderType = True # 设置正在录制状态 btn2.setGeometry(80, window_h-40,200,30) # 根据显示内容设置大小 btn2.setText('录像中,点击停止保存') else: # 如果按下按钮时正在在录像,则停止录像 output.release() # 释放视频存储资源 recorderType = False # 设置非录制状态 btn2.setGeometry(80, window_h-40,70,30) # 根据显示内容设置大小 btn2.setText('录像')
btn2 = QtWidgets.QPushButton(Form)btn2.setGeometry(80, window_h-40,70,30) # 设置录像按钮的位置和大小btn2.setText('录像')btn2.clicked.connect(recordVideo) # 按下录像按钮时触发
# 按下退出按钮时的处理def quitApp(): global video_server print("退出程序") closeOpenCV(False) app = QtWidgets.QApplication.instance() app.quit()
btn3 = QtWidgets.QPushButton(Form)btn3.setGeometry(window_w-80, window_h-40,70,30) # 设置退出按钮的位置和大小btn3.setText('退出')btn3.clicked.connect(quitApp) # 按下退出按钮时触发
# 人脸识别处理def face_detection_process(frame): if FACE_DETECTION == True: face_count = 0 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: color = face_box_colors[face_count % len(face_box_colors)] cv2.rectangle(frame, (x, y), (x + w, y + h), color, 2) face_count+=1
# 此处省略本项目用不到的数百行...
# mjpeg数据流处理服务def mjpeg_remote_server(): global window_w, window_h, scale, photo, output, recorderType, ocv
r = requests.get(CAMERA_REMOTE_URL, auth=HTTPBasicAuth(AUTH_CONFIG["user"], AUTH_CONFIG["pass"]), stream=True) if(r.status_code != 200): print("Received unexpected status code {}".format(r.status_code)) return
count = 0 is_first = False recv_data_mjpeg = bytes() for recv_data in r.iter_content(chunk_size=1024): if not ocv: break
count+=1 if count % 10000 == 1: print("\trecv stream success") recv_data_mjpeg += recv_data
a = recv_data_mjpeg.find(b'\xff\xd8') b = recv_data_mjpeg.find(b'\xff\xd9') if not (a != -1 and b != -1): continue
mjpg_data_raw = recv_data_mjpeg[a:b+2] recv_data_mjpeg = recv_data_mjpeg[b+2:]
mjpeg_data = np.frombuffer(mjpg_data_raw, 'uint8') img = cv2.imdecode(mjpeg_data, cv2.IMREAD_COLOR) # cv2.imshow('stream', img)
if not is_first: is_first = True sp = img.shape sz1 = sp[0] #height(rows) of image sz2 = sp[1] #width(colums) of image sz3 = sp[2] #the pixels value is made up of three primary colors print('网络图像: width=%d \theight=%d \tnumber=%d' % (sz1, sz2, sz3)) scale = sz1/sz2
frame = cv2.resize(img, (window_w, int(window_w*scale))) # 改变帧大小 if photo == True: name = rename() # 设置文件名称 name_save = f'photos/{name}.jpg' print("照片存储:%s" % name_save) cv2.imwrite(name_save, frame) # 存储图片 photo = False # 拍照完,设置非拍照状态 if recorderType == True: output.write(frame) # 按下录像按钮时,输出到存储文件
face_detection_process(frame) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 设置为 RGB height, width, channel = frame.shape bytesPerline = channel * width img = QImage(frame, width, height, bytesPerline, QImage.Format_RGB888) label.setPixmap(QPixmap.fromImage(img)) # 显示

if CAMERA_SOURCE == 2: video_server = QThread() video_server.run = mjpeg_remote_server video_server.start()
Form.show()sys.exit(app.exec_())

设置好开发板的MJPEG视频地址,然后启动上面的python程序,就能打开如下界面了:

5b272a02-fa8f-11ed-ba01-dac502259ad0.png 

如果画面中有人脸,就会自动识别了:

5b837a3c-fa8f-11ed-ba01-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19265

    浏览量

    229667
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97382
收藏 人收藏

    评论

    相关推荐

    人脸疲劳检测应用-米尔基于RK3576核心/开发板

    本文将介绍基于米尔电子MYD-LR3576开发板米尔基于瑞芯微RK3576开发板)的人脸疲劳检测方案测试。
    的头像 发表于 12-20 08:06 151次阅读
    人脸疲劳检测应用-<b class='flag-5'>米尔</b>基于RK3576核心<b class='flag-5'>板</b>/<b class='flag-5'>开发板</b>

    米尔RK3576开发板评测】+项目名称【米尔RK3576开发板评测】一个视频和你共同认识一下米尔RK3576开发板

    收到米尔RK3576开发板后,也对米尔RK3576开发板进行了了解,米尔这款开发板真的很不错,下
    发表于 12-18 20:50

    如何用OpenCV进行手势识别--基于米尔全志T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板米尔基于全志T527开发板)的OpenCV手势识别方案测试。摘自优秀创作者-小火苗
    的头像 发表于 12-13 08:04 635次阅读
    如何用OpenCV进行手势识别--基于<b class='flag-5'>米尔</b>全志T527<b class='flag-5'>开发板</b>

    ST×米尔STM32MP25x线下培训会

    STM32MP257D是ST推出的搭载了双核Cortex-A35@1.5GHz和Cortex-M33@400MHz的微处理器米尔电子基于STM32MP257D推出了MYD-LD25X开发板
    的头像 发表于 12-06 01:00 209次阅读
    ST×<b class='flag-5'>米尔</b>STM32MP25x线下培训会

    【迅为电子】i.MX6UL和i.MX6ULL芯片区别与开发板对比

    【迅为电子】i.MX6UL和i.MX6ULL芯片区别与开发板对比
    的头像 发表于 11-28 14:31 330次阅读
    【迅为电子】i.MX<b class='flag-5'>6</b>UL和i.MX<b class='flag-5'>6ULL</b>芯片区别与<b class='flag-5'>开发板</b>对比

    追加名额丨米尔瑞芯微RK3576开发板有奖试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器MYD-LR3576开发板免费试用活动加码啦~~米尔追加了
    的头像 发表于 11-22 01:00 169次阅读
    追加名额丨<b class='flag-5'>米尔</b>瑞芯微RK3576<b class='flag-5'>开发板</b>有奖试用

    【新品】i.MX6ULL工业嵌入式核心!NXP低功耗MPU,LCD显示

    核心新品上市ECK20-6Y2XA系列核心是亿佰特基于NXPCortex-A7内核i.MX6ULL处理器精心设计的,采用邮票孔连接的低成
    的头像 发表于 11-15 01:04 181次阅读
    【新品】i.MX<b class='flag-5'>6ULL</b>工业嵌入式核心<b class='flag-5'>板</b>!NXP低功耗MPU,LCD显示

    有奖丨米尔 瑞芯微RK3576开发板免费试用

    米尔与瑞芯微合作发布的新品基于瑞芯微RK3576应用处理器MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的
    的头像 发表于 11-12 01:00 302次阅读
    有奖丨<b class='flag-5'>米尔</b> 瑞芯微RK3576<b class='flag-5'>开发板</b>免费试用

    米尔RK3576开发板特惠活动!

    近日,米尔电子发布基于瑞芯微RK3576核心开发板,RK3576作为国产热门处理器,其高性能数据处理能力、领先的AI智能分析、强大的扩展
    的头像 发表于 11-12 01:00 256次阅读
    <b class='flag-5'>米尔</b>RK3576<b class='flag-5'>开发板</b>特惠活动!

    米尔基于NXP iMX.93开发板的M33处理器应用开发笔记

    资源MYD-LMX9X开发板米尔基于NXPiMX.93开发板)3.软件资源Windows7及以上版本软件:IAREmbeddedWorkbench4.板载固件调试
    的头像 发表于 06-29 08:01 1347次阅读
    <b class='flag-5'>米尔</b>基于NXP <b class='flag-5'>iMX</b>.93<b class='flag-5'>开发板</b>的M33<b class='flag-5'>处理器</b>应用<b class='flag-5'>开发</b>笔记

    点击参与米尔NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器MYD-LMX9X开发板免费试用活动来啦~~米尔提供了3块价值678元的
    的头像 发表于 06-13 08:02 527次阅读
    点击参与<b class='flag-5'>米尔</b>NXP i.MX 93<b class='flag-5'>开发板</b>有奖试用

    米尔NXP i.MX 93开发板的Qt开发指南

    1.概述Qt是一个跨平台的图形应用开发框架,被应用在不同尺寸设备和平台上,同时提供不同版权版本供用户选择。米尔NXPi.MX93开发板
    的头像 发表于 06-07 08:01 1730次阅读
    <b class='flag-5'>米尔</b>NXP i.MX 93<b class='flag-5'>开发板</b>的Qt<b class='flag-5'>开发</b>指南

    免费!NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器MYD-LMX9X开发板免费试用活动来啦~~米尔提供了
    的头像 发表于 05-23 08:01 722次阅读
    免费!NXP i.MX 93<b class='flag-5'>开发板</b>有奖试用

    G2D图像处理硬件调用和测试-基于米尔-全志T113-i开发板

    本篇测评由电子工程世界的优秀测评者“jf_99374259”提供。本文将介绍基于米尔电子MYD-YT113i开发板的G2D图像处理硬件调用和
    的头像 发表于 04-12 08:01 664次阅读
    G<b class='flag-5'>2</b>D图像<b class='flag-5'>处理</b>硬件调用和测试-基于<b class='flag-5'>米尔</b>-全志T113-i<b class='flag-5'>开发板</b>

    ROS系统的智能车开发-基于米尔芯驰MYD-JD9X开发板

    本篇测评由电子工程世界的优秀测评者“mameng”提供。本文将介绍基于米尔电子MYD-JD9X开发板的ROS系统智能车开发。目前实现ROS的方式主要有两种:Ubuntu系统+ROS;U
    的头像 发表于 01-26 08:01 919次阅读
    ROS系统的智能车<b class='flag-5'>开发</b>-基于<b class='flag-5'>米尔</b>芯驰<b class='flag-5'>MYD</b>-JD9X<b class='flag-5'>开发板</b>