0接上文【EASY EAI Nano-TB(RV1126B)开发板试用】命令行功能测试-shell脚本进行IO控制-红绿灯项目-实现开机起动
EASYEAINano-TB(RV1126B)是一款专为嵌入式AI系统设计的开发板,搭载高性能处理器,适用于多种嵌入式应用场景。

Recovery信号描述
| 信号 | 默认上下拉 | 连接方式 | 描述 |
|---|---|---|---|
| SARADC0_VIN0_KEY/RECOVERY | 上拉1.8V | 直连 | Recovery下载模式 |
SARADC0分辨率为13bit的SARADC控制器,输入电压范围为0-1.8V。 接口的信号连接如下图所示:
红绿灯板与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针 | GND |
| LEDr(红) | 13针 | GPIO5_C0 |
| LEDg(绿) | 15针 | GPIO5_C1 |
| LEDy(黄) | 37针 | GPIO5_C2 |
GPIO5_C0----gpio176 ----红绿灯板 LEDr 红
GPIO5_C1----gpio177 ----红绿灯板 LEDg 绿
GPIO5_C2----gpio178 ----红绿灯板 LEDy 黄
通过MobaXterm工具进行SSH连接。
经过之前查询可知被分配出来的IP地址分别为:
【wlan0】--IP地址:inet 192.168.1.9,子网掩码(24):255.255.255.0-
o
用户名:nano
o
密码:123456
可使用ssh登录。



EASY EAI Nano用户名:nano
EASY EAI Nano密码为:123456
登录后:
EASY EAI Nano-TB是带有基本系统 Ubuntu 22.04.5 LTS (GNU/Linux 6.1.118 aarch64)
脚本位置
/etc/init.d/S99_v.sh
#!/bin/sh
k_v=0
k_s=1
k_c=0
program=1
p_sleep=50
p_s=1
# 等待特定按键
wait_for_key() {
local target_key=$(cat /sys/bus/iio/devices/iio:device0/in_voltage0_raw)
# echo "in目标k_v $k_v ?"
# echo "in目标k_c $k_c ?"
# echo "in目标按键 $target_key "
# echo "in目标program $program "
if [ $target_key -lt 200 ]; then
if [ $k_v -eq 0 ]; then
k_c=$(( $k_c+1 ))
if [ $k_c -eq 2 ]; then
# echo "目标按键 $target_key 已按下"
k_s=0
program=$(( $program+1 ))
if [ $program -eq 2 ]; then
program=0
fi
fi
if [ $k_c -eq 3 ]; then
k_c=2
fi
else
k_v=0
k_c=0
fi
else
if [ $k_v -eq 1 ]; then
k_c=$(( $k_c+1 ))
if [ $k_c -eq 2 ]; then
# echo "目标按键 $target_key 已up"
k_s=1
fi
if [ $k_c -eq 3 ]; then
k_c=2
fi
else
k_v=1
k_c=0
fi
fi
}
# 等待rgb1
wait_rgb1_t() {
p_sleep=$(( $p_sleep-1 ))
case $k_s in
1)
sudo echo 0 > /sys/class/gpio/gpio178/value
if [ $program -eq 1 ]; then
sudo echo 1 > /sys/class/gpio/gpio176/value
else
sudo echo 0 > /sys/class/gpio/gpio176/value
fi
if [ $p_sleep -eq 0 ]; then
p_sleep=50
k_s=2
fi
;;
2)
sudo echo 0 > /sys/class/gpio/gpio176/value
if [ $program -eq 1 ]; then
sudo echo 1 > /sys/class/gpio/gpio177/value
else
sudo echo 0 > /sys/class/gpio/gpio177/value
fi
if [ $p_sleep -eq 0 ]; then
p_sleep=5
k_s=3
fi
;;
3)
sudo echo 0 > /sys/class/gpio/gpio177/value
if [ $program -eq 1 ]; then
sudo echo 1 > /sys/class/gpio/gpio178/value
else
sudo echo 0 > /sys/class/gpio/gpio178/value
fi
if [ $p_sleep -eq 0 ]; then
p_sleep=5
k_s=4
fi
;;
4)
sudo echo 0 > /sys/class/gpio/gpio178/value
if [ $p_sleep -eq 0 ]; then
p_sleep=5
k_s=5
fi
;;
5)
if [ $program -eq 1 ]; then
sudo echo 1 > /sys/class/gpio/gpio178/value
else
sudo echo 0 > /sys/class/gpio/gpio178/value
fi
if [ $p_sleep -eq 0 ]; then
p_sleep=50
k_s=1
fi
;;
esac
}
filename="gpio176"
cd /sys/class/gpio
if [ -e "$filename" ]; then
# if test -d /sys/class/gpio/gpiol76 ;then
echo "alread exported gpiol76!"
else
sudo echo 176 > /sys/class/gpio/export
fi
filename="gpio177"
if [ -e "$filename" ]; then
#if test -d /sys/class/gpio/gpiol77 ;then
echo "alread exported gpiol77!"
else
sudo echo 177 > /sys/class/gpio/export
fi
filename="gpio178"
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为输出方向
sudo echo 0 > /sys/class/gpio/gpio176/value ## gpio_set_value 设置输出低电平
sudo echo 0 > /sys/class/gpio/gpio177/value ## gpio_set_value 设置输出低电平
sudo echo 0 > /sys/class/gpio/gpio178/value ## gpio_set_value 设置输出低电平
while true
do
{
wait_for_key
wait_rgb1_t
sleep 0.05
};
done
while true实现无限循环。sleep命令实现延时效果。chmod u+x rgb1.sh

灯正常闪!
红绿灯按钮项目完成。
更多回帖