2015年10月3日土曜日

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

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

Raspberry Pi用の電源はスマートフォンの充電器(5V 2A)からとり、
サーボモータ用には別途用意する。
(本当は、ラズパイの電源もモバイルバッテリー等からとりたいけど、それまで
載せたら、脚が崩壊する)
当初単3電池4本でやってみたが、重過ぎで、ブラケット部の歪みが激しい。
そこで、単4電池にしてみたところ、何とか姿勢を維持できるようになった。



サーボモータを制御する為のシェルスクリプトを適当に作る。
兎にも角にも、動かしたいので、スクリプトの体裁は考えない。

  1. #!/bin/bash
  2.  
  3. hservo=(0 2 4 6)
  4. vservo=(1 3 5 7)
  5.  
  6. function home(){
  7. for i in ${hservo[@]};do
  8. echo $i=50% > /dev/servoblaster
  9. done
  10. echo 0=55% > /dev/servoblaster
  11. echo 4=45% > /dev/servoblaster
  12. for i in ${vservo[@]};do
  13. echo $i=50% > /dev/servoblaster
  14. done
  15.  
  16. echo 7=45% > /dev/servoblaster
  17. }
  18.  
  19. function star(){
  20. echo 0=65% > /dev/servoblaster
  21. echo 2=40% > /dev/servoblaster
  22. echo 4=35% > /dev/servoblaster
  23. echo 6=60% > /dev/servoblaster
  24. sleep 0.1
  25.  
  26. echo 1=30% > /dev/servoblaster
  27. echo 3=70% > /dev/servoblaster
  28. echo 5=70% > /dev/servoblaster
  29. echo 7=30% > /dev/servoblaster
  30.  
  31. sleep 0.5
  32.  
  33. echo 1=70% > /dev/servoblaster
  34. echo 3=30% > /dev/servoblaster
  35. echo 5=30% > /dev/servoblaster
  36. echo 7=70% > /dev/servoblaster
  37.  
  38. sleep 0.5
  39.  
  40. echo 1=30% > /dev/servoblaster
  41. echo 3=70% > /dev/servoblaster
  42. echo 5=70% > /dev/servoblaster
  43. echo 7=30% > /dev/servoblaster
  44. }
  45.  
  46. function first(){
  47. echo 1=70% > /dev/servoblaster
  48. echo 7=60% > /dev/servoblaster
  49.  
  50. sleep 0.2
  51.  
  52. echo 0=65% > /dev/servoblaster
  53. echo 6=40% > /dev/servoblaster
  54. echo 2=40% > /dev/servoblaster
  55. echo 4=55% > /dev/servoblaster
  56.  
  57. sleep 0.1
  58.  
  59. echo 1=30% > /dev/servoblaster
  60. echo 7=30% > /dev/servoblaster
  61. }
  62.  
  63. function second(){
  64. echo 5=30% > /dev/servoblaster
  65. echo 3=30% > /dev/servoblaster
  66.  
  67. sleep 0.2
  68.  
  69. echo 2=60% > /dev/servoblaster
  70. echo 4=35% > /dev/servoblaster
  71. echo 0=45% > /dev/servoblaster
  72. echo 6=60% > /dev/servoblaster
  73.  
  74. sleep 0.1
  75.  
  76. echo 5=70% > /dev/servoblaster
  77. echo 3=70% > /dev/servoblaster
  78. }
  79.  
  80. home
  81. sleep 0.5
  82. star
  83. sleep 0.5
  84.  
  85. for((i = 0; i < 5; i++));do
  86. first
  87. sleep 0.5
  88. second
  89. sleep 0.5
  90. done
  91.  
  92. sleep 1
  93. star

じゃあ、動かしてみよう。
デスクトップPCからSSHでRaspberry Piへログインし、先ずはsudoでServoBlasterを起動。
シェルスクリプトを動かす。


まあ、真っ直ぐ進まないのはご愛嬌。
何せ手作り故、脚部の加工精度なんて出てない。多少は補正を入れてあるけど、適当なので。

それでも、初めて自作したロボットが前進したので大満足!!

今後は、それっぽいモーションを少しずつ作って行きたい。

0 件のコメント :

コメントを投稿