Raspberry Pi は主に教育目的で設計されており、若者が安価なLinuxコンピューターでプログラミングの第一歩を踏み出せるようにしています。しかし、電子機器は日々高性能になり、 Raspberry Pi 3 にBluetooth 4.1とWIFIが追加されたことで、このデバイスはプロフェッショナルの要件を満たすことができるようになりました。
標準的なPCではプロセッサ ピンにアクセスできません。たとえば、I2Cバスを介して通信する新しいセンサーをPCに接続する方法はありません。ただし、 Raspberry Pi はGPIOにアクセスできます。この種の機能は通常、マイクロコントローラ専用です。しかし、これには組み込みプログラミングの知識が必要であり、専門家以外の人にとっては面倒な作業になる可能性があります。Raspberry Piでは、Pythonのコード数行でGPIOをプログラムすることができます。Pythonは最も学習しやすい言語の1つであり、コンピューター サイエンスのエンジニアだけで構成されるわけではない非常に大規模なコミュニティがあります。Raspberry Piは、標準的なPCとマイクロコントローラーの間に独自の市場を創出しました。RaspberryのGPIOを切り替えるために実行する必要がある手順を見てみましょう。
Raspberry Piには、PythonライブラリRPi.GPIOがすでにロードされているRaspbianがデフォルトのOSとして搭載されています。現在はバージョン0.6.2を使用しており、pypi.python.orgからダウンロードできます。
このライブラリの使用方法を説明する例は、オープンソースのWebサイトで入手できます。
これはPythonプログラムなので、ライブラリをインポートする必要があります。必要なライブラリは2つあります。ピンを駆動するためのRPI.GPIOライブラリと、ピンの各遷移間のタイミングをユーザーが作成できる時間ライブラリです。
次に、番号体系の種類を宣言する必要があります。BOARDオプションは、Pi上に配置されているピンをそのまま使用します。このコネクタと番号はバージョン間で変更されません。BCMオプションはBroadcom SoC番号を使用しますが、これはRaspberryピン バージョンによって異なります。以下の表は、2つの番号体系の違いを示しています。
私たちのプログラムでは、ボード番号はコマンドGPIO.setmode関数によって使用され、選択されます。
次に、ピン12を出力として設定し、このピンを切り替えます。無限ループでは、ピンは1秒間ハイ (3V) になり、その後1秒間接地 (0V) されます。
Raspberry Piのフォーム ファクターにより、GPIOへの物理的なアクセスが容易になり、スコープはグランド ピン (ピン25) とピン12に接続されます。
スコープのスクリーンショットで確認できるように、ピン12はPythonスクリプトでプログラムされているように、0.5Hzの周波数で0 Vと3 Vの間を切り替えます。
Linux OSではピンを駆動する正確なタイミングが保証されないため、Pythonスクリプトはリアルタイム システムでは使用できません。他の優先度により、優先度が高くないGPIOの駆動が遅れる場合があります。しかし、外部の世界と通信するには、従来のPCでは提供されない、迅速で効率的かつ簡単な方法です。