今回はRaspberry PiやJetsonなどのマイコンを使ったプログラミングや、電子工作での回路作成の際に押さえておきたい基礎知識を解説します。
解説する用語は、ハードウェアが絡む組込みシステムなどでは頻繁に登場しますので、ぜひ覚えてみてください。
また、Raspberry PiやJetsonに関連する記事を以下のページでまとめていますので、あわせてご覧ください。
![](https://murasan-net.com/wp-content/uploads/2022/04/IOTIMGL3520_TP_Vec-300x200.jpg)
![](https://murasan-net.com/wp-content/uploads/2022/10/109249311957a9768da5e450028-3-700x300-1-300x129.jpg)
アナログ-デジタル変換(Analog-to-Digital Conversion、ADC)
アナログデジタル変換(Analog-to-Digital Conversion、ADC)は、アナログ信号をデジタル信号に変換するプロセスです。
例えば、アナログテレビの信号をデジタルテレビで視聴する場合や、アナログのテープデッキからデジタルオーディオプレーヤーに音楽を転送する場合などで使用されます。
サンプリング周波数
サンプリング周波数は、アナログ-デジタル変換器が信号を正確に変換する能力を表す指標の一つです。サンプリング周波数は、変換器が信号を分解する際に、信号を測定する回数を表します。
サンプリング周波数が高ければ高いほど、変換器は信号をより精密に分解することができます。たとえば、サンプリング周波数が1 kHzのアナログ-デジタル変換器は、1秒あたり1,000回信号を測定することができます。一方、サンプリング周波数が2 kHzの変換器は、1秒あたり2,000回信号を測定することができます。
サンプリング周波数は、信号の特性や利用するアプリケーションによって異なる値が求められます。例えば、サンプリング周波数が低すぎると、信号に含まれる高周波成分が欠損してしまうことがあります。サンプリング周波数を正しく設定することで、信号を正確に変換することができます。
ただし、サンプリング周波数だけでアナログ-デジタル変換器の質を測るのは不十分です。変換器が信号を正確に変換するためには、分解能やダイナミックレンジなどの指標も考慮する必要があります。
分解能
分解能は、アナログ-デジタル変換器が信号を正確に変換する能力を表す指標です。分解能は、変換器が信号を分解する最小単位を表すビット数で表されます。分解能が高ければ高いほど、変換器は信号をより精密に分解でき、より正確に変換することができます。
たとえば、8ビットのアナログ-デジタル変換器は、信号を256(2^8)のレベルに分解することができます。一方、16ビットのアナログ-デジタル変換器は、信号を65536(2^16)のレベルに分解することができます。分解能が高い変換器は、低い分解能を持つ変換器よりも、より正確な変換を行うことができます。
量子化
量子化は、アナログ信号を複数のレベルに分類することを指します。
例えば、アナログ信号を8ビット(256レベル)で量子化する場合、アナログ信号の範囲を256分割して、それぞれのレベルに対応するデジタル信号値を割り当てます。そのため、アナログ信号が変化するたびに、それに対応するデジタル信号値も変化します。
量子化は、アナログ信号をデジタル信号に変換する際に、決められたレベルに分類することで、データをより効率的に保存することができるため、ADCで重要なプロセスとされます。ただし、量子化には誤差が生じるため、量子化のビット数を適切に決める必要があります。
ダイナミックレンジ
ダイナミックレンジは、アナログ-デジタル変換器が信号を正確に変換する能力を表す指標の一つです。ダイナミックレンジは、変換器が信号を分解する際に、最大と最小信号レベルを持つ信号間の差を表します。
ダイナミックレンジが大きければ大きいほど、変換器は信号を正確に分解することができます。たとえば、ダイナミックレンジが80 dBのアナログ-デジタル変換器は、信号の最大レベルから最小レベルまで80 dBの幅を持つ信号を正確に分解することができます。一方、ダイナミックレンジが60 dBの変換器は、信号の最大レベルから最小レベルまで60 dBの幅を持つ信号を正確に分解することができます。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
デジタル-アナログ変換(Digital-to-Analog Conversion、DAC)
デジタルアナログ変換(DAC)とは、デジタル信号をアナログ信号に変換する処理です。DACは、デジタルオーディオやデジタルビデオなどの様々な分野で活用されています。
サンプリング周波数
DAC(デジタル・アナログ・コンバータ)のサンプリング周波数とは、デジタル信号をアナログ信号に変換する際に、1秒間に何回変換を行うかを示す周波数です。
DACのサンプリング周波数は、アナログ信号の波形を正確に再現するために、十分に高い値が必要です。そのため、DACのサンプリング周波数は、アナログ信号の波形を再現するにあたり、重要な指標となります。
例えば、サンプリング周波数が低い場合、アナログ信号の波形が正確に再現できず、高周波成分がカットされることがあります。これを「アリアリング」と呼び、アナログ信号の精度が低下することになります。
DACのサンプリング周波数を決める際には、アナログ信号の波形を再現する必要がある場合は、十分に高い値を指定する必要があります。また、処理速度や電力消費などの観点からも、適切なサンプリング周波数を決める必要があります。
分解能
DACの分解能とは、デジタル信号をアナログ信号に変換する際に、どの程度精密に変換することができるかを示す指標です。
DACの分解能は、ビット数によって決まります。例えば、8ビットDACでは、256種類(2^8)の異なるデジタル信号をアナログ信号に変換することができます。そのため、8ビットDACの分解能は、256分の1となります。
一方で、16ビットDACでは、65536種類(2^16)の異なるデジタル信号をアナログ信号に変換することができます。そのため、16ビットDACの分解能は、65536分の1となります。
DACの分解能が高いほど、デジタル信号をアナログ信号に変換する際に、より精密に変換することができます。したがって、DACの分解能は、アナログ信号の精度や再現性に影響を与える重要な要素となります。
データレート
DAC(デジタル・アナログ・コンバータ)のデータレートは、デジタル信号をアナログ信号に変換する際に、1秒間に変換するデータ量を示す指標です。データレートは、変換するデータのビット数とサンプリング周波数から計算されます。
例えば、16ビットのデータをサンプリング周波数が48kHzで変換する場合、データレートは16*48000=768000bps(ビット/秒)となります。
インターポレーション
DAC(デジタル・アナログ・コンバータ)のインターポレーションとは、デジタル信号をアナログ信号に変換する際に、デジタル信号の間に新たなデータを挿入してアナログ信号を補間する処理のことを指します。
インターポレーションは、デジタル信号をアナログ信号に変換する際に、波形をより平滑にするために行われます。例えば、デジタル信号が2つ並んでいる場合、その間に新たなデータを挿入することで、アナログ信号の波形がより平滑になります。
インターポレーションは、DACの分解能を改善する手段としてよく使われます。分解能が低いDACでは、データが少ないため、波形がカクカクしていることがあります。そのため、インターポレーションを行うことで、波形をより平滑にすることができます。
ダイナミックレンジ
DAC(デジタル・アナログ・コンバータ)のダイナミックレンジとは、デジタル信号をアナログ信号に変換する際に、アナログ信号の振幅の範囲を示す指標です。
ダイナミックレンジは、アナログ信号の振幅の範囲を示すdbFS(デシベル)単位で表されます。dbFSは、最大振幅を0dbFSとして、振幅を表す単位です。
例えば、DACのダイナミックレンジが90dbFSの場合、アナログ信号の振幅の範囲は、最大振幅から90dbFS分小さい振幅までとなります。
DACのダイナミックレンジは、アナログ信号の精度や再現性に影響を与える重要な要素です。ダイナミックレンジが低い場合、アナログ信号の振幅の範囲が狭くなるため、波形の変化が小さくなることがあります。また、ダイナミックレンジが高い場合、アナログ信号の振幅の範囲が広いため、波形の変化が大きくなることがあります。
DACのダイナミックレンジを決める際には、アナログ信号の振幅の範囲をどの程度必要とするかを検討する必要があります。また、アナログ信号の精度や再現性を維持するためにも、適切なダイナミックレンジを決める必要があります。
出力インピーダンス
DAC(デジタル・アナログ・コンバータ)の出力インピーダンスとは、DACから出力されるアナログ信号を受け取る装置(例えばアンプやスピーカーなど)に対する阻容抵抗のことを指します。
出力インピーダンスは、DACから出力されるアナログ信号の振幅や音質に影響を与える重要な要素です。出力インピーダンスが低い場合、アナログ信号の振幅が大きくなるため、音圧が大きくなることがあります。また、出力インピーダンスが高い場合、アナログ信号の振幅が小さくなるため、音圧が小さくなることがあります。
出力インピーダンスを決める際には、DACから出力されるアナログ信号を受け取る装置のインピーダンスとの相性を考慮する必要があります。また、アナログ信号の振幅や音質を維持するためにも、適切な出力インピーダンスを決める必要があります。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
シリアル通信
シリアル通信とは、1 ビットずつ順番にデータを送受信する通信方式のことを指します。
中でも、SPI通信とI2C通信はマイコンと外部機器を接続する際に良く使用されます。Raspberry PiやJetson、ArduinoなどのマイコンボードにはSPIやI2Cの専用ピンが用意されており、周辺機器はこれらの通信方式を採用しているものが多数販売されています。
SPI通信
SPI(Serial Peripheral Interface)は、マスターとスレーブの間でデータを高速にやり取りするために使われる通信プロトコルです。
SPI 通信では、1 台のマスターが複数の台のスレーブに対してデータを送信し、同様に複数の台のスレーブからデータを受信することができます。マスターとスレーブの間では、4 本の線を使用して通信を行います。これらの線は、クロック(SCLK)、データ入力(MOSI)、データ出力(MISO)、およびセレクト(SS)です。
SPI 通信では、クロック信号を使用してデータを同期します。マスターは、クロック信号を生成し、これを使用してデータを送信することができます。スレーブは、このクロック信号を受信し、それに同期してデータを送信することができます。
I2C通信
I2C(Inter-Integrated Circuit)は、マスターとスレーブの間でデータを送受信するために使われる通信プロトコルです。I2C 通信では、1 台のマスターが複数の台のスレーブに対してデータを送信し、同様に複数の台のスレーブからデータを受信することができます。
I2C 通信では、2 本の線を使用して通信を行います。これらの線は、クロック(SCL)とデータ(SDA)です。I2C 通信では、クロック信号を使用してデータを同期します。マスターは、クロック信号を生成し、これを使用してデータを送信することができます。スレーブは、このクロック信号を受信し、それに同期してデータを送信することができます。
![](https://murasan-net.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
まとめ
今回はマイコンや電子工作で登場する専門用語について解説してみました。
これらの用語が登場した際はぜひ思い出してみてください。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。
![](https://murasan-net.com/wp-content/uploads/2023/01/startup-593324_1280-300x200.jpg)
スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。
![](https://murasan-net.com/wp-content/uploads/2023/01/computer-6977449_1920-300x200.jpg)
それでは、また次の記事でお会いしましょう。
\ Raspberry Piを使ったアプリ開発を学びたい人には自宅で学べるUdemyがおすすめ! /
講座単位で購入できます!
コメント