【社員実践】ソレノイドで電子工作

2015年9月に当時タカハ機工の入社1・2年目チームで「たこやきPON☆PON」なるソレノイドのデモ機を作りました! 製作過程やプログラミングコードなどを紹介します。

製作のきっかけ

タカハ機工は、大阪で開催される展示会に出展することがきまっており、新製品のデモ機を展示したいと思っていました。展示会まで1ヵ月を切っても具体的な構想もなく、立ち上がったのが入社1・2年目チーム☆みんなでアイディアを出し合い決定したのが、たこ焼きPONPONだったのです。なぜたこやきなのか。そう、大阪だからです。ぱっと見てわかりやすくおもしろいとこが評価ポイントですね。

設計

たこ焼きを飛ばしたいのに、使用する新製品はプルソレノイド。引くことしかできない!! 改造してプッシュ式のソレノイドにしようか!と試作もしました。最終的には、ソレノイドで直接押すのではなく、押す機構(リンク)を作りました。シーソーのような原理です。

ON :プランジャーが吸引され、リンクが持ち上がりたこ焼きがはねる
OFF:たこ焼きの重さでプランジャーを定位置にセット
※上図ではたこやきとネジが離れていますが、ネジの上にたこ焼きが乗ります

ハード製作

金型課の工作機械を駆使してつくっていきます。かっこいいっしょ!

プログラミング

制御はArduinoを使用しました。Arduino専用ソフトを持っていない方はインストールしましょう! では、たこ焼きポンポンのプログラミングを部分的に説明していきます!プログラミングの完成版は長くなるのでこちらの「プログラミングコード」をご覧ください。まずは以下の表の内容をおさえておきましょう。

digitalWrite(sol1,HIGH) ソレノイド1に電流が流れる
digitalWrite(sol2,LOW) ソレノイド2に電流が流れない
delay(dh) 指定した時間だけとまる(例)dh=1000 1秒停止
for(i=0;i<☆;i++) ☆の回数だけ反復

ピンとソレノイドをつなげます。
初めに名前を付けないとあとのプログラミングができません。
int sol0=0;  ソレノイド0は0番のピンにつながりました。

同様にすべてのソレノイドをつなげます
int sol1=1;
int sol2=2;
int sol3=3;



int sol17=17;


たこ焼きポンポンで使用した6パターンのプログラミングを紹介します。
1. 全部動く
2. 左から右へ1列ずつ動く
3. 右から左へ1列ずつ動く
4. ランダムに動く
5. 外から内へ渦巻きに動く
6. 内から外へ渦巻きに動く

1. 全部(all)

全部のソレノイドを1回だけ動かします。
void allHIGH() {
  digitalWrite(sol0,HIGH);
  digitalWrite(sol1,HIGH);
 ・
 ・
  digitalWrite(sol16,HIGH);
  digitalWrite(sol17,HIGH);
}
これだけでは電流が流れっぱなしなので、次に、電気を切るプログラムを入れます。
void allLOW() {
  digitalWrite(sol0,LOW);
  digitalWrite(sol1,LOW);
 ・
 ・
  digitalWrite(sol16,LOW);
  digitalWrite(sol17,LOW);
}
これで、1回だけソレノイドが動きます!

2. 左から右(LR)

この3つを動かします。
digitalWrite(sol0,HIGH);
   digitalWrite(sol1,HIGH);
  digitalWrite(sol2,HIGH);
  delay(dh);
  digitalWrite(sol0,LOW);
   digitalWrite(sol1,LOW);
  digitalWrite(sol2,LOW);
  delay(dl);   
これを2回くりかえしたいので、先頭にfor文を1行加えます
for(i=0;i<2;i++){

以下のプログラムで左から右へ縦1列ずつ動作します。

void LR() {
  dh=100;
  dl=dh*4;

   for(i=0;i<2;i++){
  digitalWrite(sol0,HIGH);
   digitalWrite(sol1,HIGH);
  digitalWrite(sol2,HIGH);
  delay(dh);
  digitalWrite(sol0,LOW);
  digitalWrite(sol1,LOW);
  digitalWrite(sol2,LOW);
  delay(dl);  }
 ・
 ・

3. 右から左(RL)

今度は、右列のソレノイドから2のパターンを入れていきます。
void RL() {
  dh=100;
  dl=dh*4;  

for(i=0;i<2;i++){
  digitalWrite(sol15,HIGH);
   digitalWrite(sol16,HIGH);
  digitalWrite(sol17,HIGH);
  delay(dh);
  digitalWrite(sol15,LOW);
  digitalWrite(sol16,LOW);
  digitalWrite(sol17,LOW);
  delay(dl);  }
 ・
 ・

4. ランダム(wave)

動かしたいソレノイドだけこのように入力していきます。
digitalWrite(sol0,HIGH);
  digitalWrite(sol6,HIGH);
  digitalWrite(sol7,HIGH);
  digitalWrite(sol14,HIGH);
  digitalWrite(sol15,HIGH);
  delay(d);
  digitalWrite(sol0,LOW);
  digitalWrite(sol6,LOW);
  digitalWrite(sol7,LOW);
  digitalWrite(sol14,LOW);
  digitalWrite(sol15,LOW);

5. 外から内(spin)

外側から中心に向かって追いかけっこをする動きです。
d=100;
  digitalWrite(sol0,HIGH);
  delay(d);
  digitalWrite(sol0,LOW);
  digitalWrite(sol3,HIGH);
  delay(d);
  digitalWrite(sol3,LOW);
  digitalWrite(sol7,HIGH);
  delay(d);
  digitalWrite(sol7,LOW);
  digitalWrite(sol11,HIGH);
  delay(d);
  digitalWrite(sol11,LOW);

中央のソレノイドまで入力します。

6. 内から外(spinN)

今度は中心から外へ動いていきます 。
d=100;
  digitalWrite(sol0,HIGH);
  delay(d);
  digitalWrite(sol0,LOW);
  digitalWrite(sol3,HIGH);
  delay(d);
  digitalWrite(sol3,LOW);
  digitalWrite(sol7,HIGH);
  delay(d);

回路設計

ソレノイドを動かすための回路を作っていきます。今回はCADを使って設計していますが、CADじゃなくても”Fritzing“などもいいみたいです。 こちらが回路図です。

ソレノイド18個使っているので、この回路が18個並んでます。回路図通りに部品をつなぎます。

はんだづけをして完成です。使った材料は全て秋月電子で購入しました。トランジスタは2SD880を使用しました。
電子工作、楽しみましょう!

あわせて読みたい

2件のフィードバック

  1. 2020年2月6日

    […] 明は「ソレノイドで電子工作」で紹介しています。 […]

コメントを残す

メールアドレスが公開されることはありません。