2015/09/23

Twe−Liteでのファームウェア開発

最近ラボの実験で東京コスモス社から出ている無線モジュールのTwe−Liteでのファームウェア開発を行っています.
これの開発を行うまでの敷居が自分にはかなり高く最初いくつか躓いたところがあったので,実験が終わったらその部分を書き残していこうと思います.

2015/09/06

zsh_historyがおかしい

何らかの原因でシェルでコマンドを打つと
zsh: corrupt history file /home/pi/.zsh_history
と表示されるようになってしまった

zsh_historyを見てみるとおかしな行があった


150行目が明らかにおかしい
ここを修正したら元通りに使えるようになった

2015/08/26

RaspberryPi2のセットアップ2

以前無事に起動用のSDカードを作ったので次は起動して初期設定

まずはラズパイにwifiドングルとキーボードを挿してHDMI接続してログイン
ログインすると raspi-configが立ち上がる
まずはここで expand_rootfsの設定変更  これでSDカードの全容量を使用することが出来る
 
raspi-configを抜けだしたらstartxでデスクトップ環境を立ち上げる

ちなみに使用したwifiドングルはこれ↓
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
プラネックス (2013-09-06)
売り上げランキング: 341
デスクトップ環境で右上にあるアイコンをクリックして適当に自分のwifi環境を設定する


これができたらSHHするためにifconfigコマンドを叩いて自分のIPアドレスを調べる
デスクトップ環境での設定はひとまずこれだけ

自分のメインマシンからのほうが環境構築がしやすいのでSSHしながらシェルの設定gitの設定を進めていく

しばらくSSHしながら設定していくときにどうも反応が遅いことに気がついたためしにラズパイにpingを投げてみると平均50ms以上......遅い時には100ms以上かかるときもある

原因を探ってみると 無線LANのUSBアダプタのパワーマネジメント機能という物のせいだとわかった
このサイト(http://denshikousaku.net/fix-sluggish-response-of-raspberry-pi-wifi-adaptor)を参考にパーワーマネジメント機能の切り方3を試したら応答速度が劇的に改善された

パワーマネジメント機能はwifiネットワークがしばらく使われていないと自動的にセーフモードになる機能らしい.SSHしてしばらく考え込んでいるとすぐにこのモードに入ってしまうので再立ち上げまでに時間がかかって反応が悪かったみたいだ

今回このパワーマネジメント機能をオフにしたがラズパイの消費電力は5Wほどとたいして多くないので ,24時間一ヶ月稼働させていたとしても100円かからないくらいなのであまり気にしない方向でいこうと思う

2015/08/16

RaspberryPi2のセットアップ1

MacでRaspberryPi2のセットアップをしました.
2といってもやることはこれまでのラズパイと同様で起動用のSDカードを作るだけ.
ただ久しぶりにやったら書き込みのところですこしつまってしまった.



手順としては,最初にここから最新版のrasbianイメージをダウンロード
https://www.raspberrypi.org/downloads/

次にそのイメージをddコマンドでSDカードに書き込むだけなのだが二度も失敗した...ヽ(`Д´#)ノ

ddコマンドで書き込む前にSDカードをFATでフォーマットする





ディスクユーティリティでRASPIと名づけてフォーマット


%df -h
Filesystem      Size   Used  Avail Capacity  iused    ifree %iused  Mounted on
/dev/disk1     373Gi  118Gi  254Gi    32% 30974348 66681898   32%   /
devfs          189Ki  189Ki    0Bi   100%      655        0  100%   /dev
/dev/disk0s4    92Gi   77Gi   15Gi    84%   368543 16000081    2%   /Volumes/BOOTCAMP
map -hosts       0Bi    0Bi    0Bi   100%        0        0  100%   /net
map auto_home    0Bi    0Bi    0Bi   100%        0        0  100%   /home
/dev/disk2s1    15Gi  2.3Mi   15Gi     1%        0        0  100%   /Volumes/RASPI 

dfコマンドで先ほど作ったディスクのデバイスの場所を確認
disk2s1と書いてあるがこれが罠だった(# ゚Д゚)
どうやらこのdisk2s1はSDカード内のパーティションを表しているらしい
なのでddコマンドでここに書き込むとラズパイに正しく認識されない

正しいコマンドは

%sudo diskutil unmount disk2s1
%sudo dd bs=1m if=2015-05-05-raspbian-wheezy.img of=/dev/disk2

になる
ddはifで書き込み対象のイメージofで書き込み先のディスクを指定している
bsオプションは書き込みを早くするためのおまじない
これで作られたディスクがちゃんとMacに認識されていれば成功だ
自分の環境だとbootという名で認識されていた

2015/08/15

iterm2の終了設定

わたしは,Macのターミナルソフトとしてiterm2を使っています
このiterm2の良さはショートカットキーを押せばいつでもどこでもターミナルを呼び出せるところにあります.が,ショートカットキーで呼び出すためにはiterm2を起動しておく必要があります.そのためにMac起動時にiterm2も起動するように設定しています.

ただデフォルトだとこのiterm2は終了するときに


このようなダイアログボックスが出てきます.
このダイアログボックス何が問題かというと,Macのシステムを終了しようとした時にも出てきてOKを押すまでシステムが終了できないというところに個人的に不便さを感じています.しかもこのダイアログボックスがウインドウのかなり下の方に埋まっていることが多いです.

そこで設定を変えました.⌘+,で設定画面を呼び出して


Closing項目にある Confirm "Quit iTerm2 (⌘Q)" command のチェックを外します.
これで個人的に不便さを感じていたところが解消出来ました.

2015/08/13

ダイソーのLEDライトを分解

近くにパーツショップがない状態で急きょLEDが欲しくなったのでダイソーで「ショートランチャー9LED」という名前のLEDライトを購入した.





これを分解するときにちょっとコツが必要だった

まず最初に下部をひねって電池を取り出す


するとこんな感じでLEDが乗ってる基板が見える

そこで,これの外し方だが手前に引っ張っても外せない
なのでマイナスドライバーと木槌を使って基板の四隅を叩いて押し出す


そうすることで,まず表についてるクリアパーツががずれて,次に銀色のパーツが外れ,最後に基板が出てくる.

今回はLEDだけが欲しかったので基板を壊す覚悟でマイナスドラーバーを使って押し出したがすべてのパーツで破損場所を出すことなく取り出すことができた.

2015/07/22

macの外付けキーボードの設定

最近MacBook Airの英字配列キーボードに慣れてしまったせいで別で使っているノートPCでも英字配列のThinkPadキーボードを使うようになった。

このキーボードをMacBook Airで使おうと思ったときに組み込みキーボードで変更していた設定が適応されていないことに気がつたのでその解決法を


まずは環境設定を開いてキーボードの項目を開く

その中の修飾キーの項目を開く


 キーボードを選択のプルダウンメニューを組み込みキーボードから外付けキーボドに変更
今回はCapsLockをつぶしてControl に変えたかったのでそこだけ設定を変更

特に設定しないでもWinキーはComandキーとして動作する…がこのキーボードにはWinキーがひとつしかついていない。普段は右Control空打ちでカナ、左Control空打ちで英字の切り替えをしている。この設定が物理的に使えない

そこでKarabinerのForJapaneseの中にあるFor Unix Usersの設定を追加した


2015/05/13

AtomwearをPCにつなぐ その1

前回紹介したAtomwearプリインストールアプリが動いただけじゃ何も面白く無い!ということでPCにつないでみました。

とはいったもののPCに接続するための資料が全然ない…(-_-;)
それに公式が出してるデバッグポートの画像は6ピンで手元にあるものは24ピン。え?
なにこれ。

AtomwearのGit見に行ってもデバッグポートのピンアサインが書いてない…どうすりゃいいんだ状態
いつまで考えていても答えは湧いてこないのでとりあえず「Atomwear」で画像検索
出てきたこの画像を頼りにピンを推定することにした。


UART接続を目指してるので、基盤とにらめっこしながらUART_TXとUART_RX、GNDのピンをさがした結果、2番ピンがRX4番ピンがTX5番ピンがGNDと分かった。
これを頼りにスイッチサイエンスのUSBシリアル変換基板と接続
2番ピンを変換基板側のTX4番ピンをRX5番ピンをGNDに接続

PC側で適当なシリアルモニタソフトを起動。
試行錯誤しながら、値が読み取れる設定を探していく。
baud rateを115200に設定しBLEボードのボタンを押したところ何やら意味のある文字列を拾うことができた。
tempモードに入ったらしい……ただし何をしたらいいのかわからない(´・ω・`)

プログラムのアップロードはシリアルからバイナリファイルを何かしらの方法で投げるのかな?と予想を立てながら今回はここまで、また進捗が出たら報告します

2015/05/12

Atomowearをさわってみる

Giayee社がキックスターターで出しているatomwearというデバイスをさわってみた。
http://www.giayee.com/bluetooth-bracelet/atomwear.html

どんなデバイスかというとコネクタがいくつかついたフレキシブルな基盤に自分の好きなモジュールを載せてオリジナルのスマートウォッチが作れるというもの。

セットには以下のモジュールが入っていた
・USBモジュール
Atomwearに電力を供給するためにしか使えないモジュール。USBによるデバッグは不可能。
赤と緑のLEDがついていて緑のLEDは通電を示している。
赤のLEDはバッテリー充電中に付く。充電が終われば消える。

・三軸加速度と気圧センサーモジュール
高度と気温も取れる。

・Versatile 9DoF sensor module
I2Cの三軸ジャイロと三軸加速度と三軸地磁気センサーが入ってる。

・BLE MCUボード
ユーザが動作を定義可能なLEDが2つとスイッチがついてる。
BLE MCUのnRF51822が載ってる http://qiita.com/mkftr/items/6144fbb3f20e124731bf
・有機ELディスプレイモジュール
64×32ドット いくつかのプリセット絵文字とアルファベットが表示できる。

・バッテリーモジュール
容量40mAh MCUにバッテリーレベルを送る機能がついてる。

・デバッグポートモジュール
SWDとUART通信に対応している。



こんな感じでモジュールが入っていたので早速適当に組み立ててみた。
とりあえずベース基盤に給電用USB、ディスプレイ、BLEボード、各種センサを載っけて給電……動いた!
どうやらプリインストールのアプリが入っていた模様
BLEボードについてるボタンで、万歩計モードと温度計モードの切替ができるようになってる。

2015/04/26

win10のテクニカルプレビュー新ビルドをクリーンインストール

久々の更新です
以前Macbookに入れたwin10をあまり使わないまま放っておいたらその時のビルドでのサポートが切れていたので新しいビルドのisoを落としてきてクリーンインストールしました
その時にちょっと引っかかったところがあったのでメモ

まずはここからisoを落としてサクッとbootcampアシスタントでbootcamp用ディスクを作った

作ったディスクで切り分けたパーティションにwin10をインストールする
しばらくするとwin10のインストールが終わる

デスクトップ画面に行くと何故か無線LANを拾わない……(^_^;)?
これはbootcampのインストール失敗したか?と思ってもう一度同じ手順でクリーンインストールしたが結果は変わらず……

よくよく調べているとmacのハードウェアをWindowsで使うためのドライバが入っていないことに気がつく 
このドライバは作成したディスクのbootcampフォルダ内のsetupを動かすことでインストールできる

無事にドライバインストールが完了してネットに接続できたので 次にWindows Update
しようと思ったが何処にあるかわからず少し悩んだ

場所はここだった
Winキーを押してスタートメニューを表示、そこの項目にある 「設定」を選択
その中の「保守と管理」にWindows Updateが入っていた

これでやっと無事に最新版にアップデート完了 

今回も多分ほとんど使わないで評価期間過ぎちゃうかな…( ゚ρ゚ ) 

2015/01/18

水中でWi-Fi Bluetoothは使えるのか

水中でWi-Fi Bluetoothは使えるのかという実験をしました。

表皮効果(http://stack-elec.co.jp/?p=273)というものでどれくらいの深さまで電磁波が侵入出来るのかを求めることができるらしいです。

そんな小難しいことは置いておいて実験してみました。


とある事情から画像のような球体を水に沈めて実験します。

まずはwifiの実験。
ニコニコ生放送でストリーミング受信しているiphone5cを球体の中に入れて水に沈めます。
1.地上で球体の中に入れた状態では普通に受診可能
2.水に浮かべて半分が浮いている状態でも問題なし
3.水に球全体が沈むようにしても問題なし
4.そこから少しずつ沈めていくと3cmほど沈めた地点で受診が不可能に

このような結果になりました。


次にbluetothの実験
iphone5cでbluetoth経由でスピーカーに接続、これを音楽を流した状態で球体の中に入れて水に沈めます。
1.地上で球体の中に入れた状態では通信に問題なし
2.水に浮かべて半分が浮いている状態でも問題なし
3.水に球全体が沈むようにしたら接続が断続的に(0.5sくらいおきにぶつぶつ切れる)
4.その状態で水槽の限界まで沈めていくと接続が切れる時間がだんだん長くなり一番下に沈めた状態で5秒ほどでスピーカーから切断された

このような結果になりました。

今回使ったwifiの規格は11gで2.4Ghz帯、bluetothも2.4GHz帯、表皮効果によると通信周波数が大きいほど浸入可能距離が短くなることが分かります。なので5GHz帯の規格のwifiだとさらに悪い結果になると考えられます。

ちなみに潜水艦どうしが通信するときは水中音響通信(http://www.jamstec.go.jp/maritec/j/development/auv/uacs/) という低い周波数帯の超音波を使った通信を行っているらしいです。
周波数が低いために送れる情報が少なくなってしまうため暗号化して通信を行うことは難しいらしいですが。

今回の実験では手で球体に触れた状態で沈めていたので、手がアンテナ代わりになってしまって通信の手助けをしていた可能性も考えられます。
どちらにしろ水中に沈めた状態でwifi、bluetothを使った地上との通信は現実的ではないという結果になりました。

2015/01/06

Win10コンソールの文字化け問題

VisualStudioでプログラムを書いていて、コンソールに出力してデバッグするときに日本語が文字化けすることに気がついた。

原因は文字コードなのかなと思ってコンソールのプロパティを見てみるとSJISに設定されている。ただがこれを変更するボタンが見当たらない。

次にFontタブを見るとFontの選択肢にMSゴシックとRasterFontの2つがある
なんとなくこれをMSゴシックからRasterFontに変えてみたら何故か問題が解決された。
これはRasterFontには日本語が入っていて英語版win10にはMSゴシックが入っていないせいで起こった問題なのかな…?

後から分かったことなのだがchcpコマンドで現在設定されている文字コードの確認、変更ができるらしい

2015/01/03

VisualStudio2013の行数表示設定と仮想空白文字の設定

VisualStudioを入れたので行数の表示を行いました。
インストール後多分一回しか行わない設定なのですが、ヴァージョンを変えるごとに設定し直すと思います。ただ毎回忘れてしまいググることになるのでメモとして残していきます。

[ツール]→[オプション]で表示されるオプションウインドウの
[テキストエディター]→[すべての言語]→[全般]
ここにある「行番号」のチェックを入れます。
これで完了

しかし、この時に手違いで「仮想空白文字を使用」にもチェックを入れてしまったため、エディター内のすべての行の未入力の部分に仮想的に空白文字が入っている形になってしまっていて、これに気がつくまですごく不便でした。この設定って何か特をするのだろうか…(゚Д゚)

MacUSキーボードのWin環境下でのキーバインド変更

実家に帰ると13インチMacBookAirが3つもあってどれが誰のだかわからなくなるのでさくっと作成
MacBookAirでwin10をBootCamp環境で使い始めて不便な点がいくつか見えてきたので少しずつ改善しています。

BootCamp+Winでのキーバインド変更は「AppleKbWin」というソフトを使うのがメジャーらしいですがこのソフトをインストールしてみたところWin10環境下ではキーバンドの変更を適応するボタンが表示されなかったため正しく使うことができませんでした。

そこで以下の点をAutoHotKeyでリマップしました

・Google日本語入力のON OFF切り替えが「Alt」+「~」で打ちにくい
「Win」+「Space」に変更
 #Space::vkF3sc029

・CapsLockいらない
「Ctrl」に変更
 CapsLock::LCtrl

・右手の位置にある「Win」「Alt」の変更
「Win」を「Alt」に「Alt」を「Ctrl」に変更
RWin::RAlt
RAlt::RCtrl

この他に左側にある「Fn」キーと「Ctrl」を入れ替えたかったのですが「Fn」キーは厳密にはキーボードのキーではなくスイッチのようなものらしいです。なので入れ替え不可……(゚Д゚)ハァ?
http://www.sd-dream.com/pasocompass/Column/AdjustKBD.html

Biosの設定で入れ替えられる機種もあるようですがMacだとよくわからなかったので、もうちょっと 戦ってみます。


次にトラックパッドのジェスチャー
マックみたいに 2本指スワイプで「進む」「戻る」がやりたくて探していたらTrackPad++なるものを見つけました。
http://trackpad.powerplan7.com/

問題なくWin10で動いたのでいろいろ設定
結果4本指のスワイプで目的の機能は実現できました。

これでだいたいストレスなく使えるようになったかな(/・ω・)/