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

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

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

前回に引き続き 回路検討です。スイッチを切るのを忘れると往復運転をいつまでもつづけてしまう、という作品展での苦い経験から、
「プッシュボタンを押して発車し、数回往復したあと自動的に運転停止する」ことにこだわって、なんとか作った今のスケッチをそのまま生かして自動停止にこぎつけました。


1)PBオンでスタート
「切替スイッチ」を倒してスタートする方式から→「プッシュボタン」オン方式(リレー接点による自己保持制御)にしました。また、いきなり定速になるので、コンデンサ充電による なめらかスタートにもしました。


2)自動停止の方法
n回往復したことをカウントして停止する方法が常道と思いますが、今のスケッチをそのまま生かし、 RSc検出後の「if条件」支配下の最後にモータを停止するという方法にしました。タイミング的には上図の紫の部分(終了制御)です。
スケッチの追加としては
if(digitalRead(4)==HIGH){  ここの処置の最後に 
    ⁑
    ⁑ 
analogWrite(9,val/9); //減速2(1秒間)
delay(1000);
digitalWrite(10,LOW); //走行一旦停止
delay(1000);
digitalWrite(8,HIGH); //モータ回路OFF
delay(2000);
digitalWrite(8,LOW);
を追加しました。

回路図の変更は色塗りの部分です。初めて作ったスケッチで車両の自動運転が実現できたので、強引に追加回路で更新した次第です。実現した改良運転の動画を撮ろうとすると、ポイント付近の脱輪が再発しました。じっくり原因追及しなければと‥。
また、oomoriさんから「int変数」を使ったスケッチ構想の提案をしてもらい、Arduinoとのつきあいも、まだまだ ”2合目”あたりかな‥といった感じです。

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


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


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