Raspberry Pi は、電子エンジニアや愛好家向けに設計されたARMアーキテクチャプロセッサベースのボードです。PIは、現在最も信頼されているプロジェクト開発プラットフォームの1つです。より高速なプロセッサ速度と1GBのRAMを備えたPIは、画像処理やモノのインターネットなどの多くの注目を集めるプロジェクトに使用できます。
注目を集めるプロジェクトを行うには、PIの基本的な機能を理解する必要があります。 これらのチュートリアルでは、RaspberryPiのすべての 基本機能について説明します。各チュートリアルでは、PIの機能の1つについて説明します。このRaspberryPiチュートリアルシリーズの終わりまでに 、あなたは自分で注目を集めるプロジェクトを行うことができるようになります。以下のチュートリアルを実行してください。
- RaspberryPi入門
- RaspberryPiの構成
- LED点滅
- ラズベリーパイボタンインターフェース
- Raspberry PiPWM生成
- RaspberryPiを使用したDCモーターの制御
- RaspberryPiによるステッピングモーター制御
このRaspberryPiシフトレジスタチュートリアルでは、シフトレジスタをPiとインターフェイスさせます。PIには26個のGPIOピンがありますが、3Dプリンターのようなプロジェクトを行う場合、PIが提供する出力ピンでは不十分です。したがって、より多くの出力ピンが必要です。PIに出力ピンを追加するには、シフトレジスタチップを追加します。シフトレジスタチップは、PIボードからデータをシリアルに取得し、パラレル出力を提供します。チップは8ビットであるため、チップはPIからシリアルに8ビットを取得し、8つの出力ピンを介して8ビットのロジック出力を提供します。
8ビットシフトレジスタには、IC74HC595を使用します。それは16ピンチップです。チップのピン構成については、このチュートリアルの後半で説明します。
このチュートリアルでは、3つのPIのGPIOピンを使用して、シフトレジスタチップから8つの出力を取得します。ここで、チップのPINSは出力専用であるため、センサーをチップ出力に接続して、PIがそれらを読み取ることを期待することはできません。LEDはチップ出力に接続され、PIから送信された8ビットデータを確認します。
先に進む前に、Raspberry PiGPIOピンについて少し説明します。
Raspberry Pi2には40個のGPIO出力ピンがあり ます。ただし、40個のうち26個のGPIOピン(GPIO2〜GPIO27)のみをプログラムできます。これらのピンのいくつかは、いくつかの特別な機能を実行します。特別なGPIOは別として、残りのGPIOは17個だけです。これらの17個のGPIOピンはそれぞれ、最大15mAの電流を供給できます 。また、すべてのGPIOピンからの電流の合計は50mAを超えることはできません 。 GPIOピンの詳細については、以下を参照してください:RaspberryPiによるLEDの点滅
必要なコンポーネント:
ここでは 、Raspbian JessieOSでRaspberryPi2モデルB を使用しています。ハードウェアとソフトウェアの基本的な要件はすべて前に説明しましたが、必要なものを除いて、RaspberryPiの概要で調べることができます。
- 接続ピン
- 220Ωまたは1KΩ抵抗(6)
- LED(8)
- 0.01µFコンデンサ
- 74HC595 IC
- ブレッドボード
回路図:
シフトレジスタIC74HC595:
ここで使用するシフトレジスタのピンについて説明します。
ピン名 |
説明 |
Q0-Q7 |
これらは出力ピン(赤い長方形)であり、8ビットデータを並列に取得します。8つのLEDを接続して、並列出力を確認します。 |
データピン(DS) |
最初のデータはこのピンに少しずつ送信されます。1を送信するには、DATAピンをHighにプルアップし、0を送信するには、DATAピンをプルダウンします。 |
クロックピン(SHCP) |
このピンのすべてのパルスは、レジスタにDATAピンから1ビットのデータを取り込んで保存するように強制します。 |
シフト出力(STCP) |
8ビットを受信した後、このピンにパルスを供給して出力を確認します。 |
作業の流れ:
フローチャートに従い、PYTHONで10進カウンタプログラムを作成します。プログラムを実行すると、RaspberryPiのシフトレジスタを使用したLEDカウントが表示されます。
プログラミングの説明:
回路図に従ってすべてが接続されたら、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)
GPIO4、GPIO5、GPIO6ピンを出力として設定しています
IO.setup(4、IO.OUT)IO.setup(5、IO.OUT)IO.setup(6、IO.OUT)
このコマンドはループを8回実行します。
range(8)のyの場合:
一方1: 無限ループに使用されます。このコマンドを使用すると、このループ内のステートメントが継続的に実行されます。
プログラムの詳細については、以下のコードセクションを参照してください。これで、シフトレジスタにデータを送信するために必要なすべての手順が完了しました。