【社員実践】ソレノイドで電子工作
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を使用しました。
電子工作、楽しみましょう!
1件の返信
[…] 明は「ソレノイドで電子工作」で紹介しています。 […]