Piでアナログ信号を読み取る方法にいて解説します。I2C接続で簡単に使用できますのでぜひ活用してみてください。Pi(ラズベリーパイ)はイギリスのラズベリーパイ財団が教育用に開発したボードコンピュータです。Cortex-A72が4コアとマイコンボードの中では非常に高速な処理能力を持っています。ユーザーがアクセス可能な40ピンのGPIOも搭載しており、外部ハードウェアを制御することが可能です。詳細なスペック等は以下の記事で解説していますので、あわせてご覧ください。ADコンバータ今回使用するADコンバータはTI(テキサスインスツルメンツ)が製造、販売しているADS1015を搭載したADCモジュールです。ADS1015を搭載したADCモジュールはAmazonで安価で入手することができます。アナログ→デジタル変換アナログ入力を4チャンネル使用でき、分解能は12bitとなります。接続はI2Cのシリアル通信となります。I2CADS1015スペックAD変換の詳細については以下の記事で解説していますので、あわせてご覧ください。PiやJetsonなどのマイコンを使ったプログラミングや、電子工作での回路作成の際に押さえておきたい基礎知識を解説します。Amazon調べ)口コミを見るAmazon楽天市場Yahooショッピングメルカリポチップハードウェアの接続こちらがADS1015モジュールの写真です。ADS1015の基板の背面には各端子の信号名が記載されています。Piとの配線を行いました。GPIO5番ピンのデジタル信号をON/OFFし、電圧値が正しく読み取れるかを実験します。Piを配線した様子です。PiはIoTアプリケーション開発の分野で不可欠なツールです。Piがコンパクトでコスト効率が良く、多様なプロジェクトに適用できるためです。...ライブラリ今回は直接I2Cにアクセスするのではなく、AdafruitのPythonライブラリを使用してADCにアクセスします。PiやArduinoなどのマイコンの周辺モジュールを多数開発、販売しているメーカーで、今回使用するADS1015用に無料公開しているライブラリがそのまま流用できます。使用するライブラリAdafruitのADS1015で使用できるライブラリのリポジトリは以下となります。adafruit/Adafruit_CircuitPython_ADS1x15インストールプロンプトで以下のコマンドを実行し、ライブラリをインストールしてください。PiとADS1015がI2Cで正しく通信できているかの確認を行います。Piの設定画面で「インタフェース」の項目の「I2C」がデフォルトではOFFとなっているため、ONに変更します。接続確認ADS1015が正しくI2Cバスで接続できているかを確認します。プロンプトで以下のコマンドを実行します。1以下のようにアドレスが表示されれば正しく通信できています。Piに搭載されているGPIOから出力した信号を使用します。PythonのプログラムからGPIOへアクセスするためのライブラリ、pigpioを事前にセットアップしておいてください。セットアップ方法は以下のページで解説しています。PiのGPIO制御ライブラリ、pigpioを使ってモーター制御等に使用できるPWM信号を生成する方法について解説します。PWMを使用することにより電子工作の幅...作成したソースコード今回はADS1015を使ったアナログ信号の取り込み処理の作成にあたり、以下のサイトを参考にさせて頂きました。Pythonを使って、ADC(アナログ-デジタル変換)を行う方こちらが作成したソースコードです。GPIOの5番ピンから出力した信号をADS1015の入力チャンネルに接続してAD変換をして取り込みます。pigpioのwriteメソッドで5番ピンの出力状態を変更します。(23行目)5番ピンがOFFの時は0V、ONの時は3.3Vが出力されます。私の環境ではPyhonプログラム実行時に以下のようなエラーが発生しました。platform.Adafruitのライブラリ内でI2Cのバスが検出できないというエラーのようです。以下のサイトを参考に修正した結果、解消できました。以下のディレクトリにあるAdafruitのライブラリのファイルを修正します。/home/pi/.local/lib/python3.9/site-packages/Adafruit_GPIOテキストエディタで問題のライブラリのファイルを開きます。/home/pi/.local/lib/python3.9/site-packages/Adafruit_GPIO/I2C.pyファイルを開くと「get_i2c_device」という関数が定義されている箇所がありますので探してください。以下のようにif文とその下の行をコメントアウトし、戻り値returnで実行している「Device」という関数の第2引数の値を「1」に変更します。以上で修正は完了です。これで私の環境では問題なく使用できるようになりました。PiはIoTアプリケーション開発の分野で不可欠なツールです。Piがコンパクトでコスト効率が良く、多様なプロジェクトに適用できるためです。...実行結果まずpigpioを起動するため、プロンプトで以下のコマンドを実行します。pigpiod先ほどのPythonプログラムを実行します。結果は以下のようになりました。GPIO5番ピンがOFFの時は0Vが出力されていますので、ADS1015で読み取ったアナログ信号もほぼ0Vと表示されいます。続いてGPIO5番ピンをONにした場合です。GPIOからは3.3Vが出力されていますので、ADS1015で読み取ったアナログ信号もほぼ3.3Vとなっています。アナログ信号をADS1015で正しく読めていることが確認できました。/オンラインPython学習サービス「PyQTM(パイキュー)」プログラミングのスキルを活かすにはプログラミングのスキルを仕事に活かすには、フリーランスとして受けられる案件がおすすめです。サポートを行っているフリーランスエージェントです。週3〜4日の案件の豊富さ年収100万円アップのサポート無料相談フォームからご登録いただくだけで、経験年数やスキルに合わせて案件をご紹介。リモートワーク可能な案件や週3〜4日OKの案件も豊富に用意されています。副業やフリーランスとして仕事を受けてみたいと考えている方には、テックゲートフリーランスが提供する多様なサポートが非常におすすめです。Piでアナログ信号を読み取る方法について解説しました。アナログ信号を扱うことで多くのセンサーなどと接続することができますので、ぜひ活用してみてください。以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。スキルアップや副業にぜひ活用してみてください。自分のキャリアアップに必要なカリキュラムがあるプログラミングスクールを探したいん...スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。こんな悩みを解決します。Ud...それでは、また次の記事でお会いしましょう。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ExampleMurasan(むらさん)制御系エンジニアです。Piなどのマイコンボードを使ってアプリケーションを開発しています。好きなガジェットについても紹介していきたいと思います。トップページの画像はStableDiffusionというAIによって生成されたイラストです。