reply先日から3Dプリンタ2号機にRaspberryPiを乗せ、Pronterfaceの画面をメインPC(Windows)に飛ばして使っています。ラズパイ上でPronterfaceはX-Windowのアプリケーションとして動作するので、Windows側ではX端末ソフトを動かせばネットワークを経由して表示できます。メインPCには既にCygwinをインストールしてあるのでこれをX端末として使用しました。+’コマンドを実行し、リモートホスト側ではDISPLAY環境変数を設定した上でアプリケーションを起動するという手順を踏んでいました。昔ながらのやり方です。+’はあらゆるホストからの要求を受け入れて画面に表示してしまうのでセキュリティ上よろしくないのは分っていましたが、家の中で使うのなら大した問題はないだろう・・・と。今回TeratermのTT-SSHでフォワーディングを試したところ、単にセキュリティ的に安全というだけでなく手間が大きく省ける事を知りました。比較するとこんな感じ。新しい方法も面倒がらず、何事も試してみるべきでした。admin.どどーんはじめました。Replies今回のマルチコプターでS.BUSを初めて使ったので信号をArduinoで読み出してみました。S.BUSとは何かという詳しい説明はコチラ→https://ja.wikipedia.org/wiki/S.BUS要はラジコン受信機から昔ながらのサーボ信号を出すのではなくシリアル通信にする事で全チャンネルを1本の信号線で制御するという物です。飛行機の場合はサーボの位置が分散しているので結局それぞれに配線する必要があり、あまりメリットを感じませんでした。マルチコプターでは受信機の信号は全てフライトコントローラ基板に接続するのでこれが一本で済むのは大きなメリットになります。S.BUS信号はシリアル通信ですが、UARTでよく使う仕様とは微妙に違うところがあり面倒になっています。次のところ・・・ボーレートが100Kbps。115.2Kbpsではなく100Kbpsです。妙なボーレートですがArduinoではSerialBegin()のとき100000と指定する事で対応できます。Arduinoに入れる信号はインバータで反転してやる必要があります(もしかするとArduino側に反転機能があるのかもしれませんが見つけられませんでした)。あと受信後のデータが11bit区切りなので並べ替えがややこしいです。S.BUSプロトコルに詳細はこちらを参考にしました。→https://os.mbed.com/users/Digixx/notebook/futaba-s-bus-controlled-by-mbed/→http://anarchy.hatenablog.com/entry/2014/12/07/181853そして最低限の部分をスケッチに書きます。MEGA2560で動かしてみます。MEGA2560でS.BUSをモニター。ブレッドボード上のICは信号極性反転のための74HC00。こんな感じでデータが出てきました。送信機が6CHなので7CH以降が正しいかどうかは確かめられていません。19番目のデータはFailsafeが働いたときに1になるはずですが、これも確かめていません。各データが11bitt幅なので0~2047が表せるはずで、どうやらニュートラルが1024の様です。ところでCleanflightにも受信データを表示する機能があります。今回のモニターとCleanflightの値が一致しません。そこで何ポイントか対応を取ってみました。Cleanflightの表示値は昔ながらのPWMサーボ信号のパルス幅に換算した値をμS単位で表示しているのだと思います。ニュートラルはS.BUSの生データは1024ですがPWMだと1520μSといった感じ。いうことでS.BUSの生の値にざっと0.625掛けて879.5を足すとほぼCleanFlightの値になる様です。Replies1月にPC不調の件を書きました。寒くなってから調子が悪くなりヒートガンで温めると立ち上がるという症状。その後しばらくヒートガンで温めながら使っていました。温めなくても立ち上がる様になったと思った矢先、作業中にこんな画面が出てきました。これっていわゆるブルースクリンでしょうか?なんか以前のWindowsと雰囲気が違いますが。最初は再起動すれば何事もなく動作しました。翌日は立ち上げ途中でこの画面が出て先に進みません。今回は温めてもダメです。BIOS設定画面でフェイルセーフ設定にすれば立ち上がります。ClockRatioという設定が元々21Xだったのを20Xに下げると動作する事が分かりました。標準がいくつなのか覚えていませんがとりあえず20Xで使えるのでしばらく使っていたところ、また同様のエラーが出る様になり、あとはエラーが出てはクロックを少しずつ下げる繰り返しでとうとう10Xまで来ました。9Xまでしか下がられないので後がありません。観念してマザー、CPUを更新する事にします。8GB×2枚もう以前の様に色々調べたりしていません。パソコン工房熊本店に出かけ、今使っているのがこれこれでとりあえず今より遅くならないやつといって提示されたのを買いました。i5からi3になってコアが減るのがなんとなく寂しいですがベンチマーク上は前より上だそうです。用途にもよると思いますが。H270-PLUSで、交換ですが、今までならこんな場合はOSを再インストールしていました。その際データをバックアップするといってもそんな大容量の媒体もないので結局HDDも更新し、OSインストール完了後に古いHDDを接続してデータを移していました。こちらのサイトによるとWindows10なら旧HDDをそのままつなげば使えるとの事。やってみたらその通りすんなり立上り、OSの認証もこちらに書かれた方法で完了しました。・・・という事でまた当面は安心して工作が出来る様になりました。Replies最近メインで使っているPCの調子が悪く、電源投入後一発で立ち上がらない。正常時は電源投入の数秒後にピッという音が鳴ってOSを読み始めるのだが、このところはピッの段階になる前に電源が落ち、その後10秒くらい経ってから勝手に電源が入る動作を数回繰り返した後にやっと立ち上がる。最終的には立ち上がるのだが、何度も電源がON/OFFするとマトモなところまで(HDDとか)壊れそうな気がして精神衛生上よろしくない。寒くなってからこの現象が起きている気がする。寒い時に立ち上がらないというと電源が怪しい気がする。そこで電源の蓋を開けてみたが、明らかにコンデンサがイカれている様子などは見当たらない。ヒートガンで電源を温めても立ち上がりやすくなる様子はない。他のあちこちを順番に温めてみたところ、どうもマザーを温めると立ち上がる模様。マザーも目視する限りはコンデンサのパンク等は見えないが、どこか見えないところがイカれているのだろう。ウチのPCはGIGABYTEのGA-P55-USB3というマザーにインテルi5を載せている(だいぶ前にメモリーチェックを繰り返すとエラーがでる件を書いたけど、結局は未だに使っているのだ)。マザー+CPUを新しくしようと考えたが結構高い上に、新品で手に入るマザーだとメモリーがほとんどDDR4になっちゃってて、そうするとメモリーも変えないといけない(今使ってるのはDDR3)。今の構成で特に速度的な不満はないので中古マザーをネットで買おうかとも考えたが、それも何だかねえ。いう事で毎回ヒートガンで温めながら立ち上げてます。春まで耐えれば喉元過ぎて、また数カ月はそのまま使うのかも。replyMakerFaire用に新たなデバイスを作っていたらOpenStickへの書き込みが出来なくなっている事に気づきました。このままではMakerFaireで胸を張って照会できません。先日Windows7(32bit)からWindow10(64bit)に変更した事が絡んでいる様です。OpenStickへの書き込みはMybootOSというツールで行うのですが、これが下の様なエラーになって立ち上がりません。間違ったフォーマットのプログラムを読み込もうとしました。・・・というエラーが出る。MybootOSはC#で書いてありVisualStudio2010でビルドしています。ググってみると、どうやらビルドする時のCPUの指定がAnyCPUになっていたのが原因だった様です。AnyCPUってのは実行するOSが32bitでも64bitでも、それぞれに合わせたモードで動いてくれるものだそうです。ところがプログラム内からDLLを読んでいると、DLLが32bitか64bitかというところまでは面倒を見てくれないため、今回の場合アプリケーションは64biitで動作しているのにDLLが32bitだったのでエラーになっていました(Mybootではmpusbapi.dllを使っています)。そこでVisualStudioでX86としてビルドし直すと32bitのアプリが生成され、これだと最初から32bitとして実行するので無事動作する様になりました。いう事で64bitのOS上で動かす時は32bit版のアプリを実行しなければならないという解り難い状況になっています。いずれにせよ動作する様になったのでバイナリだけアップしておきます(ソースは変更していないので)。そもそも何を作っていたのかというと、これです。ヨットシミュレータコントローラMINI今回MakerFaireには実物大コントローラは持って行かないので雰囲気だけでもヨットっぽいコントローラをつくってみました。replyWindows10への無償アップグレードが7月29日までという事なので、そろそろ検討を始めようと思い、まずはセカンドマシンで試してみました。セカンドマシンとはHPのEliteBook2740pです。昨年の山口ミニメイカーフェアでヨットシミュレータを動かすマシンが無かったため、中古で購入しました。分厚いですがタッチパネルなのでWindows10を試すには最適です。これには元々Windows7(32bit)が入っています。このマシンにはリカバリディスクが付いていないのでHPから購入しました。その際、32bitでも64bitでも購入可能との事でしたので64bit版を買っています。よって今回は元々のWindows7(32bit)から、一旦リカバリディスクによりWindow7(64bit)を入れた後、無償アップグレードにてWindows10(64bit)化します。リカバリディスクによりWindows7(64bit)をインストールした時点でヨットシミュレータを起動してみました。何やらエラーが出ています。今回はWindows10にしてから悩む事にします。途中いろいろあったのですが、話はWindows10(64bit)インストール後に進みます。この状態でヨットシミュレータを実行してみるとやはり下の様なエラーが出て起動できません。なにやらエラーが発生。MSVCP100.dllが無いそうです。「OK」を押すとMSVCR100.dllも無いと言ってきました。再頒布可能パッケージ」を入れろとの事です。C++2010でコンパイルしています。再頒布可能パッケージ」には32bit版と64bit版があります。今回OSは64bitになったので64bit版をインストールしました。これでは変化ありませんでした。?ヨットシミュレータは32bitアプリとしてビルドしてあります。結局アプリが32bitならOSが64bitでも32bit版パッケージを入れるのが正解な様です。replyブームに乗ってIchigoJamを買ってみた。「こどもパソコン」というキャッチフレーズのIchigoJam。こどもに渡さずオッサンが楽しんでいるのだ。キットは下の写真の内容である。キット組み立てるとこんな感じ。電源をモバイルバッテリで供給しポータブルDVDプレーヤに出力したのでモバイルパソコンとなった。動作風景しかし小さい画面ではやりにくいのでプログラミングの際はPCとシリアル接続することにした。これならいつものPCでTeraTermから入力できてやりやすい。言う訳で、久々のBASICなので懐かしいHIT&BLOWを作ってみた。昔のマイコンゲームと言えばまずこれだろう。若者は知らないかもしれないのでルールを書くとだいたい次の通り。コンピュータが4桁の(各桁の数字が重複しない)数値をランダムに生成する。これは現時点では表示されない。プロンプトが出てきて人間がこれと思う4桁の数値を入力して当てていく。数値を入力すると、コンピュータから次のヒントがでる。・桁も数値も一致する事をHITと呼び、この数を表示する。・桁は違うが数値が一致する事をBLOWと呼び、この数も表示する。コンピュータが用意した数値が1234だとして人間が1426と入力すると、HIT=1,BLOW=2というヒントが表示される。要は入力した値に応じてHITとBLOWが表示され、このヒントを元に正解を推測していく。少ない回数で当てるかを競うゲームなのだ。IchigoJamに入っていたファームウェアバージョンは0.9.7で、このバージョンだとFOR文が使えずエラーとなるのでIFとGOTOでループを作った(さすがに大昔使ったTK-80BSでもFORは使えたが・・・)。最新ファームならFORも可能だそうです。reply先日タック練習機を作った話を書いた。私も一緒に練習しているのだが、何度もタックを行っていると、何回やったかが分らなくなる。そこでタック練習用ソフトを作成してみた。タッック練習ソフト特にまあ何と言う事もないのだが、スタートボタンを押すと最初のみホイッスルの短音が8回鳴り、その後5~10秒おき(ランダム)に長音一回+短音一回が鳴ってカウントアップする。このタイミングでタックをするのだ。簡単なソフトだがホイッスルの音が気分を盛り上げてくれる。ホイッスルの音はSoundEngineで録音してDOT8.wavとN.wavという名前で保存してあるので、このファイルを書き換えれば音を変える事ができる。すると役立つ人がおられるかもしれないので、一応アップしときます。実行ファイルのみダウンロードソースをダウンロード実行するには.NetFreamework4がインストールされている必要があります。Expressで行いました。話は変わるが、昨日も書いた不調のPC、メモリーだけ買ってきて交換してみた。その後、最初は調子良かったが、何度かBIOS設定を変えながらメモリーチェックをやっているとNGが出た。i5-750なのだが、色々調べていると、この頃からメモリーコントローラはCPUに内蔵されたそうな。様子を見ながら使ってみることにした。feedWordPress.orgこちらも見てちょ~だい。