サーボモータとの配線を完了する。
Raspberry Pi用の電源はスマートフォンの充電器(5V 2A)からとり、
サーボモータ用には別途用意する。
(本当は、ラズパイの電源もモバイルバッテリー等からとりたいけど、それまで
載せたら、脚が崩壊する)
当初単3電池4本でやってみたが、重過ぎで、ブラケット部の歪みが激しい。
そこで、単4電池にしてみたところ、何とか姿勢を維持できるようになった。
サーボモータを制御する為のシェルスクリプトを適当に作る。
兎にも角にも、動かしたいので、スクリプトの体裁は考えない。
#!/bin/bash
hservo=(0 2 4 6)
vservo=(1 3 5 7)
function home(){
for i in ${hservo[@]};do
echo $i=50% > /dev/servoblaster
done
echo 0=55% > /dev/servoblaster
echo 4=45% > /dev/servoblaster
for i in ${vservo[@]};do
echo $i=50% > /dev/servoblaster
done
echo 7=45% > /dev/servoblaster
}
function star(){
echo 0=65% > /dev/servoblaster
echo 2=40% > /dev/servoblaster
echo 4=35% > /dev/servoblaster
echo 6=60% > /dev/servoblaster
sleep 0.1
echo 1=30% > /dev/servoblaster
echo 3=70% > /dev/servoblaster
echo 5=70% > /dev/servoblaster
echo 7=30% > /dev/servoblaster
sleep 0.5
echo 1=70% > /dev/servoblaster
echo 3=30% > /dev/servoblaster
echo 5=30% > /dev/servoblaster
echo 7=70% > /dev/servoblaster
sleep 0.5
echo 1=30% > /dev/servoblaster
echo 3=70% > /dev/servoblaster
echo 5=70% > /dev/servoblaster
echo 7=30% > /dev/servoblaster
}
function first(){
echo 1=70% > /dev/servoblaster
echo 7=60% > /dev/servoblaster
sleep 0.2
echo 0=65% > /dev/servoblaster
echo 6=40% > /dev/servoblaster
echo 2=40% > /dev/servoblaster
echo 4=55% > /dev/servoblaster
sleep 0.1
echo 1=30% > /dev/servoblaster
echo 7=30% > /dev/servoblaster
}
function second(){
echo 5=30% > /dev/servoblaster
echo 3=30% > /dev/servoblaster
sleep 0.2
echo 2=60% > /dev/servoblaster
echo 4=35% > /dev/servoblaster
echo 0=45% > /dev/servoblaster
echo 6=60% > /dev/servoblaster
sleep 0.1
echo 5=70% > /dev/servoblaster
echo 3=70% > /dev/servoblaster
}
home
sleep 0.5
star
sleep 0.5
for((i = 0; i < 5; i++));do
first
sleep 0.5
second
sleep 0.5
done
sleep 1
star
じゃあ、動かしてみよう。
デスクトップPCからSSHでRaspberry Piへログインし、先ずはsudoでServoBlasterを起動。
シェルスクリプトを動かす。
まあ、真っ直ぐ進まないのはご愛嬌。
何せ手作り故、脚部の加工精度なんて出てない。多少は補正を入れてあるけど、適当なので。
それでも、初めて自作したロボットが前進したので大満足!!
今後は、それっぽいモーションを少しずつ作って行きたい。
0 件のコメント :
コメントを投稿