接上文【EASY EAI Nano-TB(RV1126B)开发板试用】通过wifi连接,使用ssh登录EASY EAI Nano-TB(RV1126B)开发板
红绿灯项目
本项目基于EASY EAI Nano-TB(RV1126B)开发板,通过GPIO控制实现红绿灯板的三种颜色LED灯交替闪烁功能。开发板使用SSH进行远程控制通过WiFi连接。
硬件
- EASY EAI Nano-TB(RV1126B)开发板 :一款用于嵌入式ai系统的开发板。
- 红绿灯板 :一个简单的外部设备,包含红、绿、黄三个LED灯。
- wifi路由器 :CMCC-e2dd(密码:jdtsyahg)
-
- 工具要求 :支持SSH连接的客户端(MobaXterm )
连接1*
开发板为用户预留了3个GPIO引脚以便测试和使用,在一路拓展排针(40 针)接口上,上面还有ADC,I2C,串口等资源。端子的间距是2.54mm。工位号为P1。
红绿灯项目使用 GPIO5_C0 , GPIO5_C1 , GPIO5_C2,见图所示。

红绿灯板 :

连接2
红绿灯板与RV11 26 B板连接如下
-
红绿灯板 3V3 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 1 针EASY EAI Nano-TB(RV1126B)开发板 功能3V3
红绿灯板 GND 接EASY EAI Nano-TB(RV1126B)开发板 P1的 6 针EASY EAI Nano-TB(RV1126B)开发板 功能 GND
红绿灯板 LEDr 红 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 13 针 EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C0
红绿灯板 LEDg 绿 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 15 针 EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C1
红绿灯板 LEDy 接EASY EAI Nano-TB(RV1126B)开发板 P1 的 37 针EASY EAI Nano-TB(RV1126B)开发板 功能 GPIO5_C2
| 红绿灯板 |
开发板P1针脚 |
功能 |
|---|
| 3V3 |
1针 |
3V3电源 |
| GND |
6针 |
地线 |
| LEDr红 |
13针 |
GPIO5_C0 |
| LEDg绿 |
15针 |
GPIO5_C1 |
| LEDy黄 |
37针 |
GPIO5_C2 |
端子對應:
GPIO5_C0→gpio 176→红绿灯板 LEDr 红
GPIO5_C1→gpio 177→红绿灯板 LEDg 绿
GPIO5_C2→gpio 178→红绿灯板 LEDy 黄
软件* SSH连接 :
通过MobaXterm工具进行SSH连接。
经过之前查询可知被分配出来的IP地址分别为:
【wlan0】--IP地址:inet 192.168.1.9,子网掩码(24):255.255.255.0-
可使用ssh登录。
- 配置“Session”,选择“SSH”,输入IP地址,最后点击“Open”即可,如下图所示。

- 首次连接,ssh客户端会根据ssh主机IP地址等信息生成一个ssh-key,以绑定标记ssh主机和它所对应的IP地址。若ssh主机的IP地址有变更,又或者别的ssh主机用了曾被记录下来的IP地址,导致ssh主机与IP地址不匹配,则会出现连不上的情况。此时需要用户手动清理掉客户端(putty)关于ssh主机与IP地址的绑定。具体的清理方式请用户自行根据所用的ssh客户端查阅,此处不展开叙述。

- 点击“Accept”后,则会提示输入登录信息,如下图所示。

EASY EAI Nano用户名:nano
EASY EAI Nano密码为:123456
登录后:
EASY EAI Nano-TB是带有基本系统 Ubuntu 22.04.5 LTS (GNU/Linux 6.1.118 aarch64)
脚本编写
脚本内容
#!/bin/sh
if [ -e "$filename" ]; then
#if test -d /sys/class/gpio/gpiol78 ;then
echo "alread exported gpiol78!"
else
sudo echo 178 > /sys/class/gpio/export
fi
sudo echo out > /sys/class/gpio/gpio176/direction ## gpio_direction_output 设置相应gpio为输出方向
sudo echo out > /sys/class/gpio/gpio177/direction ## gpio_direction_output 设置相应gpio为输出方向
sudo echo out > /sys/class/gpio/gpio178/direction ## gpio_direction_output 设置相应gpio为输出方向
while true;
do
sudo echo 0 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出低电平
# cmddemo_gpio.sh GPIO3_B5 0
sudo echo 0 > /sys/class/gpio/gpio177/value ## gpio_set_value 设置输出低电平
sudo echo 0 > /sys/class/gpio/gpio178/value ## gpio_set_value 设置输出低电平
sudo echo 1 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出高电平
# cmddemo_gpio.sh GPIO3_B5 1
sleep 5
sudo echo 0 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出低电平
sudo echo 1 > /sys/class/gpio/gpio177/value ## gpio_set_value 设置输出低电平
sleep 5
sudo echo 0 > /sys/class/gpio/gpio177/value ## gpio_set_value 设置输出低电平
sudo echo 1 > /sys/class/gpio/gpio178/value ## gpio_set_value 设置输出低电平
sleep 0.5
sudo echo 0 > /sys/class/gpio/gpio178/value ## gpio_set_value 设置输出低电平
sleep 0.5
sudo echo 1 > /sys/class/gpio/gpio178/value ## gpio_set_value 设置输出低电平
sleep 0.5
done
脚本解释
- 循环控制 :使用
while true实现无限循环。
- GPIO控制 :使用echo 0 > /sys/class/gpio/gpiol78/value`和 echo 1 > /sys/class/gpio/gpiol78/value 脚本控制GPIO引脚的高低电平驱动程序。
- 延时 :使用
sleep命令实现延时效果。
- 某一引脚在使用前,用if(if [ -e "$filename" ] )判断是否有引脚资源,无则向gpio管理器申请导出该引脚资源( echo 176 > /sys/class/gpio/export )/
脚本运行
权限设置
chmod u+x rgb1.sh
运行脚本
sudo sh rgb1.sh

sudo echo 1 > /sys/class/gpio/gpio178/value ## gpio_set_value ▒▒▒▒▒▒▒͵▒ƽ
sleep 0.5
donenano@EASY-EAI-NANO-TB:~$ sudo sh rgb1.sh
alread exported gpiol76!
alread exported gpiol77!
alread exported gpiol78!
灯正常闪!
运行结果
- 灯的闪烁模式 :
- 红灯亮5秒
- 绿灯亮5秒
- 黄灯快速闪烁三次(每次0.5秒)
项目总结
成果展示
- 灯正常闪烁 :达到了预期的效果,红、绿、黄灯按照预定的模式闪烁。
优点
- 简洁方便 :脚本编写简单,逻辑清晰。
- 易于调试 :修改和调试方便,适合初学者学习。
- 扩展性强:可轻松添加更多控制逻辑
下一步计划
- 扩展功能 :可以尝试增加更多的控制逻辑,如添加按钮控制灯的状态。
- 优化性能 :优化脚本性能,减少资源消耗。
- 添加更多交互模式及log
红绿灯项目完成。