2019/12/09

USBの違いによるRaspberryPi実行速度の検討

この記事はTDU CPS Lab Advent Calender 2019の8日目の記事です。
遅刻してごめんなさい。
7日目:https://hackmd.io/@QSzmG9ZlS9acsKsGbpLbvg/ryfVN3NTS
9日目:https://note.com/arm_omoshirokun/n/nf9b3067ce373

背景

以前Raspberrypi3B+経由でinsta360airで撮影したDualFisheye画像をRICOHThetaの形式に変換するソフトを作成し動かしている際に、使用するUSBケーブルによっては実行終了までの時間が2倍くらい違うことに気がついた。
そこで今回は手元にあったUSBケーブル3種類について実行時間がどれくらい変わるのか検証とその時のテスターの値を比べてみることにする。


実験装置

  • ラズパイ:RaspberryPi3B+(2019-07-10-raspbian-buster-full)
  • テスター1:RT-USBVAC3QC(ラズパイに差すUSBの電源側との間に接続)
  • テスター2:OWON B35(ラズパイのTP2、TP5間の電圧を測定)
  • USB電源:ECJ-PD45ACQ(5V2.4A出力)
  • 安定化電源:MCH-K3010D
  • テスト用コード
  • USBケーブル(後述)

実験1

アイドル時(電源入れた直後の何もプログラムを走らせないコマンド待受状態)とスクリプト実行時においてテスター1有りの実行時間とテスター1なしの場合の実行速度を3種類のUSBケーブルで比較

千石で買った50円のUSBケーブル

テスター1有り

テスター1 テスター2
アイドル時 4.89V 0.44A 4.77V
実行時 4.88V 0.49A 4.76V
実行時間(sec) 79.31349300000001

テスター1無し
テスター2
アイドル時 4.85V
実行時 4.82V
実行時間(sec) 32.011504


WioLTE同梱のUSBケーブル

テスター1有り


テスター1 テスター2
アイドル時 4.91V 0.45A 4.63V
実行時 4.86V 0.50A 4.60V
実行時間(sec) 75.418308


テスター1無し
テスター2
アイドル時 4.88V
実行時 4.87V
実行時間(sec) 31.965135


HL7800同梱のUSBケーブル

テスター1有り


テスター1 テスター2
アイドル時 4.94V 0.44A 4.72V
実行時 4.95V 0.49A 4.73V
実行時間(sec) 81.244389


テスター1無し
テスター2
アイドル時 4.79V
実行時 4.77V
実行時間(sec) 78.229005

実験2

実験1で電圧と実行時間の関係がいまいち見えてこないので安定化電源で電圧を変えながら実行時間を計測した結果が以下のグラフになる
5.0Vからはじめて4.0Vまで0.1V刻みで電圧を落として計測した。4.0Vを下回ると不安定になってきて3.7V以下でラズパイが落ちたためプロットは4.0V~
またOCも兼ねて5.5Vでの動作もさせてみたそれ以上はICが燃える危険性も考慮して行っていない。


考察

実験1、2の結果からRaspberrypi3B+は電源電圧が4.8V以上でより力を発揮できるように見える。また電源電圧を高めてOCしてもあまり効果がないこともわかる。
今回は参考リンクのモンテカルロ方による計算時間だけを見ているので他の方法で負荷をかけた場合はまた違ってくるかもしれない。

USBケーブルを選ぶ際の指標にケーブルの抵抗値なるものがあるらしいのでこれと電源電圧、引き出し電流の関係性を今後明らかにしていこうと思う。

結論

結論としてラズパイをフルスペックで動かすには良い電源を使いましょう。

2017/12/06

デルタ型3DプリンタBIQU Magicianの話

この記事はCPS Lab Advent Calenderの6日目の記事です。 5日目: Google Home のアプリ、簡単に作れます。 ~研究室 Hackな日々~ 7日目:

研究室の日々を書くためにB3で配属されてからこのブログを作って3年ほど、ほとんどこのブログに書けることがなく放置気味な現状です。
コンプライアンスとかNDAとかある関係でグレーゾーンにビクビクしながら書くよりかは放置を決め込んでいました。(ホントはめんどくさかっただけ)


前置きはこの辺にして、 タイトルのデルタ型3DプリンタBIQU Magicianにまつわる今年一年分の運を使い切った事件の話です。

我が家にはHICTOP Ender-2というXYプロッタ型の3Dプリンタがありました。
1ヶ月位は自作フィギュアを印刷したりして満足して使っていたのですが大きな正方形のモデルを印刷したときに問題が発覚しました。
この3Dプリンタ説明書通りに組み立てるとXY軸がどうやっても微妙垂直に組み付けできないために、印刷物がやや平行四辺形気味になってしまいます。
これは精度の必要なモデルを出力するときに大問題になってきます。


この問題を解決する方法としては
①3Dプリンタ筐体を大幅改造して垂直に組み付けられるようにする。
②そもそもXY軸の組付けに左右されないデルタ型3Dプリンタを導入する。
の2つを思いつきました。

特段急ぎではなかったので2つを実現するためamazonでお手頃なものをほしいものリストにどんどん放り込んでいきました。その中の1つBIQU Magician が事件を起こします。

12月2日の朝、目を覚ましてスマホを見るとamazonアプリからほしいものリストに入れたBIQU Magicianがセール中とのプッシュ通知が......当初から買うつもりだったので限定10個のタイムセールを手にするため即決でポチる。
注文内容を見るとどう考えても値段がおかしいがとりあえずもらえたらラッキーくらいな感覚で注文してみました。


 そして次の日......普通に届いて普通に動作しました。
現在も満足のいく精度で動作しているすばらしい3Dプリンタです。




 こんなに破格で買い物ができるチャンス次はそうそうこないと思いますが、これからはamazonアプリからセールの通知が来たら表示価格だけ見るのではなく、カートに入れて見積もりを出すところまで進んでから購入か否か決めようと思いました。





2016/12/09

コーヒーメーカーをハックした話

 この記事はCPS Lab Advent Calenderの9日目の記事です。
8日目: 研究室の Raspberry Pi (1才2ヶ月)に愛着が湧いている
10日目: 

はじめに
11階になぜコーヒーメーカーがあるか,まずそこからお話したいと思います.
わたしがラボに配属された2014年,その時は今のようにラボにはコーヒーを飲む文化がありませんでした.普段から家でコーヒーを飲んでいたわたしはラボに残留するようになってから,ラボでもコーヒーを飲みたいと思いコーヒーセットを持ち込んだのが始まりでした.

持ち込んだ当初は自腹を切ってコーヒー豆を買っていたのですが飲みたいという人が増えるようになり今でも続く20円課金システムが作られました.
システムが出来てうまく回るかのように見えたこの頃ひとつの問題が出てきました.それはわたし以外の人がうまくコーヒーを淹れられないという問題でした.

この問題を解決するためにハンドドリップを練習すればよかったものを,ちょうどこの頃セブンイレブンが100円のドリップコーヒーを始めたのもあり,均一な味を保証するためにコーヒーメーカーを買おうという流れになってしまい購入が決まりました.


コーヒーメーカー
買った当初は頻繁に使っていたコーヒーメーカーですが,アニメご注文はうさぎですか?の影響もありラボメンがハンドドリップの勉強をして淹れるようになったり,片付けと準備のめんどくささも相まって次第にホコリをかぶるようになっていきました.

ネットワークアタッチドコーヒーメーカー
コーヒーメーカーがホコリを被るようになって一年ほどたった頃日本でESP8266という激安wifiモジュールが流通をはじめました.これの習作として作ったのがネットワークアタッチドコーヒーメーカーです.

声に出してmaimaiに頼むと女の子の声で美味しいコーヒーを作ってくれるのでなかなか面白かった.
この頃はまだブレッドボードに実装されていたため先生がお客さんに「これすごいんですよー!」と言って説明するたびにどんどん壊れていってしまう大問題が起きていました.
そして壊れて誰も使わなくなった .


その後
ハックの影響でもともとあった物理ボタンが使えなくなったこともあり,誰も使えなくなってラボの片隅でホコリを被っているコーヒーメーカー,流石にオブジェとして置いておくのも邪魔なのでユニバーサル基板に実装し直してコーヒーメーカーにマウントさせるようにして復活させました.



・使い方
蓋をあけてドリッパーにコーヒーフィルターをセット
水タンクにの飲みたい量の水をセット
挽いたコーヒー豆を必要量フィルターにセット
大きな声で「OK maimai  コーヒー淹れて!」とmaimaiにお願いする
暫く待つとコーヒーの出来上がり

このコーヒーメーカー本当はコーヒーの好みに合わせて”うすい”,”ふつう”,”こい”の三種類の抽出方法が選べる仕様でしたがハックする際に手元にあったリレーの数の問題で”こい”しか選べないようになっています.これもmaimaiの愛嬌ととらえてもらえれば苦くても飲める!……はず

2016/12/04

スピーカーの電源を遠隔操作するIoT機器を作った話

この記事はCPS Lab Advent Calenderの2日目の記事です。
1日目:残留申請 Neo を作った
3日目: 岩井研残留日誌

日頃から残留したりラボのテレビを使ったりしたことがある人は,一度は使ったことや見たことがあると思うこの黒い箱についてのお話です.
アブソリュート・デュオのリモコン
まず,この黒い箱について説明する前に「アブソリュート・デュオ」システムに関してです


「アブソリュート・デュオ」システムとは
 このシステムはラボのネットワークとテレビの後ろにある 光る箱で構成されるシステムで,箱の中にはSpark CoreというWiFi接続可能なマイコンが入っていてこれが持っているAPIにアクセスすることでスピーカーの電源のON/OFFをしています.
テレビの裏の光る箱


どうしてスピーカーの電源を操作するのか
ラボのテレビには大迫力でコンテンツを楽しむためスピーカーが取り付けられています.
しかしこのスピーカーなぜか突然音が出なくなる時があります.そんなときに音が出るように戻すためにはこれまでの検証でわかっている方法は
1.テレビの音量をものすごく上げる
2.スピーカーの電源を入れ直す
の 2つがあります.1はテレビのリモコンが手元にあれば実践できますが音が戻ったときに大音量が流れてしまい下手したら近隣の研究室から苦情が来る可能性があるためあまりおすすめ出来る方法ではないです.
2はとても安全に行なえますが,わざわざスピーカーのもとまで歩いていかなければいけないためとっても面倒です.
そこで安全に音を出せる2を発展させて開発したのが「アブソリュート・デュオ」システムです.

黒い箱はなんなのか
3Dプリンタで出力された黒い箱,あれの中にはTwe-Lite(トワイライト)という超低消費電力で動作できる無線モジュールが入っています.
Twe-Lite
箱についているスイッチが押されると,これが無線を飛ばしてSpark Coreを操作……としたいところですがあいにくTwe-Liteが扱える無線はWiFiではないのでAPIを叩くことが出来ません.そこで一度RaspberryPiに受け取らせてそこからAPIを叩くようにしています.現在はmaimaiを運用しているRaspberryPiに電波受信用のTwe-Liteをつけてそこと通信しています.

クライアントいろいろ
このシステムは最初に説明した通りAPIを叩くことで動作します.なのでラボ内のネットワークにつなぐことが出来る端末ならなんでもアクセス可能なため,この黒い箱以外にもmaimaiやAndroidアプリ,Webアプリと行ったクライアントが存在しています.
ハードウェアのAPIを叩くのがIoTデバイス作成の大きな一歩になると思うので興味のあるB3生は是非クライアント開発やってみてください


2016/02/14

win10でログイン時にbluetoothキーボードを使う

すっごく久しぶりの投稿

年も明けて,新しくwin10のデスクトップマシンを組みました.
ケーブルばっかりのデスク周りをすっきりさせようと思い,bluetoothキーボードを購入しました.

これまで専用のドングルを使う無線キーボードを使ったことはあったのですがbluetoothキーボードの使用は初めてになります.

使ってみてしばらくして問題が発生......なんとログイン画面ではペアリングが行われていないためパスワードを入力するには,USBキーボードを使うかスクリーンキーボードで入力するかの方法しかない.

これだとせっかく無線化してデスクをすっきりさせる計画が台無しなのでいろいろ試行錯誤して解決しました.


やったことはbluetoothのペアリングを行うタスクの起動タイミングの調整です.

タスクスケジューラを起動して右側のウィンドウで[タスクスケジューラライブラリ]→ [Microsoft]→[Windows]→[Bluetooth]と移動




そこに出てくる”UninstallDev...”を右クリックでプロパティを表示
トリガータブに移動して新規追加











タスクの開始を”スタートアップ時”に設定してOK



これでリブートしてうまくログイン時にペアリングきていれば成功

元から存在しているタスクをいじるのでもしかしたら問題が発生するかもしれません.
ここに書いてあることを実行する場合は自己責任でお願いします.

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 のチェックを外します.
これで個人的に不便さを感じていたところが解消出来ました.