ElfBoard是飞凌嵌入式面向学习者推出的全新子品牌ELF是Embedded Learning Fans嵌入式学习爱好者的首字母缩写。ELF也是精灵的意思, ElfBoard以灵动的精灵形象作为品牌Logo,代表着自由、智慧和科技,也寓意学习者能够像精灵一样自由地掌控技术,发挥无限创造力。希望与更多的嵌入式学习爱好者一同打造一片技术学习乐土,用自己的智慧和热情创造更多无限可能。
今天我要介绍的是飞凌嵌入式旗下专做教育板卡的子品牌——ElfBoard,子品牌的学习板更加适合入门级的学生使用,价格也比较实惠,资料源代码等全开放,还有配套的学习视频和资料。这一次非常荣幸通过了 ELF1 的试用申请,收到板子后,马不停蹄,抓紧把这篇开箱帖子写出来。即使是试用板子,公司也是顺丰包邮了,非常值得点赞。
1. 包装和配件
ELF 是 "Embedded Learning Fans" 嵌入式学习爱好者的首字母缩写,同时 ELF 也是“精灵”的意思,我们可以从外包装上看到非常可爱乖巧的精灵形象。ElfBoard 以灵动的精灵形象作为品牌 Logo,代表着自由、智慧和科技,也寓意学习者能够像精灵一样自由地掌控技术,发挥无限创造力。
打开纸盒子,引入眼帘的是 ELF1 开发板,一张纪念卡,一份开箱必读说明书。
ELF1 开发板的标准配件包里有:一字螺丝刀、尼龙柱、Type-C转接线、10P杜邦线和网线。
就拿 Type-C 转接线来说,触感非同一般,说明ElfBoard工艺颇佳。
除了标注配件外,其他开发套件也是非常丰富,有 4G 模块、摄像头和电容屏。
由于是试用套装,笔者暂时未购买,如果后续需要,会前往官网商店购买。
串口登录
为了充分榨干电脑性能,编译速度快一些,我直接把选择在 Ubuntu 下开发。目前电脑是 Ubuntu + Windows 10 双系统的组合。像 Ubuntu 这样的系统,权限管理比较严重,要调试起来需要特别注意权限问题,这也是相较于 Windows 比较容易忽视的点。
解除 USB 占用
我们将开发板与设备连接之后,执行
ls /dev/tty*
发现并没有查看到 USB 设备,这是怎么一回事呢? 通过查看系统日志
sudo dmesg | grep brltty
发现设备被 brltty 占用了,那简单,直接卸载 brltty 就行了
sudo apt remove brltty
重新拔插 USB 数据线,再执行
ls /dev/tty*
可以看到设备已经存在了。
安装 CuteCOM
在 Ubuntu 上比较好用的一个串口调试工具 —— CuteCOM 安装方法很简单,执行
sudo apt-get install cutecom lrzsz
(左右移动查看全部内容)
安装成功之后,打开 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 那么接着往下看吧。
官方资料采用的是 Windows 下加虚拟机的方式搭建开发环境,笔者从官方资料中抽丝剥茧,把在 Ubuntu 实机上相关的资料整理出来。
必要库的安装
在进行开发之前,还需要一些其他的必要库,我们使用以下命令逐一安装,安装前需保证网络可正常使用,能上外网:
首先,更新下载源信息
sudo apt-get update
提供编译程序必须软件包列表信息
sudo apt-get install build-essential
(左右移动查看全部内容)
用于生成基于文本的用户界面
sudo apt-get install libncurses*
(左右移动查看全部内容)
基于 Lzo 库的压缩解压工具
sudo apt-get install lzop
(左右移动查看全部内容)
网络配置工具
sudo apt-get install net-tools
(左右移动查看全部内容)
Ubuntu 系统的主要目录
SSH连接
连接测试
从 ELF1 教程文档\01-教程文档\01-0 ELF1、ELF1S开发板_快速启动手册_V1.pdf 中我们可知,ELF 1支持串口登录 和 SSH登录。
登录需要超级终端软件,本文演示一下手册一致的putty进行登录介绍和测试,以及本人在window端比较习惯使用的powershell来部署登录一下。
串口登录
使用前注意CH340驱动的下载
我的挂载到了COM3
内核编译,这个下回给大家做分析
登录完成:
SSH连接
连接测试
本文继续做一下连接接口的测试,本文使用USB摄像头进行连接,以测试ELF 1 USB功能,以及其对应的摄像头视频流的处理反馈
设备部署如下:
未插上时USB总线状态:
插上设备后USB总线状态:
查看USB摄像头支持的分辨率和帧率:
这个功能非常有用,有时候做一些比如ESP32的开发时,就是会对于USB摄像头支持参数不太了解,且设备不支持获取摄像头参数,以至于分辨率设置错误,导致后期帧率处理的算法没有调整好,导致一些奇怪的报错;
代码整理:
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,保存在执行命令的目录下/*
(左右移动查看全部内容)
网络连接
本文讲一下如何通过有线网络,使我们的ELF1开发板能够连接外网;
有些小伙伴初次开发此类开发板,对于网卡,IP等概念都不太清楚,同时不熟悉系统,因此在连接网络过程中不太顺利;本文也会简单的科普和介绍一下网络有关的基础知识,有基础的可以直接看后面如何部署。配置过程中也参考了官方发布的文章,非常有帮助。
科普部分
(本文仅科普的在配置过程中出现的参数,没有涉猎的地方还请继续学习)。
网络基础知识:IP地址,子网掩码,网关;凡是我们需要联网和使用网络的主机都需要进行配置网络,而配置网络就离不开这三个名词:IP地址,子网掩码,网关。
IP地址、子网掩码和网关在网络通信中扮演着重要的角色。IP地址为设备在网络中提供了唯一的标识;子网掩码帮助设备识别其所在的网络和主机;而网关则实现了不同网络之间的互连和通信。
网络部署
上文已经教授了串口连接和window和linux 不同系统SSH连接开发板的方法,所以我们就先连接上我们的开发板。笔者使用的是SSH连接,因为这样网线也直接连接到了电脑上;使用串口连接时,就额外连接主板和PC端各自的网口;
【项目复现】
本文基于文档中提供的项目教程,复现ELF 1连接阿里云物联网平台,进行MQTT开发;记录ELF1 个人物联网开发的过程,可以提供参考。
MQTT 简述
MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
MQTT的特点包括:
项目部署
没有账号的可以进行一个简单的登录并实名认证:
阿里云登陆页面:https://account.aliyun.com/login/login.htm
进行如下操作:
更多回帖