早くRaspberry Pi用のDSpiの改変をしなければと思っているのですが、S88を調べているうちに、Raspberry Piを使って、メルクリンCS2のPC版アプリを動かす、と言うサイトを見つけてしまいました。
Raspberry Piとメルクリンの接続は、CAN-Maerklin Gleisboxと言う方式です。
Desktop Stationさんが解説している、Arduino CANシールドと考え方は同じです。
PCとRaspberry Piの通信は、UDPの様なので、一度見て見ようと思います。解析出来れば、Raspberry Pi/DSpiだけで、メルクリンのCS2の機能が楽しめる様になるかも知れません。
-- iPhoneから送信
2016年10月3日月曜日
2016年9月29日木曜日
寄り道ばかり
2016年9月26日月曜日
電子工作マガジン Autumn
雨が続き体調が優れない日々を過ごしています。集中力が続かないので、細かい作業が出来ません。仕方がないので、本を読んでアイディアを探しています。
先頃発売された電子工作マガジンには、DCC普及に直接関係した記事ではありませんが、Bトレ動力台車の改造方法が、コラムで取り上げられました。線路からの給電とモーターの側の分離です。
このコラムの目的は、Bluetoothで、DCモーターをPWM制御する為ですが、改造方法は、デコーダをインストールする場合と同じですので、電子工作マガジン読者にとってデコーダをインストールする敷居が低くなったと思われます。
少しですが、電子工作の方々へDCCを広める下地が準備されて来た様に思います。
-- iPhoneから送信
先頃発売された電子工作マガジンには、DCC普及に直接関係した記事ではありませんが、Bトレ動力台車の改造方法が、コラムで取り上げられました。線路からの給電とモーターの側の分離です。
このコラムの目的は、Bluetoothで、DCモーターをPWM制御する為ですが、改造方法は、デコーダをインストールする場合と同じですので、電子工作マガジン読者にとってデコーダをインストールする敷居が低くなったと思われます。
少しですが、電子工作の方々へDCCを広める下地が準備されて来た様に思います。
-- iPhoneから送信
2016年9月13日火曜日
明日術後検査
明日は、午前中に脳ドック、午後から目の術後検査です。もうよい年齢なので、万全な体調は、望むべくもないのですが、それなりにメンテナンスして行くしか無いと思います。
昨晩から雨。基板CADの準備と勉強しながら、今後の計画を考えています。一人で、仕事していると、ルーズになっていけません。
明後日から、実験を再開する予定です。
-- iPhoneから送信
昨晩から雨。基板CADの準備と勉強しながら、今後の計画を考えています。一人で、仕事していると、ルーズになっていけません。
明後日から、実験を再開する予定です。
-- iPhoneから送信
2016年9月9日金曜日
2016年9月3日土曜日
暫く休養
2016年8月31日水曜日
S88苦戦中
2016年8月30日火曜日
2016年8月29日月曜日
Node-REDのfunctionノードでライブラリーを使う
暑いので体調を崩してしまいました。年齢の為か万全の体調と言うのも難しく、いつもどこかに不調を感じる昨今です。
Node-REDのfunction内で、直接ライブラリーをrequire出来ないので少し工夫が必要です。
私の場合は、Raspberry PiにDSpiを乗せて使っているので、SPIの通信が必要となります。その為、Node.js用のrpioと言うライブラリーをインストールしています。そのライブラリーを、Node-REDで使用するには、先ず、Node-REDのsettings.jsを以下の様に変更します。
Node-REDのfunction内で、直接ライブラリーをrequire出来ないので少し工夫が必要です。
私の場合は、Raspberry PiにDSpiを乗せて使っているので、SPIの通信が必要となります。その為、Node.js用のrpioと言うライブラリーをインストールしています。そのライブラリーを、Node-REDで使用するには、先ず、Node-REDのsettings.jsを以下の様に変更します。
functionGlobalContext:{
rip:require('rpio')
},
が、その部分です。
functionノードで使う方法は、以下の通りです。
こんな感じで、ライブラリーが使えるようになります。
この例は、15番ピンを出力にして、一秒間Highにしています。指定するのは、ポートの名称ではなく、ピン番号である事に注意してください。
また、GPIOを使う場合には、sudo node-redで、node-redを起動してください。
単に、GPIOの読み書きを使うだけであれば、ライブラリーは必要なく、インストールされている、rpi gpioを使えば解決できます。
このノードは、便利で、上記の設定をするだけで、使用出来、値が変化した時のみ、メッセージを次のノードに送ってくれます。debounceの値を適切に設定すれば、チャタリングの影響も回避出来る様です。
ここまで来たので、やっとS88のデバッグに入れます。
2016年8月24日水曜日
S88 I/F デバッグ準備完了
2016年8月23日火曜日
Scratch MESH グローバル変数
今日は、MESHとグローバル変数の関係を調べてみます。
MESH HOSTは、グローバル変数をブロードキャストしてくれることは、先日記載しました。
そこで、今日は、cmdと言うグローバル変数を使って実験してみます。cmdは、Desktop Stationへのコマンドとなります。
スプライトは、削除してステージだけにしてしまいます。
そして、ステージに変数を追加します。ステージ上の変数は、グローバル変数になります。
(スプライトの変数は、グローバル変数かローカル変数か、選択できます。)
もう一つ、今度は、settingと言うリストを作成してみます。ここには、後々、設定値を格納します。
「0」キーが、押された時に、「setPower(0)」をcmdニセットし、「1」キーが押された時に「setPower(1)」をcmdにセットするようにしています。
Node-REDの受信結果は、以下の通りです。
MESH HOSTは、グローバル変数をブロードキャストしてくれることは、先日記載しました。
そこで、今日は、cmdと言うグローバル変数を使って実験してみます。cmdは、Desktop Stationへのコマンドとなります。
スプライトは、削除してステージだけにしてしまいます。
そして、ステージに変数を追加します。ステージ上の変数は、グローバル変数になります。
(スプライトの変数は、グローバル変数かローカル変数か、選択できます。)
もう一つ、今度は、settingと言うリストを作成してみます。ここには、後々、設定値を格納します。
コマンドを設定するスクリプトは、以下の様な感じにしました。
Node-REDの受信結果は、以下の通りです。
この様に、グローバル変数がブロードキャストされます。ここでは、文字データのみが、表示されていますが、実際には、先頭4バイトのデータ長がセットされています。詳細は、フォーマットの仕様を参照してください。
今回必要としているのは、cmdの内容だけですので、Node-REDに、以下のフローにしました。
switchノードは、以下の通りです。
functionノードは、以下の通りです。
Node-REDの受信結果は、以下の通りです。
この受信データを、先日作成した、Desktop Stationへのシリアル送信に繋げばDCCの制御が可能になります。
2016年8月22日月曜日
Scratchとの通信
Desktop Stationとの通信が出来たので、今度は、ScratchとNode-RED間で通信しています。
一番簡単なのは、Scratch 1.4のMESHを使う方法です。
Windows/Mac版のScratch 1.4では、そのままでは、MESHが使えませんので、ITProの記事を参考にして使える様にして下さい。
私は、Node-REDとScratcchを同じPCで起動しています。
一番簡単なのは、Scratch 1.4のMESHを使う方法です。
Windows/Mac版のScratch 1.4では、そのままでは、MESHが使えませんので、ITProの記事を参考にして使える様にして下さい。
私は、Node-REDとScratcchを同じPCで起動しています。
Node-REDは、こんな感じになります。ScratchのMESH HOSTが起動していれば、TCPノードを使って、以下の様な設定で、Scratchからのメッセージが受信できます。
前述のITProの記事を参考に実験してみるのが、MESHを理解する早道です。MESHホストは、大掛かりな事は、してくれません。してくれるのは、MESH HOSTに接続されているソケットに、グローバル変数の状態とメッセージをブロードキャストしてくれるだけです。
次回は、Scratch側のプログラムサンプルを紹介します。
2016年8月19日金曜日
MBEに苦戦中
書きたいことはあるのですが、暑いので考えがまとまりません。
気分転換に?、基盤CADの勉強を始めました。
レイヤーの考え方は分かったものの、ラインが上手く編集できません。
長さを上手く変更できないで、移動してしまったりで・・・
慣れるまで時間がかかりそうです。
気分転換に?、基盤CADの勉強を始めました。
レイヤーの考え方は分かったものの、ラインが上手く編集できません。
長さを上手く変更できないで、移動してしまったりで・・・
慣れるまで時間がかかりそうです。
2016年8月18日木曜日
Desktop Stationとシリアル通信
Desktop Stationハードの面白さは、PCと簡単に連携できるインターフェイスが始めから用意されている事だと私は思います。Desktop StationからもオリジナルのWindows用ソフトDesktop Stationが用意されています。(同じ名前なので間違いしやすいかもしれません。)
そのハードの一つDCCMM2シールドとシリアル通信のテストをしてみました。
※Aruduinoには、 DSGateway.inoのスケッチをロードしておく必要があります。
シリアル通信のソフトを書く必要がありますが、私は、Node-REDをWindows 10に、インストールして使用しました。
今回のFLOWは、以下の通りです。
左側のCOM4が、Serial Inputノードで、Arduino/DCCMM2シールドからのシリアル通信を受信しています。設定は、以下の通りです。
これから分かるように、DSGatewayは、115200bps 8bit noneparity 1 stopで通信しています。
左側のした二つは、Injectノードで、DSGatewayへのパワーコマンドをセットしています。
PowerOnコマンドの設定は、以下の通りです。
この様に、Payloadに、コマンドをセットし、右側のCOM4へ送信してあげれば制御できますが、コマンドの区切り文字を付加する必要があります。それが、真ん中のFunctionノードです。設定は、以下の通りです。
Node-REDは、ブラウザー上の開発環境が、そのままWEBアプリケーションになります。この例では、Injectノードの、「PowerOn」「PowerOff」をクリックすることで、レールへのパワーの制御が可能になります。同様の方法で、各種のコマンドを送る事で、簡単に制御出来ます。
この実験から分かる様に、DSGatewayは簡単にシリアル通信を使用して制御が出来ます。今回は、Windows 10/Node-REDを使用しましたが、シリアル通信さえ出来れば、IchigoJam等からでも制御が出来ます。
今日は、ここまでですが、次回は、Node-REDにScratchとの通信をさせて、ScratchからDCCを制御する実験をして見たいと思います。
そのハードの一つDCCMM2シールドとシリアル通信のテストをしてみました。
※Aruduinoには、 DSGateway.inoのスケッチをロードしておく必要があります。
シリアル通信のソフトを書く必要がありますが、私は、Node-REDをWindows 10に、インストールして使用しました。
今回のFLOWは、以下の通りです。
左側のCOM4が、Serial Inputノードで、Arduino/DCCMM2シールドからのシリアル通信を受信しています。設定は、以下の通りです。
これから分かるように、DSGatewayは、115200bps 8bit noneparity 1 stopで通信しています。
左側のした二つは、Injectノードで、DSGatewayへのパワーコマンドをセットしています。
PowerOnコマンドの設定は、以下の通りです。
この様に、Payloadに、コマンドをセットし、右側のCOM4へ送信してあげれば制御できますが、コマンドの区切り文字を付加する必要があります。それが、真ん中のFunctionノードです。設定は、以下の通りです。
Node-REDは、ブラウザー上の開発環境が、そのままWEBアプリケーションになります。この例では、Injectノードの、「PowerOn」「PowerOff」をクリックすることで、レールへのパワーの制御が可能になります。同様の方法で、各種のコマンドを送る事で、簡単に制御出来ます。
この実験から分かる様に、DSGatewayは簡単にシリアル通信を使用して制御が出来ます。今回は、Windows 10/Node-REDを使用しましたが、シリアル通信さえ出来れば、IchigoJam等からでも制御が出来ます。
今日は、ここまでですが、次回は、Node-REDにScratchとの通信をさせて、ScratchからDCCを制御する実験をして見たいと思います。
2016年8月17日水曜日
色々な方に刺激されて
何年か振りでBlogを書いています。
色々と原因となるものはあるのですが、DCC関係の方と知り合った事が大きいと思います。
DCCも何年か振りで、仕事の都合で去年再開しました。それが引き金となりDesktop Stationを使い始め、DSpiに触れ、ScratchからDCCを制御できる感触を感じ始めました。
その実験した事などを残したいと思います。
久しぶりと言う意味では、Raspberry Piも最近再び使い始めました。Raspberry Pi 3が直接の起因ではなく、Node-REDを知った事がその理由です。今まで、Raspberry Piに、気が乗らなかったのは、GPIO周りのプログラムを作るのが、面倒に感じていたからなのです。その煩わしさからNode-REDは、解放してくれました。また、IoT周りのプログラミングも割と簡単に解決してくれるので、実験するにはぴったりの環境だと思います。
そして実験するうちに、これまた放擲していたScratchも使い始めました。MESHを使えば、Node-REDと簡単に連携できる事が、再開の理由です。
一つの事を起点として、色々は事が関連し始めたのは、面白い事だと思います。
これから少しづつ、DCCとScratchの連携方法を模索していきたいと思います。
色々と原因となるものはあるのですが、DCC関係の方と知り合った事が大きいと思います。
DCCも何年か振りで、仕事の都合で去年再開しました。それが引き金となりDesktop Stationを使い始め、DSpiに触れ、ScratchからDCCを制御できる感触を感じ始めました。
その実験した事などを残したいと思います。
久しぶりと言う意味では、Raspberry Piも最近再び使い始めました。Raspberry Pi 3が直接の起因ではなく、Node-REDを知った事がその理由です。今まで、Raspberry Piに、気が乗らなかったのは、GPIO周りのプログラムを作るのが、面倒に感じていたからなのです。その煩わしさからNode-REDは、解放してくれました。また、IoT周りのプログラミングも割と簡単に解決してくれるので、実験するにはぴったりの環境だと思います。
そして実験するうちに、これまた放擲していたScratchも使い始めました。MESHを使えば、Node-REDと簡単に連携できる事が、再開の理由です。
一つの事を起点として、色々は事が関連し始めたのは、面白い事だと思います。
これから少しづつ、DCCとScratchの連携方法を模索していきたいと思います。
登録:
投稿 (Atom)