这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【飞凌i.MX9352开发板】+机械臂游戏2游戏操纵杆控制四自由度机械臂

共3条 1/1 1 跳转至

【飞凌i.MX9352开发板】+机械臂游戏2游戏操纵杆控制四自由度机械臂

高工
2025-08-22 17:01:05     打赏

ADC测量,并控制LED灯亮灭 源代码:

#!/bin/bash
 # 定义SPI通信参数
 CHANNEL=0 CLK_SPEED=1000000 
# 定义LED控制脚 LED_PIN=18 
# 读取ADC数值
 adc_value=$(gpio -x mcp3008:100:0 aread $CHANNEL)
 # 将ADC数值转换为电压值
 voltage=$(echo "scale=2;$adc_value*3.3/1024" | bc)
 # 判断ADC测量值,并控制LED灯亮灭
 if (( $(echo "$voltage > 2.5" | bc -l) )); then gpio -g write $LED_PIN 1 
# 点亮LED 
else gpio -g write $LED_PIN 0
 # 关闭LED 
fi

if (( $(echo "$adc_value < 500" | bc -l) )); then  
       echo 1 > /sys/class/leds/led1/brightness 
else
       echo 0 > /sys/class/leds/led1/brightness
fi

控制四自由度机械臂 源代码:

#!/bin/bash
port="/dev/ttyUSB2"
baudrate="9600"
echo none > /sys/class/leds/led1/trigger
while true
do
adc_value=$(cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw)
echo "ADC value: $adc_value"
if (( $(echo "$adc_value < 500" | bc -l) )); then
 echo "A" > "$port"
      # echo 1 > /sys/class/leds/led1/brightness
elif(( $(echo "$adc_value > 3900" | bc -l) )); then
       echo "b" > "$port"
       #echo 0 > /sys/class/leds/led1/brightness
fi

adc_value2=$(cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw)
echo "ADC value2: $adc_value2"
if (( $(echo "$adc_value2 < 500" | bc -l) )); then
 echo "C" > "$port"
      # echo 1 > /sys/class/leds/led1/brightness
elif(( $(echo "$adc_value2 > 3900" | bc -l) )); then
       echo "d" > "$port"
       #echo 0 > /sys/class/leds/led1/brightness
fi

adc_value3=$(cat /sys/bus/iio/devices/iio\:device0/in_voltage2_raw)
echo "ADC value3: $adc_value3"
if (( $(echo "$adc_value3 < 500" | bc -l) )); then
 echo "e" > "$port"
      # echo 1 > /sys/class/leds/led1/brightness
elif(( $(echo "$adc_value3 > 3900" | bc -l) )); then
       echo "f" > "$port"
       #echo 0 > /sys/class/leds/led1/brightness
fi

adc_value4=$(cat /sys/bus/iio/devices/iio\:device0/in_voltage3_raw)
echo "ADC value4: $adc_value4"
if (( $(echo "$adc_value4 < 500" | bc -l) )); then
 echo "g" > "$port"
      # echo 1 > /sys/class/leds/led1/brightness
elif(( $(echo "$adc_value4 > 3900" | bc -l) )); then
       echo "h" > "$port"
       #echo 0 > /sys/class/leds/led1/brightness
fi

sleep 0.018
done

循环读取ADC测量值并发送到串口 源代码:

#!/bin/bash

# 设置串口号和波特率
port="/dev/ttyUSB2"
baudrate="9600"

# 循环读取ADC测量值并发送
while true
do
    # 读取ADC测量值
    adc_value=$(cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw)

    # 将ADC测量值转换为字符串
    adc_string=$(echo "$adc_value" | tr -d '\n')

# 发送ADC测量值到串口
    echo "$adc_string" > "$port"

    # 等待1秒钟
    sleep 1
done




关键词: 飞凌     i.MX9352     机械     游戏     操纵杆    

专家
2025-08-22 20:29:32     打赏
2楼

感谢分享


专家
2025-08-22 20:30:37     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]