Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARMアーキテクチャプロセッサベースのボードです。PIは、現在最も信頼されているプロジェクト開発プラットフォームの1つです。より高速なプロセッサ速度と1GBのRAMを備えたPIは、画像処理やモノのインターネットなどの多くの注目を集めるプロジェクトに使用できます。
注目を集めるプロジェクトを行うには、PIの基本的な機能を理解する必要があります。 これらのチュートリアルでは、RaspberryPiのすべての 基本機能について説明します。各チュートリアルでは、PIの機能の1つについて説明します。チュートリアルシリーズの終わりまでに、あなたは自分で注目を集めるプロジェクトを行うことができるようになります。RaspberryPiおよびRaspberryPi構成の開始については、これらを確認してください。
以前のチュートリアルでは、LEDの点滅とRaspberryPiとのボタンインターフェイスについて説明しました。このRaspberryPi PWMチュートリアルでは、RaspberryPiを使用してPWM出力を取得する方法について説明します。PWMは「パルス幅変調」の略です。PWMは、一定の電源から可変電圧を取り出すために使用される方法です。Raspberry PIからPWM信号を生成し、Piに接続されたLEDの明るさを変化させることによってPWMを示します。
パルス幅変調:
以前、PWMについて何度も話しました:ATmega32を使用したパルス幅変調、Arduino Unoを使用したPWM、555タイマーICを使用したPWM、およびArduinoDueを使用したPWM。
上の図では、スイッチが一定期間継続的に閉じられている場合、LEDはこの期間中継続的に「オン」になります。スイッチが0.5秒間閉じられ、次の0.5秒間開かれると、LEDは最初の0.5秒間だけオンになります。これで、合計時間にわたってLEDがオンになる割合は、デューティサイクルと呼ばれ、 次のように計算できます。
デューティサイクル=ターンオン時間/(ターンオン時間+ターンオフ時間)
デューティサイクル=(0.5 /(0.5 + 0.5))= 50%
したがって、平均出力電圧はバッテリー電圧の50%になります。
これは1秒間の場合であり、LEDが0.5秒間オフになり、残りの0.5秒間はLEDがオンになっていることがわかります。オン時間とオフ時間の頻度が「1秒あたり1」から「50 /秒」に増加した場合。人間の目はこの周波数を捉えることができません。通常の目では、LEDは半分の明るさで光っているように見えます。したがって、オン時間をさらに短縮すると、LEDははるかに明るく見えます。
PWMを取得するためにPIをプログラムし、LEDを接続してその動作を示します。
RaspberryPiには40個のGPIO出力ピンがあります。ただし、40個のうち26個のGPIOピン(GPIO2〜GPIO27)のみをプログラムできます。GPIOピンの詳細については、以下を参照してください:RaspberryPiによるLEDの点滅
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルBを使用しています。ハードウェアとソフトウェアの基本的な要件はすべて前に説明しましたが、必要なものを除いて、RaspberryPiの概要で調べることができます。
- 接続ピン
- 220Ωまたは1KΩ抵抗
- 導いた
- ブレッドボード
回路の説明:
回路図に示すように、PIN35(GPIO19)とPIN39(アース)の間にLEDを接続します。前述のように、これらのピンのいずれからも15mAを超える電流を引き出すことはできないため、電流を制限するために、LEDと直列に220Ωまたは1KΩの抵抗を接続します。
作業説明:
すべてが接続されたら、Raspberry Piをオンにして、プログラムをPYHTONで記述して実行できます。
PYHTONプログラムで使用するいくつかのコマンドについて説明します。
ライブラリからGPIOファイルをインポートします。以下の関数を使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。
RPi.GPIOをIOとしてインポートします
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。その場合、プログラムの実行中に警告が表示されます。以下のコマンドは、PIに警告を無視して、プログラムを続行するように指示します。
IO.setwarnings(False)
PIのGPIOピンは、ボード上のピン番号または機能番号のいずれかで参照できます。ピンダイアグラムでは、ボード上の「PIN35」が「GPIO19」であることがわかります。したがって、ここでは、ピンを「35」または「19」で表すことにします。
IO.setmode(IO.BCM)
GPIO19(またはPIN35)を出力ピンとして設定しています。このピンからPWM出力を取得します。
IO.setup(19、IO.IN)
ピンを出力として設定した後、ピンをPWM出力ピンとして設定する必要があります。
p = IO.PWM(出力チャネル、PWM信号の周波数)
上記のコマンドは、チャネルを設定するためのものであり、PWM信号の周波数を設定するためのものでもあります。ここでの「p」は変数であり、何でもかまいません。PWM 出力チャネル としてGPIO19を使用してい ます 。LEDが点滅するのを見たくないので、「 PWM信号 の 周波数 」は100に選択されています。
以下のコマンドはPWM信号の生成を開始するために使用されます。「 DUTYCYCLE 」はターンオン率を設定するためのものです。0はLEDが0%の時間オンになることを意味し、30はLEDが30%の時間オンになることを意味します。100は完全にオンになることを意味します。 。
p.start(DUTYCYCLE)
このコマンドはループを50回実行し、xは0から49にインクリメントされます。
範囲(50)のxの場合:
一方1: 無限ループに使用されます。このコマンドを使用すると、このループ内のステートメントが継続的に実行されます。
プログラムを実行すると、PWM信号のデューティサイクルが増加します。そして、100%に達すると減少します。このPINにLEDを接続すると、LEDの輝度が最初に増加し、次に減少します。