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
以上
| 固定リンク
« Grove-OLED-i2cにFramebufferモジュールを使ってイメージを表示する | トップページ | 開発ツールPlatformIOをcli(comand line interface)で使う(Arduino-nano版) »
「linux」カテゴリの記事
- platfomioを使ってnaitive(linux/windows)のプログラムをビルドする方法(2021.03.10)
- micro:bit Yotta開発ツール(linux版)(2021.01.09)
- PlatformIOをRaspberryPi4で動かしてみる(実験)(2020.10.20)
- headless RaspberryPiインストール方法(v2)(2020.10.20)
- wio-terminalのファームウェア・アップデートについて(linux版)(2020.10.15)
「CircuitPython」カテゴリの記事
- MicroPython/CircuitPython Performance Test(2021.02.07)
- PicoボードにMicropython/CircuitPythonをインストールする(2021.02.03)
- XIAOでMPL3115A2(気圧・高度・気温センサ)を使用する(CircuitPython版)(2020.07.02)
- XIAOでMCP9808(温度センサ)を使用する(CircuitPython版)(2020.07.02)
- XIAOにCircuitPythonをインストールする(2020.06.09)
コメント