google-site-verification: google3bd66dd162ef54c7.html

サーボモーターを動かしてみた

 とりあえず作りたい物が無くなってしまった、というか作りたい物はいろいろあるのですが、やっている時間が取れません。

 実はPlot Clockを作ってみたいと思っているのですが、判らないことだらけです。

 Plot Clockについては今年の二月頃に、いしかわきょーすけさんのWebで知って、すごく面白いと思いました。

 ということで、次のステージに進むためにサーボモーターを買ってみました。

 Amazoneで2個セットで990円というのがあったので早速購入。

▼Tower Pro SG90
サーボモーター9g SG90
 取説も何も無し。本体とホーンなどがビニール袋に2台分無造作に入っています。

 私、ラジコンやったことが無いのでサーボを買ったのは初めて。もちろん触ったこともありません。このサーボのインターフェイスはデジタル。重さが9gなので詳しい人は9gサーボと言うようです。

 実は安いのでアマゾンから二つ買ったのでサーボが4台あります。私の環境でこれをテストするには、ブレッドボード経由でArduino UNOに接続するしかないです。ちょっと面倒くさいなーと思っていたら、いいものがありました。それはLCD key padシールドです。

▼LCD Key padシールドでサーボモーターの動作テスト
LCD Key Padでサーボモーターを接続
 インターフェイスは何かの時に使えるだろう、と思って買っておいたLCD Key pad Sieldeです。秋月で買ったと思うのですが、DXだったかも知れません。(追記:その後調べてみると、DXで売っているlcd keypad shieldだったようです。)

 ミニマムの能力のサーボと言っても、私みたいな初心者から見ると、動作はキビキビしているしトルクも結構あります。
 
 なんでこんな場違いなシールドが便利に使えちゃうかというと、

▼サーボのコネクタがそのまま差せますw
本来はセンサーを接続するコネクタなんでしょうが
 このコネクタはA1からA5までのアナログ入力に信号を入力するためのもの。センサーなどへ電源を供給するためにGND、+5V、Sがセットになって並んでいます。でもこれ何とサーボの3Pinコネクタのピンアサインと一致しています。

 ということで電源が供給できるので、制御信号を出力することが出来ればサーボが動くはずです。

 ということで、setupの中でサーボのピンを定義。
 myservo1.attach(15); // servo1=pin 15

 loopの中で呼び出せばサーボがその位置に動いてめでたく動作確認成功です。
 myservo1.write(pos);
 ちなみに、デジタルの14~19ピンがA0~A5に対応しています。また、A0(デジタルの14ピン)はLCD Key pad シールドがキーを読むために使っているので、サーボを動かすのには使えません。というかコネクタのピンが出ていません。

 動作確認に使ったスケッチは下記です。
/* サーボモーターテスト
  接続には LCD key pad シールドを使う
*/

#include <Servo.h> 
#include <LiquidCrystal.h>

//LiquidCrystal lcd(12, 11, 5, 4, 3, 2);   // when normal LCD
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
 
Servo myservo1;  // create servo object  
Servo myservo2; 
Servo myservo3; 
Servo myservo4;
 
int pos= 0;    // variable to store the servo position 
 
void setup() 
{ 
  lcd.begin(16, 2);
  myservo1.attach(15);  // servo1=pin 15 
  myservo2.attach(16);  // servo2=pin 16 
  myservo3.attach(17);  // servo3=pin 17   
  myservo4.attach(18);  // servo4=pin 18   
} 
void loop() 
{ 
  for(pos = 15; pos < 165; pos += 1)  // from 15 to 165 degrees 
  {                                   
    lcd.setCursor(0,0);
    lcd.print(pos);
    lcd.print("  ");
    myservo1.write(pos);              
    myservo2.write(pos);            
    myservo3.write(pos);        
    myservo4.write(pos);    
    delay(10);                       // waits 10ms for the servo to reach the position 
  } 
  for(pos = 165; pos>=15; pos-= 1)    // 165 degrees to 15 degrees 
  {                                
    lcd.setCursor(0,0);
    lcd.print(pos);
    lcd.print("  ");
    myservo1.write(pos);  
    myservo2.write(pos);  
    myservo3.write(pos);   
    myservo4.write(pos);   
    delay(10);                       // waits 10ms for the servo to reach the position 
  } 
} 
 4チャンネル同時に駆動しているので、電源が弱いとCPUにリセットがかかるかも知れません。とにかくこんなことも出来るということで参考になったら幸いです。

 で、PlotClockを作るために少し前進しました、回路とソフトは大丈夫みたいです。でも機械加工をやらないとPlotClockは完成しません。限られた道具とスキルしか持ち合わせていないのに作れるでしょうか。
関連記事

コメントの投稿

管理者にだけ表示を許可する

No title

ラジオペンチさん、こんばんは。

暑いですね。 暑中見舞いがてら。

PlotClockって知りませんでした。
YouTubeで見てみましたが、面白そうですね。

「やりたい事は沢山あれど、技量がついて行けない」 が当方の実情です。
でも、まだまだ、色々、チャレンジしたいです。 「意欲」だけは。。。

Takaさん、おはようございます

早速のコメントありがとうございます。

暑いですね、そちらはお孫さん対応は一段落されたのでしょうか。

それと、Takaさんの技量はすごい、といつも感心しています。いろいろ作ってもらって、ブログで楽しませて下さい。

No title

Plot Clockを見て昔どこかでこのような物を見たような気がしたので、我が家のガラクタ箱をひっくり返した。
製図道具のKENT SUPER PANTOGRAPH Tokyo U.C.D Osaka
と書いてありました。 ケント 高級伸縮自在器 5倍と説明書がついていた。
原画をなぞると拡大図面がかける製図道具です。一度も使った事がありませんが。Plot Clockを見て思うに、これに筆を持たせて筆圧も変える方が書道みたいな字になったりして。
20年くらい前まではプロッターをよく使っていた。ご存知X、Yの並行移動で図面を描くものですが最近はプリンターに代わり、ほとんど見られなくなった。
ラジオペンチさんの挑戦が楽しみです。

岡目八目さん、今晩は

そうですね。製図道具のカタログに、パンタグラフ式の拡大機なんて見た記憶があります。ケントの製図道具は定番でしたよね。私も捨てられないで持っています。

で、PlotClockはすでに部分的に出来ていて、この記事書いているキーボードの横でぐしゃぐしゃと勝手に動いてます。
でも記事にするにはもう少し時間が必要なので、気長にお待ち下さい。
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード