イノッチの鉄道模型ブログ

日常生活の中のトピックスを気ままに書きます。鉄道模型製作や畑作業が中心です。
これまで製作した鉄道模型作品は、ホームページ「イノッチの鉄道模型」inoyoshio.jimdo.comに載せていますので、こちらもよかったらみてください。

Arduinoで自動往復・ポイント切替運転

先日の作品展に出したジオラマに搭載した Arduinoの回路図とスケッチについて整理します。作品展搬入の直前にポイント付近で脱線し 焦りましたが、返却後の検討結果で、低速で通過すればジオラマ上でもスケッチ通りの走行ができました。



P1090052
(動画は既掲載)
運転の具体的な動きを下記チャートにしました。

●走行ルート ;中間からスタートしてb方向に向かい(正走)、2回往復する。
●終端停止;終端で5秒間停止する。
●速度制御;2段階減速したのち停止する。1段階低速発進ののち定速になる。
●検出点の役目;3か所の終端付近に検出点(リードスイッチ)をそれぞれ設け、検出後速度制御に入る。折り返し後に再び通過する検出点は無視される(最初の通過時の検出が支配)
●ポイント切替;リードスイッチRSa検出の支配下で「直進に切替」の指示を出す。
       リードスイッチRSc検出の支配下で「分岐に切替」の指示を出す。
●運転開始終了;手動によるON/OFF操作で行う。操作するタイミングは終端ではなく、検出点の支配が及ばない中間の区間で行う。OFF操作をしないと、往復運転が繰り返される。


次に、回路図を載せます。

●モータ制御;ドライバICのTA7291Pを使用。
●ポイント切替制御;ドライバICのTA7291Pを使用。
●折り返し検出;リードスイッチを使用。
●運転開始終了;テスト段階からずっと フィーダー線の片側をON/OFFして運転開始終了をしていました。回路図には表していません。


(写真は、強曲線(R117のS字)でも走行可能か確認した時のもの→OKでした)


最後に、Arduinoのスケッチについて検討しました。 まだまだ未熟ですが、”初心者の設計力” としてみていただければ、と思います。


《構成》シンプル イズ ベストを貫き、基本的な「if関数」と「delay関数」で構成しています。リードスイッチで検出して電位が上がったときにif条件を実行する方法です。また、再び同じリードスイッチが入っても無視するように、始めに成立しているif条件が持続するようderay時間で引っ張っています。


《速度の増減》今は階段式に増減しています。しかし oomoriさん、親爺Iいさんからアドバイスされた「for関数」で連続制御するほうがスマートで自然です(前述の動画)。が、メカ的な原因で急発進などの不安定がでて、階段式の方が速度と時間が確実なので、展示会にも出すこともあったので、今は階段式にしています。実際の階段時間設定はジオラマに合わせて調整しました。


《ポイント切替》サーボモータで切り替えるのが一番確実安全と思います。が、費用、時間、労力の関係で、スケッチ内で制御することにしました。oomoriさんからの推薦図書「Arduinoで楽しむ鉄道模型」(技術評論社)2,580円 にあった記事(12v、200~300msの矩形波でポイント切替する方法)を参考に実験したところ、良好でした。信頼性など不明ですが、確実に切替できて今のところOKです。


《運転の開始終了》「駅のホームから発車して何度かの往復運転後、同じホームに帰着して終了する」が理想ですが、今の私のスケッチ設計力からは ほど遠く、中間点での起点終点となりました。しかもそれを手動で行うので、スケッチにも入れてません。


(寒がりの私は、自室の机まわりをカーテンで覆い、机の下のセラミックヒーターを有効活用しています)


最後に、スケッチを載せます。


void setup(){
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
digitalWrite(10,HIGH); //正走
digitalWrite(11,LOW);
digitalWrite(12,LOW); //ポイント入力ナシ
digitalWrite(13,LOW);
}
void loop(){
int val;
val=analogRead(0); //速度
analogWrite(9,val/4);

if(digitalRead(3)==HIGH){ //RSb検出
analogWrite(9,val/6); //減速1(0.5秒間)
delay(500);
analogWrite(9,val/9); //減速2(0.5秒間)
delay(500);
digitalWrite(10,LOW); //停止5秒間
delay(5000);
digitalWrite(11,HIGH); //逆走スタート
analogWrite(9,val/6); //初速5秒間
delay(5000);
}
if(digitalRead(4)==HIGH){ //RSc検出  
analogWrite(9,val/6); //減速1(0.5秒間)
delay(500);
analogWrite(9,val/9); //減速2(0.5秒間)
delay(500);
digitalWrite(11,LOW); //停止5秒間
delay(5000);
digitalWrite(10,HIGH); //正走スタート
analogWrite(9,val/6); //初速2秒間
delay(2000);
analogWrite(9,val/4); //定速5秒間
delay(5000);
digitalWrite(12,LOW); //ポイント分岐へ
digitalWrite(13,HIGH);
delay(200);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
if(digitalRead(2)==HIGH){ //RSa検出
analogWrite(9,val/6); //減速1(0.5秒間)
delay(500);
analogWrite(9,val/9); //減速2(0.5秒間)
delay(500);
digitalWrite(11,LOW); //停止5秒間
delay(5000);
digitalWrite(10,HIGH); //正走スタート
analogWrite(9,val/6); //初速2秒間
delay(2000);
analogWrite(9,val/4); //定速5秒間
delay(5000);
digitalWrite(12,HIGH); //ポイント直進へ
digitalWrite(13,LOW);
delay(300);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
}
}


以上です。次やりたいことは、「中間点からプッシュボタンで起動し、2往復後に中間点で自動停止する」の検討です。

作品展が終わって思うこと

箕面シルバー人材センターの会員作品展(5日間)が終わりました。今回初めて車両走行を期間中実施し、今までにない経験だったので 少し整理してみます。


会場は1ヶ月前の「箕面市民展」と同じ会場です。工芸・写真・絵画・書道など計119点の応募がありました。


私のジオラマもここにあります。このジャンルはやはり私だけでした。こういう展示会で “動き物” はめずらしく、けっこう注目されてました。作品の右手にスイッチを置き、江ノ電をON/OFFしてもらうことにしました。
◆期間を通して感じたことをまとめてみます‥‥‥‥
①注目度抜群:精密なレイアウト、車両の運転、マイコン制御。この3つが絡んで話題がふくらみました。とても一般受けする内容でした。
②知名度の高い題材:鎌倉エリア(大仏、江ノ電、湘南海岸、‥)という誰でも知る場所だったので、共感を得やすいテーマでした。
③手の混んだ製作:私に声をかけてくれた ほとんどの人が「どのくらい(の期間)かかりました?」と異口同音に尋ねてました。「正月に構想し、以来10ヶ月です」と。
④文字より現物優先:作品の手前に「車両の操作説明書き」を置いてましたが、じっくり文章を読むより レイアウトをマジマジ見るという方々がほとんどでした。


(写真は既載;「イノッチ江ノ電」)
⑤反省点:
1)展示場での自動運転:見学者に運転操作を任せる場合、見終わったあとは「停止(OFF)してください」と文字で語りかけても 放置されることが多く、私が会場に入ったときにも、無人で往復運転がずっとつづいてたことがよくありました。ONしてもらったあとは、タイマーで自動停止する方法にすべきと反省しました。(今回は時間もなく、こういう工夫もできずでした)
2)ユニットのつなぎ合わせ:今回出展のジオラマは11個のユニットをつなぎ合わせています。1ユニットごとに製作できるのがメリットですが、レールのつなぎ目が7ヵ所もあり、通電不良も起きやすく、極力ジョイナーの数を減らしたいものです。今後は、フレキレールで全長ベースを作り、その後 周辺をユニット化していく構造に、と思います。


日曜日(4日目)は、箕面市長(倉田哲郎氏)が11時に来られる という情報が流れ、待つこと30分。来ました、来ました(中央の人)。私(緑のセーター)はさっそく説明要員に早変わり。左手前に、主催者のシルバーセンター所長が心配そうに静観。


ここぞとばかりに、説明しまくりました。市長(座っている)も細かく真摯に聞いてくれました。


7~8分、楽しい会話ができてよかったです。最後に、シルバーセンター所長がヨコから口をはさみ「来年のテーマは箕面市の観光名所の製作を ぜひ」とよけいな一言を入れて終幕。


この作品展には、「我が家のペット」紹介コーナーが今回企画されていて、センターからの要請もあり、愛犬 ”チョコ” を出しました。中央上です。


今は老犬ですが、数年前のこの「ツーショット」が気に入っています。右が本犬で左がぬいぐるみです。
私のジオラマ発表の場は、秋の「箕面市民展」と「シルバーセンター会員作品展」です。前者は ”芸術性”、後者は ”道楽性” というか、なんでもありです。今年も ”ジオラマ イベント” の季節が終わろうとしています‥。

Arduino自動運転で江ノ電を出展

現在開催中の作品展で、江ノ電を自動運転させるエンジンはArduinoです。全くのマイコン素人の私ですが、搬入直前の ここ1週間の追い込み検討の内容を述べます。


Arduinoで制御する内容
●走行するルート;検出点a→b→c→b→a→bの繰り返し
●ポイント切替 ;往復する都度ポイントを切替える
●速度調整   ;スタート時、1段階低速→定速へ。定速→2段階減速→停止へ。
          停止時間は5秒間


このようなテスト線路をつくりました。前述のチャートと左右が入れ替わってますが、右側が「極楽寺駅」の1番線、2番線ホームを想定。製作したジオラマを反対側(ウラ側)から見た状態です。



P1090047
動画でもわかる通り、「Bトレ江ノ電」で走行テストをするも、動きが散漫で実用にはならず、早々に断念。しかし江ノ電のツートンカラー(黄色と緑色)は捨てがたく、なんとか生かしたい一心で、スムーズな動きの台車を選んで乗せ換えようと模索しました。


(既載)この車両が 乗せ換え寸法的にピッタリだったので、”納期”も迫る中、この台車を使うことに決定。



P1090052
スタートと停止がまだまだスムーズではありませんが、走行状態はほぼ満足。ポイントの自動切替も1往復ごとにできており、1つの山を越えた感じでホッとしました。


(既載)本番で使う江ノ電のボディに乗せ替えて、”新種”の「イノッチ江ノ電」ができました。



P1090063
さっそく 製作したジオラマ上で確認。検出点a←→b間はテスト線路と同様の走行ができましたが、ポイント切替してc点の2番線ホームに入る際、後輪が脱輪してしまう状態が続き、解決できず 結局時間切れで2番線ホームへの入線を断念! 「ポイント切替ナシで検出点a←→b間のみの往復運転」で出展することになりました。さっそく会場でセッティング後、走行テストして この動画を撮りました。
次回はArduinoに組み込んだスケッチと回路について述べます。