ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示
ラベル 電子工作 の投稿を表示しています。 すべての投稿を表示

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

結論

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

2015/09/23

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

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

2015/08/13

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

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





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

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


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

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


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

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

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を使った地上との通信は現実的ではないという結果になりました。

2014/12/14

arduino microでGPSモジュールを使う

 
T芝さんプロジェクトでGPSモジュールを使う必要が出てきたのでArdunoMicroに接続して動作チェックをしたときの覚え書きを残しておきます
Adafruit Ultimate GPS v3

まず配線の仕方、各ピンの仕様を知るためにAdafruitのサイトで確認

3.3vピン…モジュール内で3.3vに減圧して出力するピン
ENピン…GNDに接続されたときにモジュールの電源を落とす
FIXピン…モジュール右上にあるLEDと同じ出力がされてるピン
TX RXピン…マイコンのTX、RXピンと接続
GNDピン…GND
VINピン…3v~5.5vの入力で動く
PPSピン…"pulse per second"正確に50msことにパルスを出すピン

どうやら、ATMEGA32U4ボード(Leonrdo/Micro)の場合のサンプルスケッチは「leo_○○」を焼き込む必要がある(たぶんシリアルの仕様の違い)
ソフトウェアシリアルを使っているのでleo_echoなら8番ピンをTXと7番ピンをRXと繋ぐ
するとシリアルモニタで確認が可能になる

2014/12/13

Winでデバイスマネージャを出来るだけ早く起動する

WinでArduino開発を行っているとArduinoが乗っかってるポートを調べるためにデバイスマネージャを開く機会が頻繁にあると思います。何枚ものボードを使って開発しているとなおさらです。

これまでわたしはデバイスマネージャを開くために、
[スタート]→[コントロールパネル]→[ハードウェアとサウンド]→[デバイスマネージャ]
の手順で開いて今したがどうにもめんどくさい。

そこで調べてみたところ「Win」+「r」で [ファイル名を指定して実行]を呼び出し、「devmgmt.msc」を入力して実行するという方法を見つけました。
このメソッドを使うと従来の方法に比べ2つも手順を省くことが出来ますしキーボードからのアクセスが格段に早いと言うメリットがあります 。また一度この方法で「デバイスマネージャ」を実行すると [ファイル名を指定して実行]の履歴に残るので次回からのアクセスがさらに早くなります。

情弱なのでこんな便利なアクセス方法知らなかった......(。◔‸◔。)

2014/12/11

32×32フルカラーマトリックスLED

某将棋盤作成プロジェクトのためにセットアップしたのでメモ
https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/wiring-the-32x32-matrix
を参考にarduinoUNOR3に配線
左側についてるINPUTのピンに配線
※付属ケーブルの出っ張りがある側同士でピンが結線されてる

パネル側
R B R B A C C O
0 0 1 1     L E
            K
---------------
---------------
G   G   B D S
0   1       T
            B

arduino側
D D D D A A D D
2 4 5 7 0 2 8 1
              0
---------------
---------------
D G D G A A D G
3 N 6 N 1 3 9 N
  D   D       D

これでサンプルスケッチが動く

2014/12/07

microUSBからブレッドボードに電源を確保

マイコンへの5V給電用に、microUSBの電源ピンを取り出してブレッドボード用のピッチに変換する基板を組み立てました。

最初はピンを二本はんだ付けしてサクサクッと完成させる予定でしたがオプションのLEDを付けることにしました……がこのLEDと抵抗表面実装用のチップ型になっていて米粒のように小さい(☝◞‸◟)

ピンセットの左にある豆粒みたいなのがLEDと抵抗です。

チップLEDはカソード側に緑色のライン?マイナスマーク?が入っている事を知りました。
















最初こんなもの人間の手ではんだ付け出来るのか?と絶望したもののなんとか気合いで実装完了!
2つの素子を付けるだけなのに 30分ほどかけました(◞‸◟)

そして……見事に輝くLED!!
今後はこれを使ってマイコンの開発をしていきます。













表面実装に関してはコツをつかんだのでまたやる機会があればその時にまとめようかな。

それじゃあ今回はこの辺で(*´˘`*)

https://www.switch-science.com/catalog/1765/