Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARMアーキテクチャプロセッサベースのボードです。PIは、現在最も信頼されているプロジェクト開発プラットフォームの1つです。より高速なプロセッサ速度と1GBのRAMにより、PIは画像処理やIoTなどの多くの注目を集めるプロジェクトに使用できます。
注目を集めるプロジェクトを行うには、PIの基本的な機能を理解する必要があります。 これらのチュートリアルでは、RaspberryPiのすべての 基本機能について説明します。各チュートリアルでは、PIの機能の1つについて説明します。このRaspberryPiチュートリアルシリーズの終わりまでに、Raspberry Piを学び、自分で優れたプロジェクトを作成できるようになります。以下のチュートリアルを実行してください。
- RaspberryPi入門
- RaspberryPiの構成
- LED点滅
- ボタンインターフェース
- Raspberry PiPWM生成
- RaspberryPiとのLCDインターフェース
- DCモーターの制御
- ステッピングモーター制御
- シフトレジスタとのインターフェース
- Raspberry PiADCチュートリアル
- サーボモーター制御
- 静電容量式タッチパッド
このチュートリアルでは、Raspberry Pi7セグメントディスプレイインターフェイスを実行します。7セグメントディスプレイは、ディスプレイユニットとしては最も安価です。これらのセグメントを積み重ねて、温度やカウンター値などを表示することができます。7セグメントディスプレイユニットをPIのGPIOに接続し、それに応じて数字を表示するように制御します。その後、PYTHONで、0〜9までカウントしてゼロにリセットする7セグメントディスプレイ用のプログラムを作成します。
7セグメントディスプレイ:
7セグメントディスプレイにはさまざまなタイプとサイズがあります。ここでは、7セグメントの詳細について説明しました。基本的に7セグメントには、コモンアノードタイプ(コモンポジティブまたはコモンVCC)とコモンカソードタイプ(コモンネガティブまたはコモングラウンド)の2種類があります。
共通アノード(CA): これでは、8つのLEDすべてのすべての負端子(カソード)が相互に接続され(下の図を参照)、COMという名前が付けられています。そして、すべてのプラス端子はそのままにしておきます。
共通カソード(CC): この場合、8つのLEDすべてのすべての正端子(アノード)が相互に接続され、COMと呼ばれます。そして、すべての負の熱は放っておかれます。
これらのCCおよびCA7セグメントディスプレイは、複数のセルを多重化する際に非常に便利です。このチュートリアルでは、CCまたはCommon Cathode Seven SegmentDisplayを使用します。
すでに8051、Arduino、AVRで7セグメントをインターフェースしています。また、多くのプロジェクトで7セグメントディスプレイを使用しています。
先に進む前に、Raspberry PiGPIOについて少し説明します。
Raspberry Pi2には40個のGPIO出力ピンがあり ます。ただし、40個のうち26個のGPIOピン(GPIO2〜GPIO27)のみをプログラムできます。次の図を参照してください。これらのピンのいくつかは、いくつかの特別な機能を実行します。特別なGPIOは別として、17個のGPIOが残っています。
GPIO(ピン1または17)の+ 3.3V信号は、7セグメントディスプレイを駆動するのに十分です。電流制限を提供するために、回路図に示すように、各セグメントに1KΩの抵抗を使用します。
GPIOピンとその電流出力の詳細については、以下を参照してください。RaspberryPiによるLEDの点滅
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルB を使用しています。ハードウェアとソフトウェアの基本的な要件はすべて前に説明しましたが、必要なものを除いて、RaspberryPiの概要で調べることができます。
- 接続ピン
- コモンカソード7セグメントディスプレイ(LT543)
- 1KΩ抵抗(8個)
- ブレッドボード
回路と動作の説明:
7セグメントディスプレイをRaspberryPiに接続するために行われる接続を以下に示します。ここでは、Common Cathode7セグメントを使用しました。
PIN1またはe ------------------ GPIO21
PIN2またはd ------------------ GPIO20
PIN4またはc ------------------ GPIO16
PIN5またはhまたはDP ---------- GPIO 12 //小数点を使用していないため、必須ではありません。
PIN6またはb ------------------ GPIO6
PIN7または------------------ GPIO13
PIN9またはf ------------------ GPIO19
PIN10またはg ---------------- GPIO26
PIN3またはPIN8 -------------アースに接続
したがって、PIの8つのGPIOピンを8ビットポートとして使用します。ここでは、GPIO13はLSB(最下位ビット)であり、GPIO 12はMSB(最上位ビット)です。
ここで、番号「1」を表示する場合は、セグメントBとCに電力を供給する必要があります。セグメントBとCに電力を供給するために、GPIO6とGPIO16に電力を供給する必要があります。したがって、「PORT」関数のバイトは0b00000110になり、「PORT」の16進値は0x06になります。両方のピンが高い状態で、「1」が表示されます。
表示する各桁の値を書き込み、それらの値を「DISPLAY」という名前の文字列に格納しました(以下の「コード」セクションを確認してください)。次に、関数 'PORT'を使用して、これらの値を1つずつ呼び出し、対応する桁をディスプレイに表示します。
プログラミングの説明:
回路図に従ってすべてが接続されたら、PIをオンにしてPYHTONでプログラムを作成できます。
PYHTONプログラムで使用するいくつかのコマンドについて説明します。
ライブラリからGPIOファイルをインポートします。以下の関数を使用すると、PIのGPIOピンをプログラムできます。また、「GPIO」の名前を「IO」に変更しているため、プログラムでGPIOピンを参照する場合は常に、「IO」という単語を使用します。
RPi.GPIOをIOとしてインポートします
時々、私たちが使おうとしているGPIOピンが他の機能をしているかもしれません。その場合、プログラムの実行中に警告が表示されます。以下のコマンドは、PIに警告を無視して、プログラムを続行するように指示します。
IO.setwarnings(False)
PIのGPIOピンは、ボード上のピン番号または機能番号のいずれかで参照できます。ボード上の「PIN29」のように「GPIO5」です。したがって、ここでは、ピンを「29」または「5」で表すことにします。
IO.setmode(IO.BCM)
LCDのデータピンとコントロールピンの出力ピンとして8つのGPIOピンを設定しています。
IO.setup(13、IO.OUT)IO.setup(6、IO.OUT)IO.setup(16、IO.OUT)IO.setup(20、IO.OUT)IO.setup(21、IO.OUT) IO.setup(19、IO.OUT)IO.setup(26、IO.OUT)IO.setup(12、IO.OUT)
中括弧内の条件が真の場合、ループ内のステートメントは1回実行されます。したがって、8ビットの「ピン」のbit0が真の場合、PIN13はHIGHになり、そうでない場合、PIN13はLOWになります。ビット0からビット7には8つの「ifelse」条件があるため、7セグメントディスプレイ内の適切なLEDをHighまたはLowにして、対応する番号を表示できます。
if(pin&0x01 == 0x01):IO.output(13,1)else:IO.output(13,0)
このコマンドはループを10回実行し、xは0から9にインクリメントされます。
range(10)のxの場合:
以下のコマンドは永久ループとして使用され、このコマンドを使用すると、このループ内のステートメントが継続的に実行されます。
一方1:
他のすべての機能とコマンドは、「コメント」の助けを借りて、以下の「コード」セクションで説明されています。
プログラムを作成して実行した後、Raspberry Piは対応するGPIOをトリガーして、7セグメントディスプレイに数字を表示します。プログラムは、ディスプレイが0から9まで連続してカウントするように作成されています。