2015年10月3日土曜日

Raspberry Pi 2 4足歩行ロボットを作ってみよう(その3)

さて、ロボットにRaspberry Pi 2 Model Bとブレッドボードを載せ、
サーボモータとの配線を完了する。

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 件のコメント :

コメントを投稿