SSブログ
Arduinoで自動運転(DCC) ブログトップ
前の10件 | 次の10件

基板を固定しました。 [Arduinoで自動運転(DCC)]

こんにちは。昨日は真夏日になった都内ですが、今日は雲が多く梅雨空です。

なかなか進まないワンプレートレイアウトですが、基盤を仮置きから本設置用のMDF板に固定しました。

まずは、2mm厚のMDF板の端切れ(確かカラーボックスの緩衝材)をこんな感じに。

P1110266.JPG

ネジで固定ように3mmの穴を開けています。
で、固定用の脚をネジ止め。

P1110267.JPG

そして、基盤を脚に固定しました。

P1110268.JPG

あとは、プログラムを変更していくだけ。
まずは、この基盤ユニットでデバックしていきます。

やりたい自動運転はこんな感じ [Arduinoで自動運転(DCC)]

こんにちは。今日の都内は梅雨の中休み・・・というか、まるで夏のような陽射しになっています。

利根川水系の貯水率は下がり続けているようで、天気予報でもしばらくはまとまった雨は望み薄の模様ですね。

最近の天気予報は当たる確率が上がったように感じますが、昨日の6月10日に「全国地震動予測地図2016年版が公表されました」ってのをTVのニュースが伝えていました。
なんでも、『地震発生確率の評価基準日を2016年1月1日に変更』とのことで、予測地図が作られたようです。

で、熊本地方は10%未満のようですね!
まぁ、よくもこんなモノを公開できるなぁ~と感心してしまいます。
きっと「予測は不可能だから、各自で身の安全を守ってね!」ってことなんでしょうね。

なので、お店の方も、耐震とかイロイロ考えないとなぁ。

さて、久々にワンプレートレイアウトを引っ張り出しました!

IMG_3288.JPG

続きを読む


基板への実装、ひとまず完了!? [Arduinoで自動運転(DCC)]

こんにちは。またまた、しばらく間が開いてしまいました。
この間に、サミットは終わるし、都内は梅雨入りすると、毎日があっという間!
まぁ、歳のせいですかねぇ。

サミットの期間中や前後は、都内の上空を大型のヘリが頻繁に飛んでいたのですが、ここ数日は静かになりました。
都内は梅雨入り後もあまり雨は降ってないのと、利根川水系の貯水率もかなり下がっているようですから夏の水不足、かなり深刻な感じ。

今、ブログを書いていたらJ-WAVEからこの曲が流れてきました。



あ、CMを歌っているのは別の歌手みたいですね。
関東以外の皆様には馴染みがないかもですが、この曲を聴くと小田急のロマンスカーのCMを連想して箱根へ行きたくなってしまいます♪

さて、作業中のarduinoを使っての自動運転ですが、ブレッドボードでの実験も終わったので、ブレッドボードのパターンの基盤へ実装がやっと完了しました。

P1110259.JPG

arduino基板、電源とコントローラー、ポイント切り替え用のシフトレジスタ、赤外線受信機とフォトリフレクタ用の抵抗です。

P1110261.JPG

こちらは、ポイント切り替え用のモータードライバ関係です。

P1110262.JPG

線路にはフォトリフレクタを設置しました。

P1110263.JPG

次はこれらを使っての確認作業になります。

Arduinoで自動運転に挑戦してみる! その2 試運転 [Arduinoで自動運転(DCC)]

こんにちは。都内は今日も気持ちのイイ五月晴れです。
窓を開けていると風が心地いいです♪

このところ車輌の購入意欲はほとんどなかったのですが、KATOの秋の製品予定にEF70がリニューアルするようなので、久々にワクワク!
ただ、最近の動力ユニットにはサウンド搭載が厳しいので、ちょっと悩みます。
あと品番に枝番が付いていないのがちょっと気がかり。
1000番台の製品化ですが、1次型や2次型といった展開は???

秋までにはいろいろと仕掛なのを片付けたいところ。

で、aruduinoを使っての自動運転の企みですが、なんとなく先が見えてきたかも!?

今回はロクハンの線路にフォトリフレクタを組み込んで、実際に車輌を動かしてみました。

P1110254.JPG

続きを読む


Arduinoでリモコンを試してみた [Arduinoで自動運転(DCC)]

こんにちは。都内は爽やかな五月晴れの青空で気持ちいいです。

事務処理も少し落ち着いたので、arduinoを使っての自動運転の企みを再開です。

今回はコレを使ってみます。

P1110251.JPG

赤外線受光素子 (VS1838B)と赤外線リモコンです。

どちらもarduinoのキットに付属のモノですが、どうやら、環境をちょっとイジらないとコンパイルエラーになりました。

まずは、下記のサイトからArduino-IRremote を DL します (右下に [Download ZIP] ボタンがあります)。

https://github.com/z3t0/Arduino-IRremote

次に、Arduino IDE のインストールフォルダにある libraries フォルダから RobotIRremote フォルダを削除します。
その後で、Arduino IDE メニューの [スケッチ | ライブラリを使用 | Add Library...] にて DL した ZIP を指定。
念のために Arduino IDE を再起動。
(ライブラリは "C:\Users\<ユーザ名>\Documents\Arduino\libraries" に格納されます)

とのことで、なんとかうまくできました。
で、これが赤外線受光素子 (VS1838B)です。

P1110248.JPG

線路に車輌を載せて試運転をしてみました。

P1110250.JPG

で、動画です。



リモコンを押すと赤色LEDを点灯させて10秒ほど走ります。
で、再度リモコンを押すと赤色LEDを点灯させて逆向きに10秒ほど走るようにしてみました。

これで、リモコンを押すことで自動運転をスタートさせることができそうです。

一応プログラムです。

#include <IRremote.h>

void analogWrite3(int op1)
{
TCCR2A=0b00100011;
TCCR2B=0b00001010;
OCR2A=150;
OCR2B=op1;
}
void analogWrite10(int op2)
{
TCCR1A=0b00100011;
TCCR1B=0b00011010;
OCR1A=150;
OCR1B=op2;
}

int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(13, OUTPUT);

pinMode(3,OUTPUT);
// pinMode(4,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
}

int fw=1;
void loop() {

// decode_results results;

if (irrecv.decode(&results)) {
Serial.println("Step000");
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value

if((results.value == 0xFF30CF) ||
(results.value == 0x9716BE3F)){ // リモコンが1か?
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second

digitalWrite(3,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);

delay(500);
if (fw==1){
Serial.println("Step001");
digitalWrite(11,HIGH);
}
else {
Serial.println("Step002");
digitalWrite(12,HIGH);
}
for (int i=1 ;i<10 ;i++ ){
if (fw==1){
Serial.println("Step003");
analogWrite3(i);
digitalWrite(10,LOW);
}
else {analogWrite10(i);
Serial.println("Step004");
digitalWrite(3,LOW);
}
delay(100);
}
delay(10000);
for (int i=10;i>1;i--){
if (fw==1){
Serial.println("Step005");
analogWrite3(i);
digitalWrite(10,LOW);
}
else {
Serial.println("Step006");
analogWrite10(i);
digitalWrite(3,LOW);
}
delay(100);
}
Serial.println("Step007");
delay(3000);
digitalWrite(3,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
fw=fw*-1;
}
}
}

なんかブラウザだと段ずらしのスペース消えてるなぁ。

Arduinoで7個のポイント切り換えてみました [Arduinoで自動運転(DCC)]

こんにちは。今日の都内は爽やかな春の陽射しの1日になりました。

しかし、熊本&大分方面の地震は収まる気配がないようで、これ以上、被害が拡がらないことを願います。
そして、被害に遭われた皆様にお見舞い申し上げます。

さて、かなり間が開いてしまいましたが、arduinoを使っての自動運転の企みですが、ようやく7個のポイント制御ができるようになりました。

P1110240.JPG

今回はポイントの切り替えにはDC12Vの電源とモータードライバにはTA8428Kをポイント毎に使っています。
また、シフトレジスタはTC74HC595を2個直列で繋いで使用しました。
まずは、ポイントを繋がずにLEDの点灯/消灯で動作確認です。



スイッチを押すとオレンジのLEDが順次7個0.5ms点灯して切り替わるようにしています。
これをループさせるのはfor文で参考例がいろいろとネットにUPされているのですが、最後に消灯するのがなかなかうまくいかず、結局、下記のプログラムのように、ゼロを2回Writeすることで逃げました。
また、LEDは確認が終わったら外す予定でしたが、設置後のメンテナンス等を考慮して残すことにしました。
LEDの点灯の有無で回路が正常なのかポイントが異常なのかを切り分けることができるかと思いまいして。
ちなみに、DC12Vが流れるので、制限抵抗には1kΩの抵抗を入れています。

で、ポイントを繋いでの動作確認です。




これで7台のポイントを切り替える回路はできましたので、あとはプログラムでなんとかなりそうです。

今回は下記のようなプログラムで制御しています。

#define P01_R 1 // No.1 ポイント 右
#define P01_L 2 // No.1 ポイント 左
#define P02_R 3 // No.2 ポイント 右
#define P02_L 4 // No.2 ポイント 左
#define P03_R 5 // No.3 ポイント 右
#define P03_L 6 // No.3 ポイント 左
#define P04_R 7 // No.4 ポイント 右
#define P04_L 8 // No.4 ポイント 左
#define P05_R 9 // No.5 ポイント 右
#define P05_L 10 // No.5 ポイント 左
#define P06_R 11 // No.6 ポイント 右
#define P06_L 12 // No.6 ポイント 左
#define P07_R 13 // No.7 ポイント 右
#define P07_L 14 // No.7 ポイント 左

int latchPin = 2; // 74HC595のST_CPへ 白
int clockPin = 7; // 74HC595のSH_CPへ 緑
int dataPin = 4; // 74HC595のDSへ 黄色

int val;
int h;
int l;
int fw=1;

void setup() {
pinMode(latchPin, OUTPUT); // 白
pinMode(clockPin, OUTPUT); // 緑
pinMode(dataPin, OUTPUT); // 黄色
pinMode(8,INPUT); // 赤 スイッチNO/OFF
}

void loop() {
if (digitalRead(8)==HIGH){
if (fw==1){
point_onoff8(P01_R);
point_onoff8(P02_R);
point_onoff8(P03_R);
point_onoff8(P04_R);
point_onoff8(P05_R);
point_onoff8(P06_R);
point_onoff8(P07_R);
point_off();
}
else {
point_onoff8(P01_L);
point_onoff8(P02_L);
point_onoff8(P03_L);
point_onoff8(P04_L);
point_onoff8(P05_L);
point_onoff8(P06_L);
point_onoff8(P07_L);
point_off();
}
delay (200);
fw=fw*-1;
delay (2000);
}
}

void point_onoff8(int point_no) {
// ポイント point_no を切り替えます
// 送信中のlatchPinはグランド(LOW)レベル
digitalWrite(latchPin, LOW);
// シフト演算を使って切り替えるポイントを選択

point_no = point_no -1; /* ポイント設定 */

val = 1<<point_no; /* 変数にポイントを設定 */

h = val>>8; /* 変数をシフト */

l = val & 0xff; /* 変数をマスク */

shiftOut(dataPin, clockPin, MSBFIRST, h);
shiftOut(dataPin, clockPin, MSBFIRST, l);
// 送信終了後latchPinをHIGHにする
digitalWrite(latchPin, HIGH);
delay(500);
}


void point_off() {
// シフトレジスタをクリア
// 送信中のlatchPinはグランド(LOW)レベル
digitalWrite(latchPin, LOW);
// シフト演算を0クリア
shiftOut(dataPin, clockPin, MSBFIRST, 0);
shiftOut(dataPin, clockPin, MSBFIRST, 0);
// 送信終了後latchPinをHIGHにする
digitalWrite(latchPin, HIGH);
// 送信終了後latchPinをHIGHにする
delay(1000);
}

以上、あとは、基盤の作り込みになります。

Arduinoでシフトレジスタを使ったLEDの点灯消灯 [Arduinoで自動運転(DCC)]

こんばんは。春分の日の都内はまずまずの春らしい1日でした。
で、日曜日夕方の定番、さざえさん。
スポンサーは会計問題で大変なようですが、さざえさんのスポンサーは続けるようですね。

さて、世間ではカシオペアの最終列車で盛り上がっているようですね。
私は・・・縁がなかったのであまり関心が。

で、arduinoで遊んでいました。

P1110125.JPG

今回は出力用のシフトレジスタ(74HC595)を使って、LEDの点灯と消灯の確認をやっていました。



まずはシフトレジスタを1個使って、8個のLEDで実験しました。
LEDを0.5秒点灯させて消灯後、1秒待ってから次のLEDを点灯させています。
作成中のレイアウトにはポイントが7台あるので、14個のデジタル出力を使うので、シフトレジスタもあと1個は直列で繋げる必要があります。
なので、次回はシフトレジスタを直列に2個繋いで実験してみます。

Arduinoで自動運転に挑戦してみる! 追加部品到着 [Arduinoで自動運転(DCC)]

こんにちは。予報では暖かくなるハズだったような・・・雲が多く風が冷たいですが花粉が凄いです!

このところ天賞堂の「はと」で遊んでいて、大きい方の線路をなんとかしたいと思ってちょっと調べたら、KATOのユニラックが充実していておまけに価格面でも有利なのを知りました!
今まではシノハラのフレキや固定曲線を使っていたんですが、これにコルク道床を使ったりするとKATOのユニトラックよりも割高でした。
調べた例です。

<KATOユニトラック>
R700程度の曲線を1周の場合
 R730⇒90°⇒1200円 なので 1周(360°)⇒4800円
直線90cm×4程度の場合
 369mm(4本)⇒1400円
 246mm(4本)⇒1000円
 227mm(2本×2)⇒1000円
 60mm(4本)⇒920円
 合計4320円

<シノハラ>
 曲線 R711(1周)⇒4800円
     道床⇒520円⇒1周(6本)⇒3120円
     合計7920円
 直線  100cm⇒720円
     道床⇒490円
     合計1210円
     4Mだと4840円

とこんな感じだと思います。
特にシノハラの固定曲線は入手も安定していない(以前、関内の直営店で何度か聞いたのだが品切れだった)のと金額的にも割高なので、今後はKATOのユニトラックを使うことになりそう。
直線については金額が大差ないのと入手も容易なので、使う場所によって使い分けていこうと思います。
ただ、KATOのユニトラックと繋ぐ場合にはコード83がいいようなので、確認してみたいと思います。

遊んでいる間に注文していた電子部品も届いていました。

P1110123.JPG

いろいろと頼んでいましたが、欲しかったのはこんな感じ。

P1110124.JPG

8ビットシフトレジスタやポリスイッチにトランジスタと1Mの抵抗です。
1Mの抵抗なんかはこんな100本もいらないんですが1袋100円なんで。。。
こちらもボチボチ再開しようと思います。

Arduinoでモータードライバを使ってポイントを切り替えてみた [Arduinoで自動運転(DCC)]

こんにちは。今日の都内は陽射しと南風で気温も上がって花粉もかなり飛散している感じですね。
外回りのお仕事の皆様は大変ですね。
しっかり防御してお仕事に励んでください。

今日は3月3日、ひな祭りなので、ウチのお雛様。

P1110086.JPG

娘は関心がないのかと思っていたら、まんざらでもないみたいでした。

さて、ぶどう1号の「はと」で遊んでしまったら、大きいのも楽しいよなぁ~って。。。
でも、こっちも進めていました。

P1110065.JPG

今回はポイントの切り換えをやってみました。



今回のポイントの切り替えができたことで、arduinoを使って、センサーで車輌の位置を確認して、モーターの起動や停止、そしてポイントの切り替えと必要最低限のことができることを確認できました。
あとは、レイアウトに設置するための実践編になってきます。
まだまだ先が長いので、他のにも手を出しながら、マイペースで進めていこうと考えています。

Arduinoでモータードライバを試してみました [Arduinoで自動運転(DCC)]

こんにちは。今日の都内は陽射しが暖かでまずまずのお天気です。
この暖かさと風の影響で花粉もかなり飛散してそうで・・・外に出るのが怖いです。

最近は電子工作にハマっていてNの新製品には全く触手が伸びないので助かってます。
KATOからは飯田線の旧国や鉄コレからは東急の8000系なんかも興味はあるのですがねぇ。
なにせ飯田線の旧国はDCCフレンドリーじゃないのが残念なところ。
そういえば、新製品の告知で飯田線の165系が企画されていますが、こちらはDCCフレンドリーなんですね!
なんだかやることがチグハグに感じてしまいます。
旧国こそDCCの楽しさを味わえると思うのですが。
伊那松島風のモジュール作って入換とかを楽しもうと思って作ったのが機関庫モジュールだったのですが、アナログ運転だとギャップやポイントなんかの配線がとんでもない数になって挫折したんですよねぇ。
あと、165系はベンチレーターが別部品となってますね。
新製品でもカニ38や50系とかはベンチレーター一体成型と一貫性ないし不思議です。

さて、電子工作のほうですが、今回はポイント切り替えでなくモーターを動かしてみました。

P1110064.JPG

回路やプログラムはネット上に各種あるのでそれを参考にしました。
で、試運転です。



今回はあっさり動いてくれました。
次回こそはポイントの切り替えをと思ってます。
前の10件 | 次の10件 Arduinoで自動運転(DCC) ブログトップ