Piを購入してまず行うことと言えば、”Lチカ”ですね。LEDがチカチカ光るのでLチカです。Piで出来ることが大幅に増えます。今回は、Lチカやスイッチを使って、GPIOの使い方を詳しく説明してきます。電気回路の作成Pythonコード:GPIO出力(Lチカ)Pythonコード:GPIO入力それでは、早速詳しく説明してきます。Input/Outputの略で、日本語にすると汎用入出力となります。Piの場合、下記写真の40ピン(青丸)のことです。この40pinは、汎用入出力というだけあって、プログラムで設定することにより、各ピンを出力ピンにしたり、入力ピンしたりすることができます。言うと以下のような動作になります。HighGPIOのピン配置と状態確認GPIOの40pinには、5V電源ピンやGNDピン等もあります。配置は下記のWebで確認することができます。powerやSDA/SCL等、意味がわからないピンもあると思いますが、気にせず読み進めてください。GPIO26、GPIO16ピン、Groundピンを使いますので、その位置がわかればOKです。readallとコマンドを打つと、ピン配置と現在のピンの状態を知ることができます。青丸のピンの状態は以下のようになっています。0Vが入力されている注意事項BCMの項目とwPiやNameの項目で番号が異なります。下記のpythonプログラムでは、BCMの番号を使いますので、ご注意ください。17とエラーになる場合は、下記コマンドを実行して、wiringpiモジュールの最新版をインストールしてください。wiringpi-latest.debGPIOの基本を理解したところで、実際にLEDを光らせてみましょう。電気回路の作成まずは回路を考えて、電気回路を作成する必要があります。アプリ専門の方は、まずこの壁を乗り越えるのが大変だと思いますが、単にLEDを光らせる回路はそれほど難しくありません。LEDに流れる電流等が少なかったり多かったりしても大丈夫です。光の明るさは変わりますが、LEDは光ってくれます。回路ですが、下記のようにGPIOピンと部品を接続します。GPIO26(37ピン)→330Ωの抵抗→LED→GND(39ピン)GPIOの出力は3.3V、LEDの電圧降下(Vf)はだいたい2Vくらいとすると抵抗にかかる電圧は1.3Vとなります。(A)となり、4mAの電流がLEDに流れることになります。LEDに10mAくらい流そうと思っていましたが、手元に抵抗が330Ωしかなかったので、少しLEDの光が弱いかなぁと思いつつ、330Ωを付けました。抵抗は必ずつけてください、付けないと電流が理論的には無限に流れますので、LEDが焼き切れます。Pythonコード:GPIO出力(Lチカ)下記がLチカのサンプルコードになります。time.sleep(3)コードの説明ですが、コード上にコメントとして記載したので参考にしてください。3秒間隔でLEDが点灯と消灯を繰り返します。それでは実際に動かしてみましょう。Raspberryのコンソールで、下記のコマンドを実行します。led.pyLEDが3秒ごとに点灯、消灯を繰り返せば成功です。Lチカができましたね。今度はGPIOで入力を読み取る方法を紹介します。下記のようにスイッチを接続します。GPIO16(36ピン)→スイッチ→GND(34ピン)下記がサンプルコードになります。time.sleep(3)コードの説明ですが、コード上にコメントとして記載したので参考にしてください。16番pinに何も接続しないとHigh、GNDに接続するとLowになります。プルアップ設定にする理由スイッチオフの時、ピンに何も繋がっていない状態になります。この時、電位が固定されないためHighになったりLowになったりしてしまいます。プルアップをすると、ピンに何も繋がっていない時に、電圧を3.3V(High)に固定することができます。GPIOの最も基本的な動作でしたが、ハードウェア制御ができましたね。次にやりたくなることは、スイッチが押されたときや、センサーが反応したときに即座に何か処理をするという動作だと思います。これは割り込みという機能で実現できます。難易度がぐっとあがりますが、割り込みについても下記ブログで紹介していますので、こちらもご覧ください。Piを使っていろいろなことにチャレンジしていきましょう。Piの使い方、設定をわかりやすく解説。長年、ソフトウェア開発に携わっています。8はてなブログをはじめよう!raspberrypiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。