本帖最后由 火火火火火精灵 于 2024-1-9 11:15 编辑

微信图片_20240109103729.png
      ElfBoard是飞凌嵌入式面向学习者推出的全新子品牌ELF是Embedded Learning Fans嵌入式学习爱好者的首字母缩写。ELF也是精灵的意思, ElfBoard以灵动的精灵形象作为品牌Logo,代表着自由、智慧和科技,也寓意学习者能够像精灵一样自由地掌控技术,发挥无限创造力。希望与更多的嵌入式学习爱好者一同打造一片技术学习乐土,用自己的智慧和热情创造更多无限可能。

声明:本篇文章转载自电子发烧友微信公众号
原创作者:陈世超

1.开发板开箱体验

今天我要介绍的是飞凌嵌入式旗下专做教育板卡的子品牌——ElfBoard,子品牌的学习板更加适合入门级的学生使用,价格也比较实惠,资料源代码等全开放,还有配套的学习视频和资料。这一次非常荣幸通过了 ELF1 的试用申请,收到板子后,马不停蹄,抓紧把这篇开箱帖子写出来。即使是试用板子,公司也是顺丰包邮了,非常值得点赞。
微信图片_20240109104004.png

1. 包装和配件
ELF 是 "Embedded Learning Fans" 嵌入式学习爱好者的首字母缩写,同时 ELF 也是“精灵”的意思,我们可以从外包装上看到非常可爱乖巧的精灵形象。ElfBoard 以灵动的精灵形象作为品牌 Logo,代表着自由、智慧和科技,也寓意学习者能够像精灵一样自由地掌控技术,发挥无限创造力。

640.png

打开纸盒子,引入眼帘的是 ELF1 开发板,一张纪念卡,一份开箱必读说明书。

640 (1).png
640 (2).png

ELF1 开发板的标准配件包里有:一字螺丝刀、尼龙柱、Type-C转接线、10P杜邦线和网线。

640 (3).png

就拿 Type-C 转接线来说,触感非同一般,说明ElfBoard工艺颇佳。

除了标注配件外,其他开发套件也是非常丰富,有 4G 模块、摄像头和电容屏。

640 (4).png

由于是试用套装,笔者暂时未购买,如果后续需要,会前往官网商店购买。




2.Ubuntu下的串口登录和接口测试

串口登录
为了充分榨干电脑性能,编译速度快一些,我直接把选择在 Ubuntu 下开发。目前电脑是 Ubuntu + Windows 10 双系统的组合。像 Ubuntu 这样的系统,权限管理比较严重,要调试起来需要特别注意权限问题,这也是相较于 Windows 比较容易忽视的点。

解除 USB 占用
我们将开发板与设备连接之后,执行
  • ls /dev/tty*
640 (5).png


发现并没有查看到 USB 设备,这是怎么一回事呢? 通过查看[color=var(--weui-LINK)][url=]系统日志[/url]
  • sudo dmesg | grep brltty
640 (6).png


发现设备被 brltty 占用了,那简单,直接卸载 brltty 就行了
  • sudo apt remove brltty

微信图片_20240109104357.png
重新拔插 USB 数据线,再执行
  • ls /dev/tty*
640 (7).png


可以看到设备已经存在了。

安装 CuteCOM
在 Ubuntu 上比较好用的一个串口调试工具 —— CuteCOM 安装方法很简单,执行
  • sudo apt-get install cutecom lrzsz

640 (8).png


安装成功之后,打开  CuteCOM ,点击右边的 Settings 。这些选项按要求设置: Baudrate 115200、Data Bits 8、Flow Control None、Parity None、Open Node Read/Write、Stop Bits 1、Device /dev/ttyUSB0 。最后点击 Open 连接串口。 如果此时你也像笔者一样遇到了错误,Cannot open /dev/ttyUSB0: Permission denied 那么接着往下看吧。




3.Ubuntu下开发环境搭建—编译

官方资料采用的是 Windows 下加虚拟机的方式搭建开发环境,笔者从官方资料中抽丝剥茧,把在 Ubuntu 实机上相关的资料整理出来。

必要库的安装
在进行开发之前,还需要一些其他的必要库,我们使用以下命令逐一安装,安装前需保证网络可正常使用,能上外网:

首先,更新下载源信息
  • sudo apt-get update
提供编译程序必须软件包列表信息
  • sudo apt-get install build-essential


用于生成基于文本的用户界面
  • sudo apt-get install libncurses*


基于 [color=var(--weui-LINK)][url=]Lzo[/url] 库的压缩解压工具
  • sudo apt-get install lzop



网络配置工具
  • sudo apt-get install net-tools


Ubuntu 系统的主要目录


640 (9).png



4.连接测试 + Powershell
SSH连接

连接测试
从 ELF1 教程文档\01-教程文档\01-0 ELF1、ELF1S开发板_快速启动手册_V1.pdf 中我们可知,ELF 1支持串口登录 和 SSH登录。

登录需要超级终端软件,本文演示一下手册一致的putty进行登录介绍和测试,以及本人在window端比较习惯使用的powershell来部署登录一下。

串口登录
使用前注意CH340驱动的下载

640 (10).png


我的挂载到了COM3
640 (11).png

640 (12).png


内核编译,这个下回给大家做分析
640 (13).png


登录完成:
640 (14).png





5.USB摄像头连接测试 + Ubutu
SSH连接

连接测试
本文继续做一下连接接口的测试,本文使用USB摄像头进行连接,以测试ELF 1 USB功能,以及其对应的摄像头视频流的处理反馈
设备部署如下:
640.jpg


未插上时USB总线状态:


640 (15).png
插上设备后USB总线状态:

640 (16).png


查看USB摄像头支持的分辨率和帧率:
这个功能非常有用,有时候做一些比如ESP32的开发时,就是会对于USB摄像头支持参数不太了解,且设备不支持获取摄像头参数,以至于分辨率设置错误,导致后期帧率处理的算法没有调整好,导致一些奇怪的报错;


640 (17).png
代码整理:
lsusb //查看USB状态/*
ls /dev/video* //列出所有已经被识别的视频设备/*
elf1_cmd_luvcview -d /dev/video2 -L  //查看摄像头支持的分辨率和帧速率/*
elf1_cmd_luvcview -d /dev/video2 -f yuv -s 432x240 -i 25 //输入命令进行 YUV 模式图像采集,可在液晶屏上预览采集的图像/*
elf1_cmd_luvcview -d /dev/video2 -f jpg -s 432x240 -i 30 //令进行 MJPEG 模式图像采集,可在液晶屏上预览采集的图像,在该模式下,采集数据的同时也在进行录制,录制的文件名为 xxx.avi,保存在执行命令的目录下/*



6.ELF1 开发板网络连接



网络连接
本文讲一下如何通过有线网络,使我们的ELF1开发板能够连接外网;

有些小伙伴初次开发此类开发板,对于网卡,IP等概念都不太清楚,同时不熟悉系统,因此在连接网络过程中不太顺利;本文也会简单的科普和介绍一下网络有关的基础知识,有基础的可以直接看后面如何部署。配置过程中也参考了官方发布的文章,非常有帮助。

科普部分
(本文仅科普的在配置过程中出现的参数,没有涉猎的地方还请继续学习)。

网络基础知识:IP地址,子网掩码,网关;凡是我们需要联网和使用网络的主机都需要进行配置网络,而配置网络就离不开这三个名词:IP地址,子网掩码,网关。
  • IP地址:IP地址([color=var(--weui-LINK)][url=]Internet Protocol Address[/url])是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个[color=var(--weui-LINK)][url=]逻辑地址[/url],以此来屏蔽物理地址的差异。通俗地讲,IP地址就像是每台设备在网络上的“门牌号”,保证信息能够准确地送达到指定的设备上。
  • 子网掩码:子网掩码又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
  • 网关:网关又称网间连接器、[color=var(--weui-LINK)][url=]协议转换器[/url]。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。


IP地址、子网掩码和网关在网络通信中扮演着重要的角色。IP地址为设备在网络中提供了唯一的标识;子网掩码帮助设备识别其所在的网络和主机;而网关则实现了不同网络之间的互连和通信。

网络部署
上文已经教授了串口连接和window和linux 不同系统SSH连接开发板的方法,所以我们就先连接上我们的开发板。笔者使用的是SSH连接,因为这样网线也直接连接到了电脑上;使用串口连接时,就额外连接主板和PC端各自的网口;


640 (1).jpg



7.MQTT开发—连接阿里云
【项目复现】

本文基于文档中提供的项目教程,复现ELF 1连接阿里云物联网平台,进行MQTT开发;记录ELF1 个人物联网开发的过程,可以提供参考。

MQTT 简述
MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

MQTT的特点包括:
  • 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
  • 对负载内容屏蔽的消息传输。
  • 使用TCP/IP提供网络连接。主流的MQTT是基于TCP连接进行数据推送的,但是同样有基于UDP的版本,叫做MQTT-SN。这两种版本由于基于不同的连接方式,优缺点自然也就各有不同了。
  • 有三种消息发布质量:“至多一次”,消息可能丢失但绝不会重复发送;“至少一次”,消息可能重复发送但绝不会丢失;“只有一次”,确保消息到达一次。
  • MQTT是基于订阅者模型架构的,客户端如果互相通信,必须是在同一订阅主题下,即都订阅了同一个topic,客户端之间是没办法直接通讯的。


项目部署
  • 环境
  • 开发板:ELF1
  • 开发环境:window10+VMware+ubuntu 18.04
  • 交叉编译环境:arm-poky-linux-gnueabi-gcc
  • 阿里云 平台部署


没有账号的可以进行一个简单的登录并实名认证:
阿里云登陆页面:[color=var(--weui-LINK)]https://account.aliyun.com/login/login.htm

进行如下操作:

640 (18).png


640 (16).png
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Powered by Discuz! X3.5  © 2001-2013 Comsenz Inc.