開発ノート (91)

川内 康雄

L-02Cとyosemiteでmineoを使う

2枚目のmineoのsimをDプランで契約しました。docomo回線のプランです。契約したのは眠っているL-02Cを使ってみたかったからで、人柱的に実験をしてみます。 このsim自体はiPad Air2のsimフリー版でちゃんと導通することをまずは確認しました。 次はドライバインストールなのですが、ここでまず最初に躓きました。以前のMavericksのころはUSBドライブの中に入っているドライバをインストールするだけで、L-02Cを認識していました。ところが今使っているyosemiteでは再起動してソフトを起動しても「ドライバがインストールされていない」と怒られます。 解決策としてはドコモ公式から「L02C_CM_Driver_for_Mac_V1.2.1.0.zip」をダウンロードしてきて再インストールすることで成功しました。L-02Cのファームが古かったのでこれが原因かと思いアップデートしたのですが、これでは解決しませんでした。WindowsでしかアップデートできないのでPCを用意したのですが、意味が無かったです。いや、使っているうちに意味が出てきますかね。 初期設定のままでは接続できませんでしたが、接続ソフトのプロファイルを設定し直すと、接続成功しました。パスワードはマニュアルに記載の通りです。 “””

Continue reading...
川内 康雄

Fire TV Stickは5Ghz帯のW56のチャンネルが使えなかった

Fire TV Stickを発売前予約していたのですが、昨日届きましたので早速セットアップを始めました。が、無線LANのアクセスポイントをスキャンしても5Ghz帯のアクセスポイント名が出てきません。実際には、接続できるWifiネットワークの中に、遠距離にある5Ghzのアクセスポイントは出てくるのに近距離の使用予定のアクセスポイントが現れないという現象。うちは木造住宅で2.4GHz帯は回りのお宅のアクセスポイントとの干渉が多くできるだけ使用を避けています。特にFire TV Stickはストリーミングデバイスなので通信量が多く、過密帯は使用したくないので、ここは粘って解決策を探ることにしました。アクセスポイント側の暗号方式やアクセスポイント名の使用文字を変えてみたり、アクセスポイント名を直接指定しても接続できないので、電波レベルで通信できていないと判断。そこでチャンネルを手動設定して、W52帯の48チャンネルを指定するとスキャンに成功し、接続できました。W53は試してません。http://www.amazon.com/gp/help/customer/forums/kindleqna/ref=kindle_help_forum_tft_tp?ie=UTF8&cdForum=Fx1GLDPZMNR1X53&cdThread=Tx1H4JT7559XJC9http://www.amazon.co.jp/forum/kindle?_encoding=UTF8&cdForum=Fx1QMZAIPKWB6YF&cdThread=Tx8P8CAIDTNCL9Fire HDについての話題ですが、やはりW56は使えないという話しの模様。で、ここで困ったのが、アクセスポイント側のチャンネル選択です。バッファローのルーターを使用しているのですが、W52の中から自動選択といった設定ができません。W52の中であればどれでもいいのでしょうから、できるだけ干渉が少ないチャンネルを使用したいです。が、自動選択機能が働かない以上は、自分で最適チャンネルを見つけないといけません。初回だけならいいのですが、定期的に設定し直す訳にもいかないのでどうしたものか。”””

Continue reading...
川内 康雄

Unityでワンソースなシステム開発:GameObject.FindではなくSerializeFieldでオブジェクトを参照する

Unityでスクリプトを書いていて面倒なのが、他のオブジェクトへの参照ですね。僕はセオリー(?)通りにGameObject.Findでオブジェクトを見つけていたのですが、何でわざわざこんなことをしないといけないのかとブツブツ(頭の中で)言ってました。グローバルに存在しているオブジェクトなので名称で直接参照できたらいいのにとか。そんなときに違う話題の検索からこの記事を発見。Unityで開発する際に気をつけておきたい5つの作法この中の「GameObject.Findは使わない」で、SerializeFieldを使うとあり、これだと、自動ではないですが、名称からの参照切れは回避できますし、ソースがすっきりします。その分インスペクタがごちゃごちゃするでしょうから、メリットばかりではないですが、使う価値はありますね。 実際にテストしてみると、ヒエラルキーからドラッグアンドドロップでオブジェクトを設定すると、スクリプトの中でオブジェクトを参照できました。ひとつのプロジェクトの中で方針がばらばらになるとミスをしますので、今やっているものではGameObject.Findで通そうと思いますが、次のプロジェクトではSerializeFieldでやってみます。”””

Continue reading...
川内 康雄

Raspberry PiでIoTなシステム開発:OSXのインターネット共有でIPを割り当ててログイン

Raspberry Pi用のpreempt_rtのコンパイル済みカーネルイメージが配布されているのを発見しました。http://docs.emlid.com/navio/Downloads/Real-time-Linux-RPi2/これであればバイク競技用計測器として実用になるものが作成できるかもという期待から、環境を構築してみることにします。本当はXenomaiの方が圧倒的にリアルタイム性が優れているようなんですが、rpi2ではなかなか起動に成功しないようです。https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdfhttps://www.raspberrypi.org/forums/viewtopic.php?f=71&t=74686インストールは本家チュートリアルそのままです。ただしbs=1Mだと怒られるので、1mになっています。sudo dd bs=1m if=emlid-raspberrypi2-raspbian-rt-20150401.img of=/dev/rdisk2rdisk2だけ環境とタイミングにより修正ですね。さて本稿の本題はログイン環境の構築です。モニタ無しで運用する場合、最初の最初にPiにどうやってログインするかという問題があります。Piをさわり始めた当初はシリアル通信でログインしていたのですが、このイメージファイルではシリアルが無効化されていました。なお無線LANアクセスポイントになれるようなのですが、自分が使っているWifiアダプタは認識されないようでAPとしては動き出しません。もう一つのやり方としては有線LANでのログインです。以前やったのは、有線LANアダプタがデフォルトでDHCPでIPを取るようになっているので、ルーターを用意して、IPを取得させ、ルーター側の設定画面で割り振られたIPを確認するという方法。これは簡単でよいのですが、今回は手元に使えるルーターが無く、この方法だと時間がかかりそうでした(ルーターが手元に届くまで)。使用する機材も増えるのでスマートではありません。そこで思いついたのがMacのインターネット共有を使う方法。ググって見ると多くの先達が実行しているようです。早速Thunderbolt Ethernet アダプタに固定IPで192.168.2.1を振って接続してみると、あっさり成功しました。ネット上の情報だとクライアントには192.168.2.2が振られるという話しが多かったのですが、実際やってみると、リースされる毎にIPが変わりました。実際の割り当てを確認するには、bootpdのログを見ればいいらしく、以下のコマンドで抽出しました。 cat /var/log/system.log | grep bootpd Jan 28 07:33:20 kawauchiyasuo-no-MacBook-Pro.local bootpd[2491]: DHCP DISCOVER [bridge100]: 1,b8:27:eb:f6:3c:22 Jan 28 07:33:20 kawauchiyasuo-no-MacBook-Pro.local bootpd[2491]: OFFER sent 192.168.2.3 pktsize 300Jan 28 07:33:20 kawauchiyasuo-no-MacBook-Pro.local bootpd[2491]: DHCP REQUEST [bridge100]: 1,b8:27:eb:f6:3c:22 Jan 28 07:33:20 kawauchiyasuo-no-MacBook-Pro.local bootpd[2491]:…

Continue reading...
川内 康雄

Raspberry PiでIoTなシステム開発:ワイヤレスアクセスポイントとして動作させるまで

2016/02/08:追記:下記の一連の記事は諸般の事情により奏効しない可能性が高いです。普通に使うのであればこちらの記事を参照してください。Raspberry PiでIoTなシステム開発:ワイヤレスアクセスポイントとして動作させるまで(改訂版)ネットでいくら事前準備をしてもなかなか一筋縄ではいなかいのがこの世界の常。色々引っかかりましたので、メモを残します。Raspberry Piの場合、設定がスムーズに行くワイヤレスアダプタを使うのが安全です。が、色々と試して見て、起動が安定するのがWN-G150UMだったという過去の経験から、今回もこれを使うことにします。まずPiの最初にすることの定番作業として、アップデートをかけます。sudo apt-get updatesudo apt-get upgradeファイルシステムのサイズがSDにあっていないので拡張します。df -hsudo raspi-configから、expand filesystemを実行。localeは変更しません。timezoneをtokyoに設定。各種記事からするとavahiをインストールするのが定番のようですが、サービスログから割り当てIPがわかるので、サービスを減らす観点から、今回は止めておきます。起動安定化のため/boot/config.txtsafe_mode_gpio=4max_usb_current=1WN-G150UMはドライバの追加インストールは不要だが、デバイスIDの指定が必要ということなので設定ファイルに追記。http://marm.cocolog-nifty.com/jokanaan/2012/12/wn-g150um-on-ra.htmlpi@navio-rpi ~ $ sudo vi /etc/udev/rules.d/network_drivers.rulesACTION==””add””,SUBSYSTEM==””usb””, ATTR{idVendor}==””04bb””, ATTR{idProduct}==””094c””, RUN+=””/sbin/modprobe -qba 8192cu””pi@navio-rpi ~ $ sudo vi /etc/modprobe.d/network_drivers.confinstall 8192cu /sbin/modprobe –ignore-install 8192cu $CMDLINE_OPTS; /bin/echo “”04bb 094c”” > /sys/bus/usb/drivers/rtl8192cu/new_idアクセスポイント化する前にとりあえずクライアントとしてつながるかどうかを確認。pi@navio-rpi ~ $ sudo nano /etc/network/interfacesauto loiface lo inet loopbackiface eth0…

Continue reading...