* PCから鉄道模型を動かすまでのメモ #01
-(by [[K]], 2024.04.01)

--親ページ: [[a24_osc20241026]]
--(どうして今こんなことをやっているのかの説明もこちらに書いてあります。)

** 2024.04.01(月) #1
-トミックスの昔のパワーユニットのDC端子は、きっと単純な直流電圧を出すのだろうと(勝手に)思い込んでいたのですが、以下の記事を読んでその理解が間違っていたとわかりました。・・・気づかせてくれたこの記事に感謝です!
--https://www7a.biglobe.ne.jp/~dft/npowerunit.html
--https://plaza.rakuten.co.jp/sedori/diary/201901240000/
-うーん、こういう変動する電圧を、L298Nのモータ電源として入力していいのだろうか・・・。早速不安が・・・。
-まああれか、適当にコンデンサを入れれば安定するのかな?
** 2024.04.01(月) #2
-今はNゲージのレールも電車も建物も全部Amazonで簡単に買えるので、おもちゃ屋さんに買い行かなくて済むのでとても楽です。

** 2024.04.02(火) #1
-今日はTOMIXのDCフィーダが届きました。今のDCフィーダはパワーユニット側がかっこいいプラグになっています。私が子供のころはコードがむき出しでした(はんだメッキくらいはされていたかもしれませんが)。
-さてこのDCフィーダにL298Nからの出力を接続するには、このプラグではうまくできそうもないので、プラグを切り取らなければいけないと思っていました。そしてそれは「できるだけ無改造でやりたい」という方針からすると残念です。・・・しかし、実際に届いたものを見ると、プラグはジャンパピンを刺せそうなので、これなら無改造でも電気的に接続できそうです。

** 2024.04.04(木) #1
-昨日は電車が届きました。でもレールもパワーユニットもないので何もできません。今日はたぶんレールが届きます。でもパワーユニットがないので・・・いやちょっと待てよ、もし電車が5Vでも動くなら、 https://khfdpl.osask.jp/wiki/?OSC20240310 で使った5V電源で動かせるんじゃないかな?じゃあレールが来たら試してみるかー。
-その前に、電車を仰向けにして車輪に5Vを通電してみたら、ライトはつくけど車輪は回っていない感じでした。でもささやかな音はしていたから、もしかしたら回っていたのかな?(目視では分からなかっただけかも?)・・・よくわからないので、やっぱりレールが来てからのお楽しみにします。
** 2024.04.04(木) #2
-レールが届きました。それで、5V電源を供給してみたら、動いたり動かなかったりで、ちょっとダメでした。それで、手元にあったニッケル水素電池を直列にしてレールに供給したところ、電池5個で動きました!(マルチメータで計ったら6.8Vくらいでした)。動作チェック完了!・・・ただ今はレールが直線のみなので(S158.5-PCx4本)、端につくたびに極性を入れ替えなければならなくて、結構面倒です(笑)。明日にはカーブレールも届くはずなので、そうすれば楽になりそうです。パワーユニットは・・・1週間後くらいかなあ・・・。
-Nゲージはたぶん30年ぶりくらいなのですが、今のTOMIXのレールは収納用に重ねたときにきちんと組み合って、結構気持ちがいいです。精度高いなーと思いました。
** 2024.04.04(木) #3
-午後になって曲線レールも届きました(C243-45-PC)。ここまで揃ったら、L298Nで制御してみたくなります(パワーユニットがなくて不便なので特にそう思う)。まず、このニッケル水素電池x5で作った仮電源を安定させないとなあ・・・(今は電池ボックスも何もなくて、セロテープでくっつけているだけなのです)。

-まずはここをみて復習。 https://aisumegane.com/l298n/
//https://analogicintelligence.blogspot.com/2016/09/l298n-dual-h-bridge-motor-controller.html

** 2024.04.04(木) #4
-L298Nでモータ電源は2Vくらい電圧降下するらしいので、それに従って電池を6個にして、以下のプログラムで電車を自由に動かすことができました!
--Arduino側:
 #define IN1 9
 #define IN2 8
 #define ENA 10
 
 void setup() {
   pinMode(IN1, OUTPUT);
   pinMode(IN2, OUTPUT);
   pinMode(ENA, OUTPUT);
   Serial.begin(115200);
   analogWrite(ENA, 255);
 }
 
 void loop() {
   for (;;) {
     int c = Serial.read(), ch = 0;
     if (c < 0) { delay(3); continue; }
     if (0xf0 <= c && c <= 0xf4) {
       while (Serial.available() < 1) {}
       ch = Serial.read(); // 今はこれを使ってない.
     }
     if (c == 0xf0) { digitalWrite(IN1, LOW);  digitalWrite(IN2, LOW);  continue; } //停止(惰性回転).
     if (c == 0xf1) { digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);  continue; } //正転.
     if (c == 0xf2) { digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH); continue; } //逆転.
     if (c == 0xf3) { digitalWrite(IN1, HIGH); digitalWrite(IN2, HIGH); continue; } //停止(ブレーキ).
     if (c == 0xf4) {
       while (Serial.available() < 1) {}
       int i = Serial.read();
       analogWrite(ENA, i);
       continue;
     }
   }
 }
--HL9側:
 AWin *w = aOpenWin(256, 128, "train");
 AArduino ard[1]; AArduino_initPort(ard, 3);
 int spd = 9, i;
 char *mod = "STP";
 for (;;) {
     aGrPrintf(w, 0, 0, 0xffffff, 0x000000, "mod='%s' spd=%d", mod, spd);
     aWait(100);
     i = aInkey(w, 1);
     if ('a' <= i && i <= 'z') { i = i - ('a' - 'A'); }
     if (i == AWinKey_Esc || AWin_isClose(w)) break;
     if ('1' <= i && i <= '9') {
         spd = i - '0';
         AArduino_trainSpd(ard, 0, spd * 255 / 9);
     }
     if (i == 'S') { mod = "STP"; AArduino_trainMod(ard, 0, 0); }
     if (i == 'F') { mod = "FWD"; AArduino_trainMod(ard, 0, 1); }
     if (i == 'R') { mod = "RVS"; AArduino_trainMod(ard, 0, 2); }
     if (i == 'B') { mod = "BRK"; AArduino_trainMod(ard, 0, 3); }
 }

** 2024.04.05(金) #1 「ここまでの進捗」
-ここまでの進捗(順番は仮のものでたぶん前後します):
--[1]PCから電車の制御をする → 一部達成!
--[2]PCからポイントの制御をする
--[3]センサーを使って電車の在線確認をする
--[4]ラズパイ・ピコに乗り換える
--[5]PC画面に路線図をかいて、電車の現在位置をリアルタイムで表示させる
--[6]自動運転のための言語仕様を考える
--[7]小学生に自動運転プログラムを書いてもらう
--[8]OSC2024東京秋で展示する

--「一部達成」なのは、まだパワーユニットの出力でやっていないからです(達成したのは電池x6で作った仮電源での駆動)。
** 2024.04.05(金) #2
-パワーユニットが(予想よりもだいぶ早く)届きました!
-これでL298Nに給電してみましたが、問題なく動いています。変速もちゃんとできました。熱くなっているところかもなさそうなので、うまく行っているように思います。
-ちなみにパワーユニットならショートしたときにブレーカーが機能してくれるかなと思ったのですが、パワーユニットをL298Nを経由せずに直接レールにつないで、レールにはさみを置いてショートさせても、LEDが消えるだけで、ブレーカーは発動しませんでした。出力全開でやったらブレーカー作動するかもしれませんが、それは怖いし、実際そういう使い方はしないので、まあブレーカは気にしないことにします。
** 2024.04.05(金) #3 「オシロスコープ DSO-TC3-High を衝動買い」
-パワーユニットがかなり変動する電圧を供給していることはわかっているのですが、それがL298Nで平滑化されているのかいないのか、その辺りは全く分かりません。・・・うーん、こんな時にオシロスコープがあればなあ・・・。
-ということで、Amazonで一番売れているオシロスコープが7800円(しかもポイントで1170pt戻ってくる)だったので、衝動買いすることにしました(笑)。明日届くらしいので、届いたら波形を確認します!
--ちなみにこの機種です: https://www.amazon.co.jp/dp/B0C4Z2965P/
** 2024.04.05(金) #4 「L298Nを見つけるまでの話」
-私は最初のころ「Nゲージ Arduino」みたいなキーワードで検索していました。そうすると、「モータードライバTA8428K」「ドライバTA7291P」のどちらかを使った作例が上の方に出てきます。だから私もこれでやればいいんだなと思っていました。
-しかしAmazonでモータドライバを探すと「L298N」が一番上に出てきて、しかもこれが一番安いのです。この違いは何なのか、L298Nで代用することはできるのかできないのか、そこを知りたいと思いました。
-また検索していると以下のページを見つけました。
--https://fabcross.jp/news/2021/20210701_raspberrypipico_traincontrol.html
-これをみるとL298Nでできないということはなさそうです。ということでL298Nモジュールの5個セットを買いました。1569円でした。
-それで後は実際にやってみるだけだと思い、実際にやってみたら問題なく動作したというわけです。

-検索して見つけた L298N モジュールに関するページ:
--https://aisumegane.com/l298n/
--https://rb-station.com/blogs/article/l298n-arduino-dc-motor
--https://docs.sunfounder.com/projects/3in1-kit/ja/latest/components/component_l298n_module.html
--https://www.hwlibre.com/ja/1298n/
---モジュールの回路図: https://www.handsontec.com/dataspecs/L298N%20Motor%20Driver.pdf

** 2024.04.05(金) #5
-うーん、パワーユニットを使うのはやめて、適当なDC9V電源をAmazonで探してきた方がよさそうな気がしてきました。
-手ごろなブレーカー部品があるといいのですが、どうやって探せばいのかすらわからない・・・。

-[追記2024.04.07(日)]
--https://www.amazon.co.jp/dp/B0B7DMBS6R/ (自己回復ヒューズ) こういうのを買えばいいのかな?

** 2024.04.06(土) #1
-まずやりたいことを言います。私はこのセンサーを作りたいです。
--https://www.instructables.com/Make-a-Low-Cost-Sensored-Track-in-Minutes/
-そのためにはこのページの「Step 5: Bend the IR LED and the Photodiode」の写真にある赤外線センサーモジュールを入手しなければいけません。でもそんなのAmazonには売っていません。

-Amazonで売っている安価な赤外線センサーはこれです(LM393)。
--https://www.amazon.co.jp/dp/B088FLMJCX/ (これは5個で598円ですが、20個セットなら1457円で売っています)
-でもこれだとLED/センサーの足が短すぎるので、
--https://www.amazon.co.jp/dp/B07TLBJR5J/
//--https://www.amazon.co.jp/dp/B09NPYNSN5/
-を買ってきて付け替えればいいのかなと思案中です。
** 2024.04.06(土) #2
-センサーなら、純正のセンサーを付ければいいのではないかと最初は思いました。
--https://www.tomytec.co.jp/tomix/products/n/5558.html
--https://www.tomytec.co.jp/tomix/products/n/5567.html
--https://www.tomytec.co.jp/tomix/products/n/5559.html (これだとレイアウトの自由度はかなりそこなわれる)
-しかし純正のセンサーは高いのです。その上感度を調整することもできません。だからやっぱり、自作するのがいいと考えて上の結論になりました。
** 2024.04.06(土) #3 「オシロスコープ DSO-TC3-High の使い方」
-[2024.04.05(金) #3]に書いたオシロスコープが届きました。試しに電池の電圧でも計ってみるかーと思いましたが、とんちんかんな値しか出ません。がびーん。
-しかし、以下の二つを読んで理解したら、ちゃんと計れるようになりました!
--https://parame.mwj.jp/wp/archives/1029
--https://www.techeyesonline.com/glossary/detail/%E5%85%A5%E5%8A%9B%E3%82%AB%E3%83%83%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B0/
-(ようするにDCカップリングにすればよかったのです。これがわからなくて20分くらい悩みました。)
-(というか最初は3つあるうちのどの端子にプローブを付ければいいのかもわかりませんでした。DSOに付ければよかったのです。ところでDSOって何の略?)
--「Digital Storage Oscilloscope」の略のようです。なるほど。

-上記のマニュアルにも書いてありますが、この機種はDC5VのUSB電源で充電します。type-C端子になっていますが、たぶん他の電圧には対応していません。

-[追記2024.04.07(日)]
--あとになって、普通に日本語マニュアルが同封されていることに気づきました!・・・ちょっと土曜日は疲れていたようです・・・。

** 2024.04.07(日) #1 「TOMIX 5001 パワーユニット のDC出力」
-オシロスコープが来たので早速確認です。負荷は何もつないでいません。
-測定してみると、一番弱い出力で、0Vから19.2Vのサイン波みたいな波形が出ています(きれいなサイン波ではないけど)。うーん、やっぱりこれはDCじゃないよなあ(まあ確かに極性は入れ替わっていないんだけど)。
-ちなみに出力MAXにすると、0Vから20.4Vくらいになります。うーん、こんな仕様だから、電車をゆっくり発進させることが苦手なのかー。
-ということで [2024.04.01(月) #1] に感じた不安を自分でも確認することができました。
-明日には普通のDC9Vの電源が来る予定なので、それの波形を確認したり、L298Nに給電して電車を動かせるかどうか確認しようと思います。

** 2024.04.08(月) #1
-普通の電源でDC9VをL298Nに入れてみたけど、電車は動きません(でもPWMを切ったら動きました)。DC12VにしたらPWMしてもばっちり動きました(この電源は、15V 13.5V 12V 9V 7.5V 6V 5Vから選べるのです)。
-次の確認事項。5001パワーユニットのDC出力に、手持ちの1000uFのコンデンサを付けたら、全く波打たない、完璧なDC出力になりました!・・・おお、コンデンサはすごいなー。
-ということで、どちらでも行けるということがわかりました。
-こういうのを簡単に確認できるようになったのも、オシロスコープのおかげです。

** 2024.04.09(火) #1
-この[2024.04.06(土) #1]に書いたアマゾンの赤外線センサーについての話です。 https://www.amazon.co.jp/dp/B088FLMJCX/
--https://www.amazon.co.jp/gp/customer-reviews/R2RZWNIGK0ISYQ/
--https://www.amazon.co.jp/gp/customer-reviews/R2HJ320KJCLOGB/
-このあたりのレビューを見ると5Vで使い続けると最初は良くても短期間で壊れそうです。・・・それなら、足を長くする際に抵抗を追加すればいいかもしれません。

-[追記2024.04.10(水)]
--うーん、このあたり、難易度が高いなあ(今までの流れと比べて)。私はこれでもいいのですが、あまり大掛かりな工作はしたくないって思う人にとってはハードルになりますよね・・・。
--まあセンサーレールはなくてもいいと言えばなくてもいいです。・・・「電車をスタートさせて〇〇ミリ秒維持する、次にポイントを切り替える、次に〇〇ミリ秒後に停止する」みたいなプログラムを書けば、基本的には自動運転できるからです。センサーレールがあれば、「センサー1が反応するまで待つ」みたいな記述もできるようになるという、ただそれだけの事です。だからまあ、センサーレールがあれば、電車を長時間走らせても誤差が累積しにくくなる、みたいな効果が期待できるだけです。

** 2024.04.10(水) #1 余談: 赤外線センサー VS1838B
-[2024.04.06(土) #1]に書いたLED/センサーのセットの https://www.amazon.co.jp/dp/B07TLBJR5J/ ですが、この中には今回使わない VS1838B という赤外線センサーも入っています。これってどういうものなのかなー、どうやって使うのかなーと思っていたら、こんなすてきな記事を見つけました。
--https://motagp.hatenablog.com/entry/iot004
-なるほど、この部品一つで赤外線リモコンが送信してくるデータを受信できるようになるのかー!すごーい!!
-これって同梱されている赤外線LEDと組み合わせれば、学習リモコンが作れるようになるし、そうしたらもう家じゅうの家電をPCから操作できちゃうってことになる!(ただし赤外線リモコンで操作できるものに限る)。
--参考になりそうな記事: https://zenn.dev/arsaga/articles/72c1c3ca057c1f
-これはスマートリモコンっていうんですね(今まで名前を知らなかったのです)。

** 2024.04.10(水) #2
-あれ? Arduino Uno R3、Raspberry Pi Picoのどちらでも、3.3Vの電源出力がありますね。ということは、これで動かせば、 https://www.amazon.co.jp/dp/B088FLMJCX/ に抵抗を追加する必要ってないですよね?

** 2024.04.10(水) #3
-電子工作系のサイトを見ているとたまに「3V3」とか「1V5」みたいな表記があります。
--確か最初に見たのは「Raspberry Pi Pico のピン配置図」で、36番ピンに 3V3(OUT) と書いてあります。
-これがさっきやっと意味が分かりました。3V3は3.3Vってことなんですね。そして1V5は1.5V。

-これが多用されている図がここにあって、それで理解できました!
--https://garretlab.web.fc2.com/arduino.cc/docs/learn/microcontrollers/5v-3v3/

-これってたぶん、12.34秒のことを「12秒34」っていうのと同じ感覚ですよねきっと。

** 2024.04.11(木) #1
-Raspberry Pi Pico を Arduino IDE から使えるようにする方法(デフォルトではできない):
--https://tamanegi.digick.jp/computer-embedded/mcuboa/raspberrypi-pico/
--Arduino IDE側では、[DEPRECATED - ]って書いてある方を選ばないようにする(これは廃止された選択肢なので)。

-いろいろ試して分かったこと:
--Adafruit_NeoPixel pixels(NumPixels, Pin, NEO_GRB + NEO_KHZ800); で指定するピンの番号は、Arduinoのような本当のピン番号ではなく、GPxやGPxxのような番号だった。
--Arduino IDE を閉じないと、hl9.exeはUSBシリアルをうまくつかめなくて通信できない(Arduino IDEがシステムモニタのためにUSBシリアルを握りしめていて離さない)。

** 2024.04.12(金) #1 余談:ディスプレイ付きのRP2040
-https://www.amazon.co.jp/dp/B0BKQYKGM8/
-こういうのを見ると、USBにストレージやキーボードマウスを付ける前提で、OSを作ったら面白いだろうなって思う・・・。

-それとも https://www.amazon.co.jp/dp/B08QRDXS5Y/ にRaspberry Pi Pico を付ける方が使いやすいかな。
-これも面白そう。 https://www.amazon.co.jp/dp/B08FYJXJ2R/

** 2024.04.17(水) #1
-ええと、現在はレールにセンサーを付けたいと思っていて、そのための部品はすべて注文済みで、部品が届くのを待っている段階です。・・・待っている間に、Raspberry Pi Zero 2 W で遊びます。→[[a24_raspberrypi01]]
-センサーについて詳しくは[2024.04.06(土) #1]に書いてあります。

** 2024.04.22(月) #1
-センサーの部品をAmazonで買ったのですが、まだ届かなくて、今の状態は「予定より遅れていますが、配送中です」になっています。「通関作業が開始しました」が最後の配送ステータスなので、まあたぶんそのうち進むのではないかと・・・。

** 2024.08.03(土) #1
-電動ポイントの切り替えの波形について。
--12V, 200~300ms説: https://inoyoshio.muragon.com/entry/233.html
--12V, 30~50ms説: https://zoe6120.com/2019/03/12/581/


//-以下のものを組み合わせてPCもどきを作ったら面白いかな?
//--https://www.amazon.co.jp/dp/B09NNVNW7M/ (Seeed Studio XIAO RP2040)(1293円)
//--https://www.amazon.co.jp/dp/B081ZQ5Z97/ (128x64ピクセルのディスプレイ)(2個で999円)



* こめんと欄
-掲示板をご利用ください。→[[a23_bbs]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS