« Grove-OLED-i2cにFramebufferモジュールを使ってイメージを表示する | トップページ | 開発ツールPlatformIOをcli(comand line interface)で使う(Arduino-nano版) »

2020年4月28日 (火)

python3でCircuitPythonのAPIを使用する(リンク集)

2020/4/28

adafruit_blinka python3 links

adafruit_blinka python3 links

概要

「python3でCircuitPythonのAPIを使用する」のテーマで記事を複数作成したので、それらの違いについて記載し、リンク集として、まとめた。

(1)PCのpython3でCircuitPythonのAPIを使用する(FT232H版)
このリンクは、FT232HボードをPCに接続してCircuitPythonのAPIを使用する方法について記載した。 本ボードはMCP2221AボードにはないSPIがあるので、SPIを使う場合、こちらのボードを使うことになる。

(2)PCのpython3でCircuitPythonのAPIを使用する(MCP2221A版)
このリンクは、MCP2221AボードをPCに接続してCircuitPythonのAPIを使用する方法について記載した。 本ボードはSPIが無いがADC/DACがあるので、AnalogInを使用したい場合、こちらを使うことになる。

(3)RaspberryPiのpython3でCircuitPythonのAPIを使用する
このリンクは、RaspberryPiの内蔵のGPIO/I2C/SPIでCircuitPythonのAPIを使用する方法について記載した。 FT232HボードやMCP2221Aボードを接続して使用する方法については、次項に記載した。

RaspberryPiにMCP2221Aボードを接続して使用する場合

既にRaspberryPiで上のリンク(3)のインストールが終わっている前提で以下を実行する: (実際には、動作確認はしていない)

sudo apt-get install libusb-1.0 sudo nano /etc/udev/rules.d/99-mcp2221.rules #以下を99-mcp2221.rulesに追加する: # /etc/udev/rules.d/99-mcp2221.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="04d8", ATTR{idProduct}=="00dd", MODE="0666" # udevルールを再ロードする sudo udevadm control --reload # MCP2221Aボードを接続する pip3 install hidapi # 以下の環境変数を設定して、内蔵GPIO/I2C/SPIからMCP2221Aボードに切り替える export BLINKA_MCP2221=1 # この時点でpython3でMCP2221Aボードが使用可能になる python3 xxxx.py # 再度、内蔵GPIO/I2C/SPIに切り替えるときは、以下を実行する unset BLINKA_MCP2221

RaspberryPiにFT232Hボードを接続して使用する場合

既にRaspberryPiで上のリンク(3)のインストールが終わっている前提で以下を実行する: (実際には、動作確認はしていない)

sudo apt-get install libusb-1.0 sudo nano /etc/udev/rules.d/11-ftdi.rules #以下を11-ftdi.rulesに追加する: # /etc/udev/rules.d/11-ftdi.rules SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6011", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", GROUP="plugdev", MODE="0666" SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6015", GROUP="plugdev", MODE="0666" # udevルールを再ロードする sudo udevadm control --reload # FT232Hボードを接続する pip3 install pyftdi # 以下の環境変数を設定して、内蔵GPIO/I2C/SPIからFT232Hボードに切り替える export BLINKA_FT232H=1 # この時点でpython3でFT232Hボードが使用可能になる python3 xxxx.py # 再度、内蔵GPIO/I2C/SPIに切り替えるときは、以下を実行する unset BLINKA_FT232H

応用例

CircuitPython互換性で応用可能と思われるリンクをリストアップした:

(1)MCP2221AボードでGrove-OLED-i2cを動かす
(2)Grove-OLED-i2cをFramebufferモジュールで機能拡張する
(3)Grove-OLED-i2cにFramebufferモジュールを使ってイメージを表示する

(4)FT232Hボードに気圧センサーMPL115A2(i2c)を接続する

(5)FT232Hボードにneopixelsを接続する
これはSPIを利用しているので(SPIがない)MCP2221Aボードでは動作しない。

(6)CircuitPython/MicroPythonに温度センサーTMP102(i2c)を接続する

(7)FT232Hボード用ならびにCircuitPython用にJupyter-Notebookをインストールする

(8)CircuitPythonに温度センサーLM61CIZ(analog)を接続する
AnalogInを使用するので、MCP2221Aボードで利用できると思われる、

なお、i2cで制御するプログラムは、CircuitPython互換性があるので、 基本的には、両方のボード(FT232Hボード/MCP2221Aボード)で動作する。 実際には、(プルアップの抵抗値の調整の余地はあると思うが) ボートとデバイスの相性などで動作しない場合もある。 (i2c.scan()でデバイス・アドレスが返ってこないなど)

参照情報

USB-I2CブリッジボードV2(GROVE対応ボード)【MR-GROVE-B】
USB-I2CブリッジボードV2(GROVE対応ブレッドボード版)【MR-GROVE-BB】
MCP2221 Blinka Pinout

FT232H Blinka PINOUT

Raspberry Pi Pinout

以上

|

« Grove-OLED-i2cにFramebufferモジュールを使ってイメージを表示する | トップページ | 開発ツールPlatformIOをcli(comand line interface)で使う(Arduino-nano版) »

linux」カテゴリの記事

CircuitPython」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« Grove-OLED-i2cにFramebufferモジュールを使ってイメージを表示する | トップページ | 開発ツールPlatformIOをcli(comand line interface)で使う(Arduino-nano版) »