2018年5月3日木曜日

Raspberry-Pai と Arduinoで簡易オシロスコープを作る

九州工業大学から、Arduinoを使った簡易オシロスコープが公表されており、実際に試した人が多かったのでトライしてみた。しかし、なかなかすんなりとは行かなかったので、メモとして記録しておく。

九州工業大学から公表されているページは次の通り。
http://www.iizuka.kyutech.ac.jp/faculty/physicalcomputing/pc_kitscope/


これに従って作業を進めれば良いだけのことだが、PCとArduinoを組み合わせてオシロスコープにするので、PC側の表示画面も用意しないといけない。これはProcessingを使って作られているとのこと。
Arduinoは今Raspberry-Paiで動いているので問題ないが、ProcessingをRaspberry-Paiで動かす必要がある。
まずはProcessingのインストールから。

ダウンロードは
https://processing.org/download/
から行う。
ラズパイなので、LinuxARMv6hf を選択するが、すぐ寄付のページになってしまう。寄付をせずにダウンロードもできるようだが、どこからどう進むのかが全くわからない。「寄付をせずにダウンロード」といったチェックマークも見当たらない。ネット上で探してみると、すんなりダウンロードできた例もあり(ほとんどがそうだろうが)、ブラウザによって違いがあるのかもしれない。ちなみに手元のスマホでやってみたら、同じように寄付のページは出るものの、並行してダウンロードが行われていた。もしかしてと思って見たが、Daunloadsのホルダーには、それらしきファイルは見当たらなかった。

結局「LinuxARMv6hf」にマウスのカーソルを持っていって右クリック、メニューから「リンクのアドレスをコピー」を選択して、新しいタブでアドレスを指定してダウンロードを行った。
ダウンロードしようとすると、この寄付の画面が出て、寄付をしないと進めない?
カーソルを「LinuxARMv6hfに合わせたら、右クリックでメニューを表示させ、
「リンクのアドレスをコピー」を選択。新しいタブに貼り付けてダウンロードを行う。

ラズパイへのインストールは不慣れで苦労したが、単に勉強不足というだけのこと。結局問題なくインストールが完了し、デスクトップ上にアイコンもできた。立ち上げてみると、ArduinoのIDEのような感じでスケッチの書き込みウィンドウが立ち上がる。

続いてProcessing、Arduinoのスケッチをダウンロードする。九州工業大学のページにはダウンロードのアイコンがあるので、そこをクリックする。しかし・・・。
「サーバーへのリクエストは拡張機能によってブロックされています。」
という表示が出てダウンロードできない。
このメッセージで検索をして解決法を探した。その結果ブラウザの「Chromiumの設定」メニューから、「その他のツール」→「拡張機能」を選択すると、いくつかのアイコンが並んでいて、その一つ「uBlock Origin 1.15.2」の「有効」についているチェックを外すことでダウンロードができるようになった。

ダウンロードできない

uBlock Origin 1.15.2」の「有効」についているチェックを外す








後はダウンロードしたProcessing、Arduinoのそれぞれのスケッチを動かすだけだが、Processingでオシロスコープのスケッチを立ち上げた状態では、Arduinoのボード書き込みがエラーとなった。止めたらOKだったので、余計なプログラムは止めてボードの書き込みをする必要があるようだ。
arduinoを動作させていないと、この画面が出る

オシロスコープとして使うためには、Arduinoに若干の配線が必要のようだが、とりあえずPCの表示も含めて動きそうかどうかはボードを繋いだだけで確認できる。

使用環境
Raspberry Pai3 ModelB V1.2(Raspbian
Arduino UNO(互換品KumanUNO)、nano(互換品Elegoo) ボードバージョン1.6.20で使用。(1.6.21ではnanoへの書き込みがエラーになるため)

オシロスコープらしくする
Arduino Nanoをケースに入れ、BNCのコネクタをつけてみたのが下の写真。ケースは100円ショップにあったカードケース。測定用ケーブルはアマゾンから2本347円で購入した、先端がミノムシクリップになっているもの。(クリップは付替え)

ケースは105X75X30mmのカードケース
Arduinoで発生させたSin波形を測定中。
これは外部にDAコンバータをつけたもの。


実際に波形を表示させてみる
やはりArduinoでスケッチを作り、サイン波形を出力させたものを表示してみた。
Digital OUTを8ビット使い、抵抗で簡易にDAコンバートしたものである。
(詳細は別途)
1度ごとに計算しているので波形が階段状になっているのがわかる。
波形出力は0〜5Vだが、抵抗で1/2にして入力している。
デジタルオシロなので、波形がチラチラすることもない。アナログのオシロで同じ波形を見ると、周期が長いので画面がチラチラする。

スケッチの作りがよくないので、Sin波形の所々にヒゲが出ている。アナログのオシロだとヒゲはほとんど見えない。(出ていても輝度が薄くなってわからない)
サイン波形の周期は約67msとなっていて(10ms/div)、周波数にすると、約15Hzである。スケッチでいちいちSinθの計算をしつつ、D2〜D9に1ビットずつ順番に出力しているので、こんなに遅くなっている。
ArduinoでSin波形や三角波を出力させる方法は、外部にDAコンバータをつけるなど、もっといいやり方があると思う。(別途実験をしている)
ただ、実際に出力波形を測定に使うのであれば、プログラマブルオシレータなどの専用の発振器を使用するのが現実的。

0 件のコメント:

コメントを投稿

INA219にはまる

 INA219電流センサーの互換品を買う。 互換品 オリジナル Adafruit Industries(エイダフルート) 商品レビューで評判が良くない。不良品が多すぎるという。 とはいえ全体の購入者数からすれば一部の人の評価だろうから、まあ大丈夫だろうと買う。 オリジナルの値段の...