39.PCDuino3 nanoとJMRIを使用した i-Phoneでのスロットル
i-phoneのアプリWiThrottleを使うためのLinixPCボード導入とJMRI導入のお話です。
はじめに
DT-400での無線によるスロットルも日本で認可が出てようやく使えるようになりましたが、
以外と高価な為に導入を控えていました。
自分の携帯電話をi-Phoneに変更してアプリを見るとスロットルのアプリを発見。
でも、これを使うのにJMRIが必要ということで、WindowsXPのPCで実験したところ動作
することを確認。しかし、XPはサポート切れなので、別のPCにするかも考えましたが、
JMRIは、Linuxにも対応できることから、PC延命策として苦戦の末、Linux(Lubuntu)に
してこれも動作することを確認。
それでも、そもそもPCが古いので、どうしようかと悩んだ末に、秋月電子で見つけた
Pcduino3NANO Linux(Ubuntu)がインストール済みということと安価であったので購入
し、このボードで実現することにチャレンジしてみました。。
PcDuino3nano
このPcDuino3nanoを使ってJMRIとi-phoneのアプリWiThrottleを使うための導入作業を
ご紹介します。
アップグレードは必要だったか? ubuntu14にアップグレード
購入した時点で、すでにLinux(ubuntu12.04)が内蔵フラッシュに入っており、HDMIケー
ブルでパソコンのディスプレイやTV等に接続し、電源を供給するだけでLinuxデスクトップ
環境が起動します。
NotePCでLubuntuを導入していたのといろんなデバイスに対応できるかもという単純な発
想で出来るだけ最新にすることにしてubuntu14にアップグレードすることにしましたが、今
となっては必要だったか若干疑問ですが、とりあえずアップグレードしました。
1.PcDuino3nanoをubuntu14にアップグレード
http://www.linksprite.com/?page_id=858 にある、
Ubuntu NAND Image (use LiveSuite or PhoenixCard), 12-31-2014.を
ダウンロード。これを解凍してイメージファイルを取り出します。 この時にダウンロード画面下にある
PhoenixCardもダウンロードして解凍しておきます。
SDカード(4GB以上32G未満))を用意してWindowsのPCで PhoenixCardを起動してダ
ウンロードしたイメージファイルを書き込みます。
参考:http://www.nazo-fjt.com/elehobby/kousaku/pcduino/pcduino1.htm
PcDuino3nanoは接続されているHDMIやUSBを外し、SDカードを入れて電源を入れる
とAudio出力端子近くにあるLEDが点滅します。 5分ぐらいで書き込みは終了しLEDの
点滅が終わって消えればOK
SDカードを抜いてHDMIやUSB(マウス、キーボード)を差して電源投入します。
起動時のデスクトップ画面は購入時と違いLXDE環境になってしまっています。
画面は日本語化後にHDMI対応のTVで表示を撮影
LXDEは軽量なデスクトップ環境なのですが、制約もあるようで、LbuntuやUbuntuなどの
デスクトップ環境をインストールすることも可能ですが、私は、何回か試して失敗したので余
計なことはせずに、LXDEの環境で進めるとして、初期設定と画面が英語になっているので、
日本語化をします。
1.初期設定とLXDEの日本語化
1−1.初期設定
まずは、ネットワークに接続します。
ネットワーク(有線)に接続します(ここではIP固定でなくDHCPである前提とします))
画面のデスクトップにある"Wicd Network Manager"のアイコンをクリックします。
Wired network を選択してconnectボタンを押して接続し、
また、check to Use as default profile にチェックを入れます。接続さ
れるとポップアップ画面下にIPアドレスが表示されます。
DHCP接続であればこれだけでOKです。
1−2.キーボード設定とタイムゾーンの設定
簡単にできるので、board-config.sh を実行します
ターミナル画面を起動して
sudo board-config.sh と入力
私の場合、キーボードは105キーボードで設定。
timezoneもasia -> tokyoで設定しました。
この時点てキーボードとタイムゾーン以外の設定は触らないほうが無難です。
1−3.パッケージマネージャーのインストールと設定
日本語入力のインストールのためパッケージマネージャーインストールと
設定をします。
ターミナル画面から
sudo apt-get update
sudo apt-get install -y synaptic
と入力してインストールします。
ファイルの編集用にエディタをインストールします。
ターミナル画面から
sudo apt-get install nano
パッケージマネージャーのアイコンの設定を変更します
ターミナル画面から
sudo nano /usr/share/applications/synaptic.desktop
nanoが起動してsynaptic.desktopのファイルが表示されるので
Exec= の行にある記述を
Exec=synaptic-pkexec から
Exec=gksudo synapticに変更して
save(CTRL+O)、exit(CTRL+X)します。
ついでにシャットダウンメソッドも変更しておきます。
デスクトップにある lxde-logout.desktop を編集します。
sudo nano /usr/share/applications/lxde-logout.desktop
nanoが起動してlxde-logout.desktopのファイルが表示されるので
Exec= の行にある記述を
Exec=lxde-logout から
Exec=gksudo lxde-logout へ
save(CTRL+O)、exit(CTRL+X)します。
ここで再起動
sudo shutdown -r now
1−4.LXDEの日本語化
パッケージの情報更新
sudo apt-get update
日本語のフォントのインストール
sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big
xfonts-kaname
日本語化
sudo apt-get install language-pack-ja
sudo dpkg-reconfigure locales
sudo update-locale LANG=ja_JP.UTF-8
sudo locale
再起動をおこなう。
sudo shutdown -r now
日本語化は、このサイトの記述を参考にしました
http://www.nazo-fjt.com/elehobby/kousaku/pcduino/pcduino1.htm
上記のサイトで
日本語の入力は、
sudo apt-get install jfbterm uim uim-anthy とありますが、この環境の
日本語入力はUIMでなく i-busなので上記のサイトでフォントと言語設定まででコマンドで
いうとlocaleのところまででOKです
日本語入力
はじめにインストールしたパッケージマネージャーを使って「IBus用の Anthy 」をインストール
します。検索する時は ibus-anthy です。
インストールしたら再起動します。
2.JMRIの準備
このLXDE環境では、Wifi無線LANの設定が出来なかったので有線でWifiルータに
接続するとして、JMRIのインストールを行います。(有線でWifiルータに接続は後で記述)
2−1.LocobufferUSBの準備
JMRIは、JAVAの関係かMS-100のインターフェースが使えないので、WebNuckyさんの
LocobufferUSBを利用します。
LocobufferUSBの認識確認
USBポートとLocobufferUSBを接続すると、 /devの下にある "ttyUSB0" のファイルが
作成され、ケーブルを抜くとなくなります。 この名前が、後にJMRIで設定するポート名になります。
2−2.JMRIのインストール
PcDuino3nanoのWebブラウザで http://jmri.sourceforge.net/ と
アドレスを入力してJMRIのサイトを開き、JMRI 3.10.1 Production Version
を使用しました。 (2015年6月時点)
このバージョンのLINUX版を選択してダウンロードします。
ダウンロードすると/home/linaro/Downloadの下に保存されます。
ファイルマネージャを開き、ダウンロードファイルをダブルクリックすると解凍が始まりJMRIの
フォルダが作成されます。フォルダが作成されたら、/home/linaro/の下に移動します。
JMRIはJavaが必要で、PC版だとoracleのjavaをインストールするのですが、すでに
openjavaがインストールされているのでインストールせずにそのまま使います。
※JMRIのサイトには色々書いて有りますが、余分なものは入れる必要はありません。
2−3.起動
フォルダを移したあとにJMRIのフォルダを開き"DecoderPro3"をクリックします。
実行するか聞いてくるので実行をします。
JMRIのロゴが表示されればOKです。
サクサクと起動するかと思ったら、ちょっと時間が掛かります。
起動すると最初の画面では必要なDCCシステムと接続方法を入力します。
画面のSerialPortですが、先ほど確認したUSBのポート ”/dev/ttyUSB0” を選択します。
LocobufferUSBを接続しておかないと選択項目に出てきませんので接続して設定を行ってください。
入力して保存するとDecoderPro3を再起動するか聞いてくるので再起動します。
起動後の画面で、画面左下に緑色でメッセージが表示されていればOKです。
画面のメニューのLoconetにある「Loconet監視」を選択して画面を開き、
コマンドステーション側で電源on/offや操作を行いと画面上にコマンドが表示されればOKです。
2−4.アイコンの作成
アイコンはデスクトップにあるアイコンをコピーして nanoで編集します。
3.i-phoneをスロットルにする(WiThrottle導入)
3−1.wifiルータの設定
Pcduino3nanoでLXDE環境では ものによると思いますが私が使おうとしたbuffalo
のUSBタイプの子機ではうまく認識できませんでした。このため有線LANも使えるIO-DATAの
WN-G300TRを使います。
(同じ外観で有線LAN付きと有線LAN無しのタイプがありますが、有線LAN付きのタイプを
使用します)
そのままでは使えないのでルータモードにして接続時にDHCPによりアドレスが振られるように
初期設定を行います。
ルータモードに設定できれば、PcDuino側と接続して"Wicd Network Manager"を開き
IPアドレスが取得できていればOKです。
http://www.iodata.jp/product/network/pocketrouter/wn-g300tr/index.htm
3−2.WiThrottle導入
Applestoreで withrottleを検索します。
無償版と有償版があり、有償版は2列車操作することができますが、まずは無償版で試すのが
よいかと思います。
http://www.withrottle.com/WiThrottle/Home.html
3−3.i-phoneをWifiルータに接続
今度はi-phone側の接続を行います。
i-phoneの 設定 > wifi を選んで、接続先
(WN-G300TRの裏側にある出荷時SSID1の名称)を選択し、同様に記載のあるパスワードを
入力してwifi接続します。
(必要に応じて、SSIDの名称とパスワードは変更してください)
3−4.WiThlotteの設定
JMRIのdecoderpro3の画面のメニューから "WiThrottleServer"を実行します。
設定はデフォルトのままでokです。
i-PhoneのWiThrottleは、アプリを起動し、設定画面でネットワークに接続されているか
確認します。
基本は自動設定にすると 自動でサーバを探し接続します。
設定画面でSSIDが表示されればOKです。 DeviceNameは自分の好きな名前を
入れておくと、接続時にwithlooteserverの画面に名前が表示されますので
あとはスロットを操作してみてください。 動きましたか?
LOCONET監視でコマンドが流れているのを確認できればOKです。
2015/08/01追記
有償版は、ポイント(転轍機)とルートの設定ができるようです。
まだ実験中ですが、
1.コマンドステーションからの情報でポイントとルートの表示もできるようです。
ただ、Digitraxは確認しましたが、それ以外のポイントデコーダでは応答コマンドを
確認しているのか表示されません。
ルート機能を登録できないコマンドステーションではルートは使えません。
2.JMRIのPanelPROでのテーブルで転轍機とルートを設定すると
ここに表示できるようです。
2015/10/01追記
ルートもJMRIで設定すれば使用できることが確認できました。
ルートは、転轍機の設定を組み合わせて設定しますので事前に転轍機の登録が必要です。
ルートは、設定したポイントの番号に対してJMRIが連続でコマンドを出力しますので
1つの基板で複数のアドレスを持つデコーダは連続したコマンドの発行により上手く切り替わらない
場合があるので、この場合、ルート設定時の転轍機の指定でWAITTimeを設定します
4.ユニットとして組み立て
PcDuino3nanoをケースに入れるなどの対応は必要です。
私の場合、家での固定使用でなく、運転会メイン使用なので、運転会などで関連機器を忘れないように、
機器を集約してアクリル板に構成してみました。
画面ディスプレーは、車載用(自動車)の1024x600の解像度を持ったものを使用しました。
「7インチオンダッシュモニター/WSVGA1024x600/スピーカー内蔵/HDMI入力」のもので
Amazonで購入しました。
※1024x600なのですが、この設定で実際に接続すると640*480になってしまいます。
640x480でも使えるので私は良しとしてしまいました。
尚、解像度上げても表示されますが、字が小さくて読みづらいです。
2015/08/01追記
解像度の変更は、ctrl+alt+F1で コマンドラインモードに移動して
sudo board-config.sh と入力
メニューが出てくるので一番上の解像度の設定を変更します。
変更の際に画面確認で”表示されたらYを入力”のメッセージが表示された後に変更した解像度で
文字が表示されますので表示がされてOKであれば”Y”を押すと設定が変更されます。
もし表示されない場合は、そのまま35秒待つと元に戻ります。
変更したら、board-config を終了して
ctrl+alt+F7でLXDE画面に戻ります。
そして、再起動するとLXDE画面の解像度も変更されます。
ちなみに1280*768でも表示できましたが、さすがにディスプレーが小さいと字が読みづらいです。
また、若干画面がはみ出してしまう場合は、 board-config の2番目の項目にある画面サイズで90%と
というように表示サイズの率を設定するとディスプレー内に画像を収めることができるようです。
※board-config の3番目のLocaleを選択すると英語に戻ってしまうことがあるので触らないほうが無難です。
ご注意: ・Linux(Ubuntu)に関しては初心者です。あくまでも導入事例として参考にしてください。
また、記載した方法が正しいとは限りませんので、やり方の詳細や事例など、
各WEBサイト・ブログなど参照ください
・このサイトに記載してある内容・製作・改造に関し、万一損害が生じても
当方では責任を持ちませんのでご自身の責任の範囲でお願いします。
・サイト内のコンテンツの転載・商用利用は固くお断りいたします。