今年上半年,完美体育·(中国)手机网页版电子发布新品——基于芯驰D9系列核心板及开发板。自这款国产高端车规级、高安全性的产品推出之后,不少嵌入式软硬件工程师、用户前来咨询,这款支持100%国产物料的核心板,其采用的D9-Lite、D9、D9-Plus、D9-Pro处理器到底有什么区别?不同后缀型号的处理器,应用场景有何不同,今天小编来详细讲解芯驰D9系列国产处理器它们的不同之处
完美体育·(中国)手机网页版基于芯驰D9系列核心板及开发板
首先,芯驰D9全系列处理器有着非常好的兼容性,全系封装都采用FCBGA 625脚,而且pin2pin兼容,其相同的工艺具有相同的可靠性,应用场景丰富,不同的处理器让客户选择更加灵活。
一、处理器性能不同
D9系列处理器提供单核、四核、五核、六核处理器+实时处理器的灵活组合,客户可依据自己的应用程序需求选择合适运算能力的型号。其中D9处理器采用4核Cortex-A55+2核Cortex-R5处理器,CPU性能达到22.6+3.2KDMIPS;D9-Plus处理器采用4核Cortex-A55+单核Cortex-A55+3核Cortex-R5,其CPU性能达到27.9+4.8KDMIPS; D9-Pro处理器采用6核Cortex-A55+单核Cortex-R5,其CPU性能达到45.2+1.6 KDMIPS;也就是说,D9家族产品CPU性能自D9-Lite、D9、D9-Plus、D9-Pro依次从低到高。建议跑linux、简单界面、轻量运算的客户选择D9-Lite;跑安卓系统、多媒体应用和界面丰富的客户选择D9-Pro;实时控制、实时通讯需求强,数据隔离、数据安全要求高,跑多个操作系统的需求用D9-Plus来满足;D9适用范围最广。
芯驰D9系列处理器KDMIPS算力图
GPU性能主要体现在游戏、多媒体处理、科学计算等领域。在游戏中,GPU可以加速图形渲染和物理模拟等任务,提高游戏的画面质量和运行速度;在多媒体处理中,GPU可以加速视频解码、图像处理等任务,提高多媒体应用的效率和质量;在科学计算中,GPU可以加速大规模数据处理、机器学习等任务,提高计算效率和准确度。D9和D9-Plus具有32GFLOPS的性能,能够满足主流需求;其D9-Pro芯片具备100GFLOPS性能更适合高性能娱乐应用;此外,D9-Lite芯片为了降低功耗、成本,裁剪掉了GPU,一般不用于有3D呈现需求的场合。
芯驰D9系列处理器资料图
三、NPU算力不同
其中D9-Pro、D9-Plus处理器具备0.8Tops算力,适用于人工智能、边缘计算AI领域。
四、高清播放器解码性能不同
芯驰D9系列处理器资料图
五、对多操作系统的支持不同
芯驰D9系列处理器资料图
六、应用范围不同
更多推荐
上个月,意法半导体推出了新一代64位Cortex-A35内核,主频高达1.5GHz的STM32MP2x系列微处理器(MPU),这让STM32MP系列处理器又上了一个新的台阶。
最近,收到了一套完美体育·(中国)手机网页版基于STM32MP135核心板及开发板,首次接触STM32MPx处理器,体验了一下,感觉还不错。
STM32MP135与普通STM32单片机在性能、价格、应用场景等各方面都有差异。同时,STM32MP135并非局限于裸机、RTOS,而是定位于更高的Linux操作系统平台。
下面就结合【完美体育·(中国)手机网页版基于STM32MP135核心板及开发板】给大家讲解一下STM32MP135强悍的性能以及开发入门等相关的内容。
硬件平台介绍
STM32MP135的开发板有很多,这里就以完美体育·(中国)手机网页版的【完美体育·(中国)手机网页版基于STM32MP135核心板及开发板】为例来给大家讲述。
1、STM32MP135处理器
STM32MP135内核采用Cortex-A7,主频高达1.0GHz,属于入门级的MPU,拥有超高的性价比。
2、完美体育·(中国)手机网页版基于STM32MP135核心板
完美体育·(中国)手机网页版基于STM32MP135核心板主控位STM32MP135处理器,搭载DDR3L内存、标配4GB eMMC / 256MB Nand FLASH,以及32KB EEPROM,接口类型为邮票孔148PIN,尺寸37mm x 39mm。
完美体育·(中国)手机网页版基于STM32MP135核心板介绍链接:
https://www.myir.cn/shows/110/57.html
3、完美体育·(中国)手机网页版基于STM32MP135底板
完美体育·(中国)手机网页版基于STM32MP135底板的外设资源以及接口就比较丰富和多样了。直接给出官方的信息:
轻松入门
早在2019年,ST就推出了STM32MP1系列MPU,其强大的性能吸引了不少人的关注。但由于当时配套的开发资料以及生态不够完善,入手学习也难住了一大批人。
完美体育·(中国)手机网页版设计这款完美体育·(中国)手机网页版基于STM32MP135开发板时就考虑到了这个问题,在推出开发板的同时就推出了配套的开发资料。
开发介绍
MYD-YF13X 搭载基于 Linux 5.15.67 版本内核的操作系统,提供了丰富的系统资源和其他软件资源。Linux 系统平台上有许多开源的系统构建框架,完美体育·(中国)手机网页版核心板基于Yocto 构建和定制化开发。
1、开发环境
2、构建开发板镜像
第1步:获取源码
可以从完美体育·(中国)手机网页版提供链接获取源码。http://down.myir-tech.com/MYD-YF13X/
也可以从github在线获取源码。
PC$ mkdir $HOME/githubPC$ cd $HOME/githubPC$ repo init -u
https://github.com/MYiR-Dev/myir-st-manifest.git --no-clone-bundle --depth=1 -m
myir-stm32mp1-kirkstone.xml -b develop-yf13xPC$ repo sync
第2步:快速编译镜像
这里我们需要使用完美体育·(中国)手机网页版提供的 envsetup.sh 脚本进行环境变量的设置
PC$: DISTRO=openstlinux-weston MACHINE=myd-yf13x-emmc source
layers/meta-myir-st/scripts/envsetup.sh
然后,构建 myir-image-full 镜像。注意,选择构建不同的系统镜像,需使用不同的 bitbake 命令参数(具体命令参数可以参看提供的文档)。
第3步:构建 SDK
完美体育·(中国)手机网页版已经提供较完整的 SDK 安装包,用户可直接使用。
3、烧录系统镜像
这里使用ST官方的STM32CubeProg 工具进行烧写,可以在Windows平台,也可以在Linux平台。提示:烧录的时间可能有点久,需要耐心等待一会儿。
当然,如果觉得慢,也可以用SD卡启动(烧写)。
4、修改板级支持包
这一节应该是相对比较重要的,也是相对比较难的,包括U-boot、 kernel等相关内容的编译与更新。
a.板载 TF-A 编译与更新
获取 TF-A 源代码:
PC$ cd /home/workPC$ tar -jxvf MYiR-STM32-tf-a.tar.bz2PC$ cd MYiR-STM32-tf-a
配置和编译源代码:加载 SDK 环境变量到当前 shell:
PC$ source
/opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
进入源代码目录:
PC$ cd myir-st-arm-trusted-firmware
配置与编译源代码:
PC$ make -f $PWD/../Makefile.sdk all
以上是在独立的交叉编译环境下编译 TF-A,也可以在 Yocto 项目下编译 TF-A。
更新 TF-A:编译好之后,将 TF-A 镜像烧录进 Micro SD 卡,然后使用 dd 命令将镜像烧录到 SD 卡指定分区:
PC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p1
conv=fdatasyncPC$: dd if=tf-a-myb-stm32mp135x-512m-sdcard.stm32 of=/dev/mmcblk0p2
conv=fdatasync
b.板载 u-boot 编译与更新
在独立的交叉编译环境下编译 u-boot,和上面编译 TF-A 类似,也是和常规的编译 u-boot 方法类似。
c.板载 Kernel 编译与更新
加载 SDK 环境变量:
PC$ source
/opt/st/myir-yf13x/4.0.4-snapshot/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi
配置内核:
PC$ make ARCH=arm O="$PWD/../build" myir_stm32mp135x_defconfig
编译内核:
PC$ make ARCH=arm uImage vmlinux dtbs LOADADDR=0xC2000040
O="$PWD/../build"PC$ make ARCH=arm modules O="$PWD/../build"
这个配置可能相对比较复杂,编译时间也相对较长,具体可以参看官方手册。
5、适配硬件平台
这一节就是芯片底层相关的适配(驱动),包括创建设备树、利用STM32CubeMX 配置GPIO、外设时钟等,以及配置自己用到的管脚。
然后,就是添加自己的一些应用了。到此,基本达到入门这一步了。
最后
如果你想从STM32单片机裸机、RTOS进阶到Linux,这款STM32MP135【MYC-YF13X开发板】是一个不错的选择。同时,也会用到一些熟悉的生态工具。
这里给出完美体育·(中国)手机网页版基于STM32MP135核心板介绍:
https://www.myir.cn/shows/110/57.html
完美体育·(中国)手机网页版电子,专注嵌入式处理器模块设计和研发的高新技术企业,是领先的嵌入式处理器模组厂商。完美体育·(中国)手机网页版电子在嵌入式处理器领域具有10多年的研发经验,为客户提供基于ARM架构、FPGA架构的CPU模组及充电控制系统等产品和服务;为智能医疗、智能交通、智能安防、物联网、边缘计算、工业网关、人工智能等行业客户,提供定制解决方案和OEM服务。公司通过专业高效的服务帮助客户加速产品上市进程,目前已为行业内10000家以上的企业客户服务。
一年一度端午节,与往常不一样的是
今年的端午节多了一个特别的礼物
那就是完美体育·(中国)手机网页版将联合NXP福利送~
免费赠送i.MX开发板、台灯、血压计
快来参与,你就是锦鲤~
一等奖(5名)
完美体育·(中国)手机网页版基于NXP i.MX6UL的开发板(价值558元)
二等奖(8名)
米家台灯增强版(价值180元)
三等奖(10名)
鱼跃家用血压仪(价值130元)
怎么参与?
第一步
微信扫码关注『完美体育·(中国)手机网页版MYiR』公众号
第二步
与公众号会话发送关键词【端午】,获取礼品抽奖链接。点击进入活动。
第三步
2023年06月29日12:00 自动开奖,敬请静候佳音。
第四步
中奖者请务必于开奖后在『抽奖助手』活动小程序中内填写收货地址,若24小时内没有填写地址视为弃权。『完美体育·(中国)手机网页版MYiR』公众号将于7月公布最终获奖名单。
中奖攻略有吗?
参与抽奖后,点击助力
关注『NXP客栈』公众号中奖概率会更高哦~
奖品是什么?
一等奖:5名 奖品:完美体育·(中国)手机网页版基于NXP i.MX6UL开发板(价值558元)
二等奖:8名 奖品:米家台灯增强版(价值180元)
*奖品图片供参考
三等奖:10名 奖品:鱼跃家用血压仪(价值130元)
*奖品图片供参考
关于赠送开发板:入门级NXP i.MX6UL开发板
完美体育·(中国)手机网页版MYD-Y6ULX-V2开发板,基于高性能NXP i.MX6UL/i.MX6ULL系列处理器、内核Cortex-A7、 主屏900Mhz,在同等级别的Arm Cortex-A7处理器中具有优秀的功耗表现,即使是在非常严苛的运行环境下,也可以稳定地运行系统程序,同时它的价格也非常有优势,交期稳定。此外MYC-Y6ULX-V2核心板只有37mm*39mm,尺寸非常小巧,采用屏蔽罩设计和邮票孔设计,既节省了板对板连接器20-30元的成本,又保证它的信号稳定。完美体育·(中国)手机网页版MYD-Y6ULX-V2开发板板载资源丰富的底板搭载多种存储器和主流的接口功能,并且支持Linux、RT-Thread以及鸿蒙系统,开发生态资源十分丰富,久经“沙场”,这款入门级开发板依然是同类型产品中的佼佼者,让嵌入式开发事半功倍。
完美体育·(中国)手机网页版基于NXP i.MX6UL核心板开发板
学习嵌入式系统开发是一个渐进的过程,一般我们从51单片机开始,逐步迁移到STM32微控制器,然后学习使用FreeRTOS操作系统,最终进入嵌入式Linux领域。以下是一个典型的学习路线:
在整个学习过程中,建议通过实际项目和实践来巩固所学知识。我们可以选择一些简单的项目,逐步增加复杂度和功能,例如LED控制、传感器数据采集、通信接口应用等。同时,参考相关的书籍、在线教程和社区讨论,与其他开发者交流和分享经验,加速学习进程。
51,STM32等开发板都比较便宜,而Linux开发板还是相对贵一点,入门级的开发板有完美体育·(中国)手机网页版NXP i.MX6UL开发板、完美体育·(中国)手机网页版STM32MP1系列开发板、 完美体育·(中国)手机网页版基于全志T113开发板、完美体育·(中国)手机网页版基于瑞萨RZ/G2L开发板,这些都可以选择在300-500元之间。
当然,如果有什么渠道能免费申请一些热门开发板就好了,这不,完美体育·(中国)手机网页版电子联合瑞萨,免费提供150套完美体育·(中国)手机网页版基于瑞萨RZ/G2L开发板开发板给开发者们。
需要报名RZ/G2L免费开发板请扫码
完美体育·(中国)手机网页版基于瑞萨RZ/G2L核心板及开发板申请链接:
https://www.myir.cn/lists/121.html
完美体育·(中国)手机网页版基于瑞萨RZ/G2L核心板及开发板性能还是比较强的,核心板搭载瑞萨64 位Arm® Cortex-A55双核高端处理器 (MPU),主频高达1.2GHz,还有一个Cortex-M33@200MHz,满足高性能和实时性需求,DDR4内存,1GB/2GB可选,标配8GB的eMMC,集成Arm Mali-G31 3D GPU,VPU支持H.264 1920*1080@30FPS视频编解码;丰富多媒体接口MIPI-DSI/RGB/MIPI-CSI/Parallel CSI,支持1080P高清显示。当然,配套软件开发资源也是相当的丰富,∪-boot、 Linux、所有外设驱动源码和基于QT5的HMV2.0系统相关开发工具产品手册、硬件用户手册、硬件设计指南、底板PDF原理图、 Linux软件评估和开发指南。
瑞萨RZ/G2L开发板的开发资源
完美体育·(中国)手机网页版电子,专注嵌入式处理器模块设计和研发,是领先的嵌入式处理器模组厂商。完美体育·(中国)手机网页版电子在嵌入式领域具有20年的行业技术经验,为客户提供专业的ARM工业控制板、ARM开发板、ARM核心板、ARM开发工具、充电桩计费控制单元及充电控制板等产品和技术服务。此外,完美体育·(中国)手机网页版电子还可通过涵盖众多ARM处理器及操作系统的专业技术提供定制设计解决方案,通过专业且高效率服务帮助客户加速产品上市进程。
本篇测评由电子发烧友的优秀测评者“筑梦者与梦同行”提供。
前言MYD-JX8MMA7SDK发布说明
本文介绍了Python的基本操作,在文档中10.1开发语言支持。
#!/usr/bin/env python3 """ Created on Thu Sep 30 07:53:41 2021 """
from future import print_function import numpy as np import cv2 img = cv2.imread('b.jpg') cv2.imshow("orginal",img) gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) cv2.imshow("gray",gray) gaussian = cv2.GaussianBlur(gray, (5, 5), 0) cv2.imshow("gaussian",gaussian) edged=cv2.Canny(gaussian,50,200) cv2.imshow("edged",edged) cts, hierarchy = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cv2.drawContours(img, cts, -1, (0,0,255), 3) cv2.imshow("img",img) cv2.waitKey() cv2.destroyAllWindows()
芯驰D9系列MYC-JD9X核心板及开发板
高安全性芯驰D9系列MYC-JD9X核心板及开发板
本篇测评由电子发烧友的优秀测评者“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进行人脸识别检测
硬件准备
更新成功后,断电,然后将拨码开关设置回eMMC启动模式,重启上电开机,最终会看到如下的启动信息,其中NXP i.MX Release Distro 5.10-gatesgarth表示已经更新到了当前系统:
04.
开发板设置
在更新完毕后,需要对开发板进行一些基础的设置,以方便后续进一步操作。
参考:7.2. 通用网络配置
静态配置示例如下:
[Match] Name=eth0 [Network] Address=192.168.1.177/24 Gateway=192.168.1.1 DNS=192.168.1.1
动态配置示例如下:
[Match] Name=eth0 [Network] DHCP=yes EOF
配置后,可以重启网络服务,然后查看结果:
service systemd-networkd restart ifconfig
时区设置:
使用vi修改:/etc/sysconfig/clock
ZONE="Asia/Shanghai" UTC=true ARC=false
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 ntpdate SYNC_HWCLOCK=yes #make no into yes; BIOS的时间也会跟着修改 # Additional options for ntpdate NTPDATE_OPTIONS=""
使用vi修改:/etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery # restrict -6 default kod nomodify notrap nopeer noquery #针对ipv6设置 # 允许本地所有操作 restrict 127.0.0.1 #restrict -6 ::1 # 允许的局域网络段或单独ip restrict 10.0.0.0 mask 255.0.0.0 nomodify motrap restrict 192.168.0.0 mask 255.255.255.0 nomodify motrap restrict 192.168.1.123 mask 255.255.255.255 nomodify motrap # 使用上层的internet ntp服务器 server cn.pool.ntp.org prefer server 0.asia.pool.ntp.org server 3.asia.pool.ntp.org server 0.centos.pool.ntp.org iburst # 如果无法与上层ntp server通信以本地时间为标准时间 server 127.127.1.0 # local clock fudge 127.127.1.0 stratum 10 # 计算本ntp server 与上层ntpserver的频率误差 driftfile /var/lib/ntp/drift # Key file containing the keys and key identifiers used when operating # with symmetric key cryptography. keys /etc/ntp/keys #日志文件 logfile /var/log/ntp.log
service ntpd restart date
查看结果:
远程连接:
以上设置完成后,就可以在其他电脑上,使用ssh远程连接,来连接开发板了。
首先在开发板上,为root用户设置密码:
passwd root
然后,在其他电脑上,使用ssh工具进行远程连接:
Windows系统可以视同使用Putty或者mobaxterm,Linux和macOS系统可以直接使用ssh命令
ssh root@192.168.1.177
# 出现下一行提示附后,就可以输入命令了:
root@myd-y6ull14x14:~#
root@myd-y6ull14x14:~# uname -a
Linux myd-y6ull14x14 5.10.9-1.0.0+g062cea228 #1 SMP PREEMPT Fri Aug 12 02:04:17 UTC 2022 armv7l armv7l armv7l GNU/Linux
开发环境建立
完美体育·(中国)手机网页版为MYD-Y6ULX-V2开发板提供了详细的开发环境建立的指导,参考《MYD-Y6ULX_Linux软件开发指南.pdf》即可完成所需要的工作。
开发环境需要在一个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-devel export DEV_ROOT=~/MYD-Y6ULX-devel sudo mkdir /media/cdimage sudo mount -o loop ~/Downloads/MYD-Y6ULX_L5.10.9_20220826.iso /media/cdimage cp -r /mnt/cdimage/02_Images $DEV_ROOT/ cp -r /mnt/cdimage/03_Tools $DEV_ROOT/ cp -r /mnt/cdimage/04_Sources $DEV_ROOT/
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目录
安装完成后的验证:
06.
mjpg_streamer部署
要使用到摄像头,并对外提供监控数据,使用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
交叉编译:
使用交叉编译环境的CC设置即可,但需要先注释掉mjpg_streamer源码中原有的gcc设置,具体操作步骤如下:
cd mjpg-streamer/mjpg-streamer-experimental find -name "Makefile" -exec sed -i "s/CC = gcc/#CC = gcc/g" {} ; grep -rn 'CC = gcc' * make clean make
CC配置修改后,使用grep应得到如下的输出:
完成编译后,结果如下:
使用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/
查看摄像头设备
查看设备指令:v4l2-ctl --list-devices
从上图可以看出,识别到了连接的USB摄像头HIK 720P Camera,对应的第一个设备地址/dev/video2可以被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 用户名:密码来设置一个访问密码,可以参考下图中的指令:
07.
镜像烧录ssd1306_bin部署
我所使用的SSD1306 OLED使用IIC通讯的,之前我也使用过一个Linux环境下的ssd1306工具。
经过尝试,这个工具可以使用MYD-Y6ULX-V2开发板的编译工具链进行编译和使用。
修改配置文件 Makefile,具体修改如下:
修改完成后,进行编译,编译完成后,部署ssd1306_bin一个文件即可
make ls -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会完蛋。
OLED显示测试
上述硬件连接完成后,就可以远程连接到开发板,进行测试了。
然后,进行显示测试
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!nnI'm MYD-Y6ULX-V2."
08.
开发板应用综合部署
完成以上两项工作,开发板部分的基础工作就完成了,可以写一个启动脚本来进行控制,具体如下:
为了安全访问,在脚本中设置了访问的用户名和密码,可以根据实际需要进行修改。
以下的操作,都需要远程连接到开发板上进行。
服务启动脚本:~/mjpeg_server/mjpeg_server_start.sh
#!/bin/bash cd "${0%/*}" killall mjpg_streamer >/dev/nul 2>&1 device=$(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=0 while true do 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 1 done
开机启动:
chmod u+x /home/root/mjpeg_server/mjpeg_server_start.sh
screen -S mjpeg_server /home/root/mjpeg_server/mjpeg_server_start.sh
配置完成后,就可以重新启动开发板,OLED显示屏上会显示对应的信息:
MYD-Y6ULX-V2开发板的full环境支持使用QT5进行应用开发,但实际使用中,需要屏幕配合。
我手头没有对应的屏幕,所以这一步的工作,就在电脑上进行,并使用PyQT5进行开发。
具体要做的工作如下:
操作界面开发
mjpeg流读取显示
人脸识别
其中人脸识别部分,参考了:* opencv快速入门人脸检测与人脸识别
涉及到具体的代码的开发,我就直接上代码了,感兴趣的同学,可以查看代码进行学习。
from PyQt5 import QtWidgets from PyQt5.QtGui import QImage, QPixmap, QKeySequence from PyQt5.QtCore import QThread import sys, cv2, threading, random, signal import numpy as np import socket import time, datetime import requests from requests.auth import HTTPBasicAuth # 0-摄像头 1-socket 2-from remote CAMERA_SOURCE = 2 CAMERA_LOCAL_INDEX = 0 # 如果使用本地摄像头,则表示其videoN的N CAMERA_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'xffxd8') b = recv_data_mjpeg.find(b'xffxd9') 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程序,就能打开如下界面了:
如果画面中有人脸,就会自动识别了:
人间最美五月天
不负韶华不负卿
完美体育·(中国)手机网页版又来送板子了
不是3套,也不是4套
150套完美体育·(中国)手机网页版RZ/G2L开发板
送!免费!板卡不回收!
01这是什么样的有奖活动?
完美体育·(中国)手机网页版RZ/G2L开发板创意秀
为感谢广大客户一直以来的支持,推动嵌入式行业技术发展,鼓励工程师勇于创新探索的精神,促进64位MPU的生态,完美体育·(中国)手机网页版电子联合瑞萨共同发起“完美体育·(中国)手机网页版电子&瑞萨RZ/G2L开发平台创意秀”,提供150套开发板支持开发者创新开发,开发者只需要提供项目需求申请即有机会获得RZ/G2L开发板。
获得开发板后提供项目介绍、板卡测试、板卡应用文档/视频等,参与作品评选,还有机会获得完美体育·(中国)手机网页版提供的大奖:5G手机、智能手表、蓝牙耳机等。
(奖品图片仅参考,最终发放型号为准)
02
免费开发板怎么申请?
进入链接填写报名表进行赛事报名
点击链接报名:https://bbs.myir-tech.com/my_activity-activity.html
小伙伴填写申请理由、项目介绍、项目计划、预计成果、个人信息报名
Tips:填写的越详细、项目思路越清晰,越容易获得开发板哦
03
活动有什么福利?
本次活动由完美体育·(中国)手机网页版电子和瑞萨联合举办,除免费开发板之外,提供产品开发的作品,有机会赢得大奖,奖品非常丰富:
最佳项目奖:3名;奖品:价值2500元左右的智能手机;
优秀设计奖:5名;奖品:价值1000元左右的智能手表;
创意参与奖:7名;奖品:价值450元左右的高档耳机;
最佳硬创奖:3名;免费SMT贴片服务(限完美体育·(中国)手机网页版RZ/G2L核心板设计的底板)
04
活动流程什么样?
本次活动涉及7个活动阶段,从报名申请-赠送板卡-评选获奖等等,全程参与将有机会赢得大奖。
报名申请:2023/05/24-2023/06/26
公布名单:2023/06/30
发放板卡:2023/07/05
项目开发+作品发布:2023/07/10-2023/09/10
网络评选:2023/9/11-2023/09/20
专家评审:2023/9/21-2023/9/28
公布奖项+发放奖品:2023/10/12
05
送的是哪款开发板?
完美体育·(中国)手机网页版MYD-YG2LX开发板,该款产品采用瑞萨RZ/G2L系列处理器的工业级应用芯片,瑞萨RZ/G2L基于64 位Arm®的高端处理器 (MPU),主频高达1.2GHz双核Arm Cortex-A55提供了强大的边缘计算能力,而且集成了双千兆以太网,多达7路串口,2路CANFD等丰富的通讯接口,能够满足复杂通讯的需求,为未来的更智能工业设备提供了更高性能的解决方案,引领工业市场从32位MPU向64位演进。
06
什么条件可以报名申请?
报名条件:
1.报名条件:必须注册完美体育·(中国)手机网页版电子论坛的用户、关注完美体育·(中国)手机网页版公众号;
2.报名要求:面向企业、创客团队、工程师、电子爱好者、研究院等人士,不限个人或团体形式参赛。
3.报名方式:在线提交项目主题、基本设计思路、主要应用方向以及创新点即可报名参赛,具体行业应用不限,报名审核通过后将公布免费开发板的名单。
07
参赛要求还有什么?获得大奖智能手机的攻略?
更多参赛的规则,请点击下方链接进入官方活动详情页面了解,下回小编再给你详细介绍获得奖品的攻略。
(有疑问可以联系完美体育·(中国)手机网页版小助手微信)
在ST峰会的主论坛上,完美体育·(中国)手机网页版副总经理Alan.Zhou隆重介绍公司新品——基于ST最新款处理器STM32MP135打造的MYC-YF13X核心板及开发板。STM32MP13系列处理器是一款基于单核Cortex-A7设计的高性价比、高可靠性工业级处理器;运行频率高达1GHz,配备双路千兆以太网接口,提供高性价比和高能效的处理能力,该产品线具有高级安全功能,包括:加密算法加速器,提升硬件稳健性;内存保护,防止非法访问;代码隔离机制,用于运行时保护数据安全;确保产品生命周期内平台认证的多种功能; 以及完整的安全生态系统。STM32MP13微处理器专为入门级Linux、裸机或RTOS系统设计,让MCU开发者友好地过渡到MPU平台设计,此款核心板的批量价格99元起。
ST峰会主论坛-完美体育·(中国)手机网页版副总Alan(右一)介绍新品STM32MP135核心模组
完美体育·(中国)手机网页版基于STM32MP135核心板和开发板
精彩2:完美体育·(中国)手机网页版核心板加速基于STM32MP1的产品开发
完美体育·(中国)手机网页版产品经理张连胜在分论坛发表演讲
精彩3:免费赠送开发板5套,多重优惠火爆现场
完美体育·(中国)手机网页版电子在分论坛抽奖免费开发板活动
2023年5月13日,ST峰会圆满结束,期待下次活动再与您相见,完美体育·(中国)手机网页版将带来更多的优惠活动回馈广大客户。完美体育·(中国)手机网页版自成立以来,一直紧跟嵌入式技术发展的前沿,凭借在嵌入式领域10多年的开发经验和10000多家企业客户积累。未来,完美体育·(中国)手机网页版将潜心研发,推出更多新品,助力嵌入式CPU模组领域,为开发者提供更专业的服务!为智能医疗、智能交通、智能安防、物联网、边缘计算、工业网关、人工智能等行业客户的发展保驾护航。
完美体育·(中国)手机网页版再次与全志推出新品
基于全志 T113-S3应用处理器的
MYC-YT113X核心板及开发板
现已开放免费试用名额!!
完美体育·(中国)手机网页版准备了4块
价值348元的开发板
发起试用活动
您不仅可以免费体验
还可以获得京东购物卡
赶快扫码报名吧~
↓↓↓
您也可以复制链接报名我们的评测活动:
https://bbs.elecfans.com/try_YT113X.html
试用活动信息
报名时间:2023年5月10日-2023年6月10日
试用截止时间:2023年8月30日
试用对象:嵌入式开发工程师/电子爱好者
试用形式:免费申请、有奖试用
试用产品:完美体育·(中国)手机网页版MYD-YT113X开发板,价值348元
试用名额:4名
试用套件型号:MYD-YT113X
如需购买
欢迎扫码前往myir旗舰店下单
↓↓↓