United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

ラズパイにセンサー追加をオシロでデバッグしよう(その1)オシロの意義と準備

ラズパイを使った電子工作でどうしてオシロスコープがあると便利なのでしょうか。

回路が動かない時の原因は下記の二つであることが多いと思います。

(1)ソフトウェアのバグ

(2)ハード的に動いていない

上記のようなケースの原因の切り分けに一般的にオシロスコープが活躍いたします。

もう少し具体的にラズパイを使った電子工作でオシロスコープを使うメリットを述べますと下記の2点であることが多いです。

(*)ラズパイ工作で UART,I2C,SPI を使ったセンサーやデバイスが動かないとき、オシロスコープでデバイスの通信の信号を目視で確認できるので、ラズパイの出力が正しいか確認ができます

(*)プログラミング の出力を波形で目視で見れるので、プログラミングのミスが判明しやすくデバッグが効率的になります

次がラズパイとデバイスの通信をオシロスコープで計測した波形の例です。

通信に状態が良い波形とあまりよくない波形があります。このように波形の形状はロジックアナライザーでは確認できずオシロスコープでなければわかりません。波形の形の確認は特に後述の SPI 通信で重要になってきます。

image013_22128e6b3586364f43698d252f4401f4ac030519.jpg

図1- 1 ラズパイとセンサーの間の波形 (きれいな波形の例)

image024_d8cd20c28b790357704b7a6dcc4cc79116c4b654.jpg

図1- 2ラズパイとセンサーの間の波形 (きれいではない波形の例)

UART・I2Cで SPI もデジタル信号での通信になりますので、原則的にはプログラムの HIGH の出力は3.3Vで、LOW の出力は 0V です。この時に波形が綺麗な矩形波に近いほど忠実な動作につながります。図1-2の波形では0V から 3.3V の変化が綺麗な立ち上がりになっておらず矩形波の角が崩れています。

それでは、ラスパイでUART,  I2C と SPI を使って実践したいと思います。

ラズパイでのオシロの最初の一歩(オシロの基本的な使いかた習得が目的)

まず、公式のラズパイのホームページに行き、 Rasbian のイメージをダウンロードして SD カードに書き込みます。(https://www.raspberrypi.org/downloads/

次に、イメージを書き込んだSD カードを使い、ラズパイが問題なく起動することを確認してください。ラズパイに限らず組み込み系の開発では SD カードを起動イメージとして使うことはよくあります。その時にSD カードの品質により正常に起動したりしなかったりすることが多いのが実情です。評判の良いSD カードを選ぶことで、トラブルの時間の浪費を防げます。ラズパイで使った時の各SD カードの評判をネットで調べるのもよいと思います。今回、私はサンディスクと東芝のSD カードを使いました。

ところでオシロスコープを使う上で注意事項があります。オシロスコープを購入しますとよく壁コンセントの100V 交流波形を見たくなります。正しいオシロスコープの知識がなく壁コンセントの波形を計測しますと購入したばかりのオシロスコープが破壊されますので行わないでください。本編ではデジタル回路での使用に限定して紹介いたします。

次に気を付けるべき点はオシロスコープの入力端子の耐圧です。耐圧以上の入力がありますとこれもオシロスコープが故障いたしますので購入したオシロスコープの全面の表示を必ず確認してください(図1-3)。ラズパイの電子工作では 3.3V がほとんどで最大でも 5V ですので問題はありません。

image034_530476c1896cb5b85bac2264c34b60c9fa559dd4.jpg

図1- 3耐圧 150V 表示

次に購入したばかりですとプローブの補正が必要です。図1-4が購入時のプローブの先です。プローブの先にグランドにワニ口グランドとフック・クリップをつなげます(図1-5)。

image04_128ddb6739f5c8c8439dc5b98d23d641bd432ede.jpg

図1- 4購入時のプローブ

image05_0b8d7fd0f3b5cdf8eb013b463c0fb6c51504c417.jpg

図1- 5 ワニ口グランドとフック・クリップをつなげた状態

次にプローブをオシロスコープのチェンネル1と補正用端子につなげます(図1-6)。

image06_d703f7f4f05250997d1d1c5e7c7f6e630cf1a685.jpg

図1- 6補正のためにプローブを接続した状態

それではオシロスコープの電源を入れてチャンネル1表示のボタンを押します。画面に補正用の矩形波が見えると思います(図1-7)。

image07_f9237b24176a979f1be00a072bc81337d0fc4f90.jpg

図1- 7補正用波形が表示された状態

付属のプラスチック製のマイナスドライバーでプローブの根元にある調整用ねじを回してきれいな矩形波(アンダーシュートもオーバーシュートもない状態)になるように調整します(図1-8と図1-9)。

image08_73217b272624506417b2605f27c7d87c556506b2.jpg

図1- 8 プローブの調整ねじに付属のドライバーを挿入

image09_4733ab7d99166b26f96ada5475fdf153667e1172.jpg

図1- 9 ドライバーを右や左に回して矩形波になるよう調整(オーバーシュートしている)

image10_48cb4fedfa4847a622814c836a747dc1398f73cf.jpg

図1- 10 ドライバーを右や左に回して矩形波になった状態

同じ手順をチャンネル2用のプローブでも繰り返します(図1-11)。

image11_66414fca03be97eb3cd5a7351ac08c21f3c0cb18.jpg

図1- 11 チャンネル2のプローブの調整が終わった状態

オシロスコープの表示画面でチャンネル1とチャンネル2を区別しやすいように配色を変えてあります。今回はチャンネル1が黄色でチャンネル2が緑ですので、わかりやすいようにプローブのグリップ部分に色分けのリングを付けます(図1-12)。

image12_babddb2086a0d778e05cf66d93011b6067ccb2f5.jpg

図1- 12 チャンネル1とチャンネル2のプローブ

ここまできてようやくオシロスコープは使える状態になりました。

次にオシロスコープの操作で必須な垂直ノブと水平ノブの使い方を簡単に説明したいと思います。

先に垂直ノブです。オシロ前面にある黄色の大きく’1’と表示されたボタンを押すとチャンネル1の波形が黄色で画面に表示されます。黄色の回転ノブは大きいノブと小さいノブのペアになっています。大きいノブを回すと電圧が変わります。画面の縦の1目盛が 500mV や 1V と変わっていきます。今回は 3.3V を扱うのと、チャンネルを2つ画面に表示しようとする理由から、1目盛が2Vだと見やすいかもしれません。小さいノブを回すとチャンネル1の波形の画面上での位置を上下に移動できます。そのままだと縦目盛の中心が0V で波形が表示されますが、今回のように2つのチャンネルをひとつの画面で表示しようとするとチャンネル1とチャンネル2の波形が中心で重なってしまいます。そこで小さいノブを回してチャンネル1が画面上半分に表示されるように上に移動することができます。

次に水平ノブです。こちらも大きいノブと小さいノブとでペアになっています。大きいほうのノブを回すと縦目盛の時間が変わります。大きいノブを回して波形の横幅の調整ができます。小さいノブは同じ波形の表示位置を左右に移動させることができます。見たい波形が右のほうにあるときに小さいノブを回して見やすいように中心に持ってくるのに使います。

記事一覧:

* Summary - Project Leadership and developer under multi-cultural circumstance and cooperation with external team and/or open source communities. * Technical profile Developing flight controller. https://github.com/DCoJA/yatagarasu-red Library to enable GPIO, I2C and SPI on Linux Boards. http://www.96boards.org/blog/programing-i2c-devices-libmra Youtube channel https://www.youtube.com/channel/UCnda3kAWPcxMnDBoaSM6uXQ
DesignSpark Electrical Logolinkedin