2017/07/16

【16番】TER チキ2500(台車枠交換)

古いTERのチキですが、台車と車輪がショートしているのが解りましたので、修理しました。


続きを読む "【16番】TER チキ2500(台車枠交換)"

2017/05/20

【16番】カーブでも使える?100均で揃えるKATOユニトラック用のアンカプラー

ネオジム磁石のアンカプラー、一番初めに見かけたのは、海外のWebだったと思います。100均の商品でKATOユニトラック用のアンカプラーを作ったので、メモしておきます。

続きを読む "【16番】カーブでも使える?100均で揃えるKATOユニトラック用のアンカプラー"

2017/05/07

【16番】側線と引込線のあるデスクトップ小型レイアウト

手持ちは少ないのですが16番の車輌も走らせるため、130cm×90cmのテーブルにKATOユニトラックを広げています。R370のカーブとP490手動ポイントが主体ですが、手作りのR295や端数線路で変化を付けています。


120cm×90cmに「側線と引込線のあるプラン」を組んでみました。


R370の本線の内側はR295の側線です。両端で本線に合流しているので、機回しが可能です。


側線の端から引込線が分岐し、工場?の敷地内に続いていきます。




ガーダー橋を通して"外の世界"につながります。

時間切れで、車両は出せませんでした。

続く。。

2017/04/01

【16番】アクラス ワラ1

Aclassのワラ1、よく出来ています。車番は183にしました。





続く。。

2017/03/29

【16番】Raspberry Pi 3でJMRI(シャットダウンスイッチの追加)

Raspberry Pi 3にシャットダウンスイッチが付いたので、メモしておきます。


シャットダウンスイッチは、小型のタクトスイッチをケースの外側から取付け。


GPIOは40番ピン(GPIO21)と39番ピン(GND)を使用。接続コードは、TOMYTEC電飾キットのLEDのコネクター付き配線を流用。

先人の知恵をお借りして、Pythonのスクリプトを準備。
(参考)RaspberryPiにshutdownボタンを付けよう

$ cd ~
$ touch ./shutdown.py
$ sudo chmod 755 ./shutdown.py
$ nano ./shutdown.py
---この下の行から---
#!/usr/bin/env python
# coding:utf-8

import RPi.GPIO as GPIO
import os, time

GPIO.setmode(GPIO.BCM)

# GPIO21 : shutdown button
pin = 21
GPIO.setup(pin, GPIO.IN, pull_up_down = GPIO.PUD_UP)

L_timer = 120

while True:
  GPIO.wait_for_edge(pin, GPIO.FALLING)
  sw_counter = 0

  while True:
    if GPIO.input(pin) == 0:
      sw_counter = sw_counter + 1
      if sw_counter >= L_timer:
        os.system("echo heartbeat > /sys/class/leds/led0/trigger")
        os.system("sudo shutdown -h now")
        break
    time.sleep(0.01)

#  print(sw_counter)

GPIO.cleanup()
---この上の行まで---
行頭のスペースの数でwhile文やif文の動作が異なるので注意。参考記事の様に、print文で動作を確認しながら進めるのが、オススメ。

root権限でスクリプトの動作テスト。ファイルはフルパスで指定。
$ sudo ${HOME}/shutdown.py

シャットダウンボタンを長押しして、緑色のLEDが点滅の後に消えたら、シャットダウン完了。

くれぐれも動作を確認後、自動起動の設定。
スクリプトファイルを/usr/local/bin/にコピー。
$ sudo cp ./shutdown.py /usr/local/bin/

システム起動時に実行されるように、/etc/rc.local(Ubuntu Mateの場合)に登録。
$ sudo nano /etc/rc.local
("exit 0"の前に追加)
/usr/local/bin/shutdown.py &
exit 0

システムを再起動すれば、設定が反映される。
$ sudo reboot

Raspberry Pi 3だけでシャットダウンが出来るようになりました。

続く。。

【16番】Raspberry Pi 3でJMRI(再インストール)

久し振りにRaspberry Pi 3の電源を入れたら、動作しない。色々とジタバタしてみた結果、USB電源の容量不足だとmicroSDの書き込みに失敗して起動途中で進まなくなることが分かった。(振り出しに戻る。。。)

Ubuntu Mateのバージョンが上がっていることもあり、初めからシステムを入れ直し。
(参考)https://ubuntu-mate.org/raspberry-pi/

初期起動時にmicroSDの容量に合わせてパーティションが自動変更されるようになったが、upgradeの際にBOOT領域が不足するので、結局、他のPC上のgpartedでFAT16のパーティションを400Mbyte程度に拡張して再起動。


セキュリティ対策のため初期設定のままではsshで接続できなくなったので、raspi-configでsshd使用に変更。
$ sudu raspi-config
"3 Interfacing Options"-->"P2 SSH"-->"<はい>"

OpenOfficeやThunderbirdは不要なので、upgrade前に削除。
$ sudo apt-get remove --purge libreoffice*
$ sudo apt-get remove --purge thunderbird*
$ sudo apt-get clean
$ sudo apt-get autoclean

以下(ry

続く。。

2017/01/22

【16番】Raspberry Pi 3でJMRI

ノートPCでもよいのですが場所を取るので、無線LANに対応しているRaspberry Pi 3を使って、ディスプレイ、マウス、キーボードなしの"フェイスレス"でJMRIを動作させたので、備忘録としてメモしておきます。



OSはUbuntuベースのUbuntu Mateにしました。2017年1月の時点で16.04LTSとなっています。インストール手順は、ネット上の情報を参考にしながら進めます。

Installing operating system images on Linux

Ubuntu Mateのディスクイメージを入手し、linux上でmicroSD(ここでは/dev/sdb/。システムによって違うので、細心の注意を!)に書き込みます。
$ sudo dd bs=4M if=ubuntu-mate-16.04-desktop-armhf-raspberry-pi.img of=/dev/sdb

使用したmicroSDが8GBで少し容量が足りず、ddコマンドでエラーとなったので、以下のコマンドでファイルシステムの整合性をチェックして修復します。
$ sudo e2fsck -f /dev/sdb2
$ sudo resize2fs /dev/sdb2
$ sudo fsck.ext4 -f /dev/sdb2

逆に、使用するmicroSDの容量がディスクイメージより大きい場合は、dpartedなどで/dev/sdb2のパーティションを拡げておきます。

Raspberry Pi 3に、準備したmicroSD、ディスプレイ、キーボード、マウスをつなぎ、最後に電源をつなぐと、起動後にUbuntu Mateの初期設定画面になるので、フェイスレスで使う時のユーザーIDとパスワードを設定し、併せて自動ログインにしておきます。

Raspberry Pi 3上のUbuntu Mateは、パソコンに比べると動作が重く、プログラムのアップデートは、特に遅いです。初期設定のままでは知らぬ間にプログラムのアップデートが始まってしまうので、無線LANにつなぐ前に設定を変更しておきます。

パネルから"ソフトウェアとアップデート"を起動し、アップデート"タブで"セキュリティアップデートがあるとき"を"すぐに表示"に変更した後、無線LANに接続します。

必要に応じてレポジトリの参照先を国内サーバーに変更します。

•Ubuntu Weekly Recipe
 第450回 Raspberry Pi 3にUbuntu 16.04 LTSをインストールする(Ubuntuカーネル編)

時間がある時に、最初のプログラムのアップデートをしておきます。(1時間半位かかった思います。。)
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot

Raspberry Pi自身のファームウェアの更新をする場合には、以下のコマンドを実施します。(無理に更新する必要はありません。)
$ sudo rpi-update
$ sudo reboot

ネットワーク経由でログインできるように、xrdpをインストールしておきます。
$ sudo apt-get install xrdp

日本語入力の設定を整えます。パネルから"言語サポート"を起動して、追加のファイルをインストールします。

PR3が使えるように、自分のユーザーIDをdialoutグループに追加します。
$ sudo adduser ${USER} dialout

JMRIをダウンロードして、ホームディレクトリ配下の"JMRI"にインストールします。
$ cd ~
$ wget https:(ダウンロードファイルのurl)
$ tar xzfv ./download

Javaは1.8なので追加の作業はありません。PR3、コマンドステーション(DCS51K)をつなぎ、PanelProを起動して動作を確認します。
$ cd ~/JMRI
$ ./PanelPro

動作が確認できたら、システム起動時の自動起動にJmriFacelessを登録します。
$ crontab -u ${USER} -e
自動起動コマンドファイルの編集画面になるので、最後の行に以下を追加します。
@reboot /home/ユーザーID/JMRI/JmriFaceless

再起動させて自動起動を確認します。
$ sudo reboot

システムを終了させる時にはいきなり電源は切らず、終了コマンドを入力します。
$ sudo poweroff

microSDカードのアクセスが終わった頃合で、電源を外します。

ディスプレイ、キーボード、マウスを外せば、フェイスレスとなりますが、電源を切る際には、他のPCから端末を立ち上げ、ログインしてシステムを終了させる必要があります。
$ ssh -X ユーザーID@Raspberry PiのIPアドレス
$ sudo poweroff

このままでは電源OFFにパソコンが必要なので、リセットボタンの追加を検討しています。

続く。。


PS.Ubuntu Mate 16.04 LTS on Raspbery Pi3 が 重いからといって、"brltty"を強制的にアンインストールすると、パッケージの整合性が取れなくなって「振り出しに戻る」となりますのでご注意下さい。(経験者談)
Ubuntu Mate 16.04 LTS on Raspberry Pi3 が 重い件 の 対処

【16番】HOユニトラック手動ポイント6番(その3:DCC ポイントマシン)

テーブルトップレイアウトでも、手の届きづらいところのポイントに限って、DCC対応で電動化する計画です。






取り付けは簡単で、アドレスはデフォルトで"1"となってます。

続く。。

2017/01/01

【16番】Digitrax PR3とJMRI


先人の方々のWebを参考に、JMRI version 4.2とPR3とDCS51Kで、iPhone 5sのWiThrottleliteからコントロールできるようになりました。無線LANは普段使っているものです。

Ubuntu 14.04LTSが認識したPR3は、そのままではJMRI/Preferences Pane/Connectionsから見えないので、ターミナル画面から次のコマンドで、自分のユーザーIDをdialoutグループに追加しました。

$ sudo adduser ${USER} dialout

パソコンにPR3にDCS51Kに電源アダプターと結構場所を取るので、置き場所に工夫が必要です。

続く。。

2016/12/19

【16番】複線間隔60mmの片渡り線(その3)

2つのポイントの接続がフレキシブルレール用のジョイントでは不安定なので、ユニジョイナーが使えるようにします。結果として、枕木の継ぎ目も整いました。


元々付いていたユニジョイナーの接続部を再利用します。


道床を大きく切断しますので、分岐外側のレールはずらし、フログから先のレールも外しておきます。


裏側の基板も、外しておきます。ネジやナット、真鍮の金具は失くさないように。


フログから先に電流を流すための真鍮の金具に干渉しないよう、接続部の形と切断部分の形を考えます。


こんな感じで組み合わせました。ぶつかる所は、表から見えない所で削っています。


裏側の基盤は元に戻し、接続部は補強しておきます。裏ぶたも形を調整して、ふたを閉めておきます。


枕木の不自然さも、なくなりました。


2台とも作業終了。


少し接続部分が長かったようです。レールの隙間が開いています。直線の並行間隔は61mmとなりました。テーブルトップレイアウトに組み込んでの確認は、何れまた。

続く。。