| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #!/bin/sh
- echo "=== CAR CONTROL over COMMAND LINE! ==="
- echo "CAR: car_control.sh"
- echo "CAR: car_control.sh constant"
- echo "CAR: car_control.sh constant low_speed"
- echo "CAR: car_control.sh low_speed"
- echo "CAR: w: forward "
- echo "CAR: d: reverse"
- echo "CAR: a: turn wheel left"
- echo "CAR: d: turn wheel right"
- echo "CAR: q: forward left"
- echo "CAR: e: forward right"
- echo "CAR: z: reverse left"
- echo "CAR: c: reverse right"
- echo "CAR: x: all stop"
- echo "CAR: h: headlight on/off"
- echo "CAR: j: irled on/off"
- echo "CAR: use 1 to quit ASAP!"
- echo -e ""
- echo "Ready!"
- headlight_state=false
- irled_state=false
- function headlight {
- if [ "$headlight_state" = false ]; then
- echo -ne "\xaa\x55\x43\x04\x1e\x01\x01\x65" > /dev/ttyUSB0
- headlight_state=true
- else
- echo -ne "\xaa\x55\x43\x04\x1e\x02\x01\x66" > /dev/ttyUSB0
- headlight_state=false
- fi
- }
- function irled {
- if [ "$irled_state" = false ]; then
- cmd irled on
- irled_state=true
- else
- cmd irled off
- irled_state=false
- fi
- }
- trap control_c SIGINT
- control_c()
- {
- echo -ne "\xaa\x55\x43\x06\x29\x80\x80\x00\x02\x71" > /dev/ttyUSB0
- echo "control-c KILL"
- pkill -9 -f car_control.sh
- }
- #idle background loop
- while true; do
- echo -ne "\xaa\x55\x43\x06\x29\x80\x80\x00\x02\x71" > /dev/ttyUSB0
- #fw sends 0.2
- sleep 0.2
- done &
- while true; do
- if [ "$1" == "constant" ]; then
- read -s -n1 -t 0.05 input
- else
- read -rsn1 input
- fi
- if [ "$input" = "w" ]; then
- #forward
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x80\xca\x00\x02\xbb" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x80\xe3\x00\x02\xd4" > /dev/ttyUSB0
- fi
- elif [ "$input" = "s" ]; then
- #reverse
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x80\x3b\x00\x02\x2c" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x80\x36\x00\x02\x27" > /dev/ttyUSB0
- fi
- elif [ "$input" = "a" ]; then
- #left
- echo -ne "\xaa\x55\x43\x06\x29\x76\x81\x00\x02\x68" > /dev/ttyUSB0
- elif [ "$input" = "d" ]; then
- #right
- echo -ne "\xaa\x55\x43\x06\x29\x8a\x81\x00\x02\x7c" > /dev/ttyUSB0
- elif [ "$input" = "q" ]; then
- #forward left
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x76\xca\x00\x02\xb1" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x76\xe3\x00\x02\xca" > /dev/ttyUSB0
- fi
- elif [ "$input" = "e" ]; then
- #forward right
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x8a\xca\x00\x02\xc5" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x8a\xe3\x00\x02\xde" > /dev/ttyUSB0
- fi
- elif [ "$input" = "z" ]; then
- #reverse left
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x76\x3b\x00\x02\x22" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x76\x36\x00\x02\x1d" > /dev/ttyUSB0
- fi
- elif [ "$input" = "c" ]; then
- #reverse right
- if [ "$1" == "low_speed" ] || [ "$2" == "low_speed" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x8a\x3b\x00\x02\x36" > /dev/ttyUSB0
- else
- echo -ne "\xaa\x55\x43\x06\x29\x8a\x36\x00\x02\x31" > /dev/ttyUSB0
- fi
- elif [ "$input" = "c" ]; then
- echo -ne "\xaa\x55\x43\x06\x29\x80\x80\x00\x02\x71" > /dev/ttyUSB0
- elif [ "$input" = "h" ]; then
- headlight
- elif [ "$input" = "j" ]; then
- irled
- elif [ "$input" = "1" ]; then
- #exit
- echo -ne "\xaa\x55\x43\x06\x29\x80\x80\x00\x02\x71" > /dev/ttyUSB0
- pkill -9 -f car_control.sh
- break
- fi
- done
|