\r\n\r\n
Raspberry Piは、ほとんど何にでも使えます。家庭用メディアセンターからレトロゲームのカスタマイズまで、Piと同様のシングルボードコンピュータはユビキタスになっていると言ってよいでしょう。
Raspberry PiのGPIOピンを使って実験を始めると、さらに面白いことが起こります。これらのピンが何をするのかを説明しましたが、次にPiでSPIとI2Cプロトコルを有効にする方法とその理由を説明します。
その前に、この2つのプロトコルの役割について簡単に説明します。
SPI(Serial Peripheral Interface)は、マイコン(Piなど)が一度に100以上の周辺機器と通信できるようにするものです。マイコンは、すべての「スレーブ」部品の「マスター」として働き、高速に通信することができます。この図は、簡単なSPI接続の概要を示しています。
SPIについて初めて読む人は、難しく感じるかもしれませんが、頑張ってください!SCLKはマスターデバイスが設定するクロック速度で、デバイス間の情報共有の速さを決定します。
クロックの各サイクル(または「ティック」)において、マスターとスレーブのデバイスは共に1ビットの情報を送受信します。MOSI(マスターアウトスレーブイン)、MISO(マスターインスレーブアウト)ピンは、このために使用されます。
SSまたはスレーブセレクト端子(PiではCE0またはCE1と表示)は、スレーブデバイスが任意の時点でマスターデバイスと通信しているかどうかを通知するために使用されます。ほとんどの場合、各スレーブデバイスは独自のSSピンを必要としますが、SCLK、MOSI、MISOピンを共有することができます。
デバイスによっては、デイジーチェーン接続で1本のSSピンを共有することができ、電源とグラウンドの2本と合わせて4本のピンを使用することができます。
enhancement startup YouTubeチャンネルでは、SPIについてわかりやすい入門書を掲載し、さらにプロトコルを解説しています。
Raspberry PiのSPIを有効にするには、ターミナルから以下のコマンドを入力して、raspiのコンフィギュレーションを開きます。
sudo raspi-configInterfacing Opti***」に移動し、次のメニューで「P4 SPI Enable/Disable automatic loading of SPI kernel module」を選択します。ウィンドウのプロンプトで「はい」を選択します。 これでSPIが有効になりました!
または、/boot から SPI/configuration.txt ファイルを有効にして、ターミナルウィンドウを開き、次のように入力します。
sudo nano /boot/config.txtdtparam=spi=onと書かれている行を探し、#の記号を削除してください。SPIの有効化方法に関わらず、PiとSPIを再起動することで有効化されます。
SPIペリフェラルを使ったプロジェクトは何百とありますが、手始めとしては、自分でRFIDリーダーをプログラミングするのがよいでしょう。
ArduinoとRFIDを使ったスマートロックのDIYチュートリアルでは、MFRC-522リーダーを使用しています。ラズベリーレザー風味のRFIDの紹介は、piddlerintherootで詳しく解説しています。
このセットアップは、趣味の電子工作のためだけではありません。Raspberry Piプロジェクトのベストコレクションでは、ヨーロッパの大規模な工場運営の一環として、Raspberry PiとRFIDで動作する本格的なMESシステムを使用しています。
I2Cはフィリップス・エレクトロニクス社が開発した通信プロトコルで、マイコンを使ったホビープロジェクトで多用されている。その理由は明白で、SPIの最小4本の配線を2本で済ませることができるからです。また、ユーザー**のライブラリにもしっかり対応しています。Raspberry Piには、I2C用に設計された部品がたくさんあります。SPIに比べれば遅いですが、それでも日常的に使う分には十分な速度で動作します。
SPIとよく似たこのプロトコルは、マスターデバイス(Piなど)とスレーブデバイス(スクリーン、シフトレジスタ、モータードライバなど)を持っています。
デバイス間の最初の接続はSCL(Serial Clock)で、これはデータ転送の同期を取るためにホストによって設定されます。2本目はSDA(シリアルデータ)で、I2Cバス上のすべてのデバイス間でデータのやり取りを行います。
マスターデバイスは、スタートビットと7ビットの16進数アドレスで通信を開始します。これをスレーブ機器に合わせないと通信できない。そのため、多くの機器が2本の配線で済むようになっています。
その後、マスターデバイスは、アンサーまたはACKの返事を受け取る前に、スレーブデバイスの読み取りまたは書き込み(R/W)を行うかどうかを指定します。
YouTubeで強化されたスタートアップは、再びI2Cを簡単に理解し、洞察することができます。
I2Cは、Piでもraspiの設定メニューから有効にすることができます。
sudo raspi-config矢印キーでインターフェースオプションを選択し、P5I2Cを選択すると、I2Cコアモジュールの自動ロードの有効/無効を選択できます。プロトコルを有効にすることを確認すると、確認画面が表示されます。
SPIと同様、configure.txtを修正することでも対応可能です。
sudo nano /boot/config.txtdtparam=i2c#u arm=onを修正し、#記号を削除します。
Piを再起動すると、I2Cが立ち上がる!
I2Cは、多数の出力が必要なプロジェクトに最適です。代表的な用途として液晶ディスプレイがあり、最大で16本のピンが必要だが、I2Cではこの機能を通信用2本、電源とグランド用2本に減らすことができる。
多くのLCDスクリーンにはI2Cの「バックパック」が付属しており、セットアップを容易にし、残りのPiピンを他のセンサーや周辺機器に解放することができます。
TheRaspberryPiGuyがRaspberry PiのI2C LCDの設定と使用方法について、YouTubeで詳しく説明しています。
Raspberry Piに搭載されているSPIやI2Cは、確かにホビー電子工作の全くの初心者には不向きですが、決して怖いものではありません。
Raspberry Piビギナーズガイドで基本を学んでから、実際に使ってみるとよいでしょう。
サンプルプロジェクトを通して学ぶのが一番です。 どんなものができるのか、楽しみにしています。