mcpField
A
arduino

arduino

github.com/alphaonedev開発67 回インストール
リポジトリ

arduino について

arduino は、IoT や組み込みプロジェクト向けに Arduino 互換マイコンを扱うスキルです。Arduino CLI でスケッチをコンパイル、書き込みし、ボードやライブラリの管理、シリアル通信を行います。

主な機能

  1. 01Arduino CLI によるスケッチのコンパイルと書き込み
  2. 02ボード、コア、ライブラリの管理
  3. 03デバッグやデータ交換のためのシリアル通信
  4. 04ライブラリを使ったセンサーとアクチュエーターの利用
  5. 05AVR、ARM、ESP 系ボードへの対応

活用シーン

  1. 01センサーを使った IoT プロトタイプの作成
  2. 02マイコンによる LED やモーターの制御
  3. 03シリアル通信を使ったスケッチのデバッグ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill arduino

インストール後、Claude Code で/arduinoを入力して読み込まれたか確認します。

詳細

arduino

目的

このスキルは、IoT および組み込みシステムの開発に重点を置き、Arduino マイクロコントローラーをプログラミングして管理するためのツールを提供します。Arduino エコシステムを活用し、Arduino Uno や ESP32 ボードなどのハードウェア上でスケッチをコンパイル、アップロードし、操作できます。

使用するタイミング

マイクロコントローラーのプログラミングが必要なセンサーネットワークや自動化デバイスなどの IoT プロトタイプを構築するときに、このスキルを使用します。センサーからのデータの読み取り(例:DHT11 による温度測定)やアクチュエーター(例:LED、モーター)の制御など、特にリアルタイムのデータ処理や Raspberry Pi などのプラットフォームとのハードウェア統合を伴うプロジェクトで活用できます。

主な機能

  • CLI コマンドを使って Arduino スケッチをボードにコンパイルしてアップロードします。
  • さまざまな Arduino 互換ハードウェアのボード、コア、ライブラリを管理します。
  • IoT 環境でのデバッグやデータ交換にシリアル通信を使用します。
  • 標準的な Arduino ライブラリを通じて、外部センサーやアクチュエーターと連携します。
  • AVR、ARM、ESP ベースのボードなど、複数のプラットフォームに対応します。

使用パターン

このスキルを使用するには、スクリプトから、または AI ワークフローで Arduino CLI コマンドを呼び出します。必ず curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh を使って Arduino CLI をインストールしてください。自動化する場合は、コマンドをシェルスクリプトや Python の subprocess 呼び出しでラップします。すべての操作で、完全修飾ボード名(FQBN)を指定してください(例:「arduino:avr:uno」)。より大きな AI エージェントのフローに統合する場合は、まず arduino-cli board list を使ってボードの接続を確認してください。

主なコマンド/API

基本操作には Arduino CLI を使用します。主なコマンドは次のとおりです。

  • ボードのコアをインストールする:arduino-cli core install arduino:avr
  • スケッチをコンパイルする:arduino-cli compile --fqbn arduino:avr:uno --output-dir /tmp/build path/to/sketch.ino
  • スケッチをアップロードする:arduino-cli upload -b arduino:avr:uno -p /dev/ttyUSB0 path/to/sketch.ino
  • 利用可能なボードを一覧表示する:arduino-cli board list
  • ライブラリを追加する:arduino-cli lib install "DHT sensor library"

コード例:

  1. 基本的な点滅スケッチをコンパイルしてアップロードする:

    void setup() { pinMode(LED_BUILTIN, OUTPUT); }
    void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); }
    

    実行:arduino-cli compile --fqbn arduino:avr:uno blink.ino && arduino-cli upload -b arduino:avr:uno -p /dev/ttyUSB0 blink.ino

  2. スクリプトでライブラリを管理する:

    arduino-cli lib search DHT && arduino-cli lib install "DHT sensor library"
    

設定形式:CLI 設定ファイルには JSON を使用します(例:arduino-cli config init を実行すると directories.json が作成されます)。設定ファイルの例:

{
  "board_manager": {
    "additional_urls": ["https://downloads.arduino.cc/packages"]
  }
}

Arduino Cloud との連携が必要な場合(例:IoT サービスで使用する場合)は、環境変数を使って認証情報を設定します:export ARDUINO_API_KEY=$ARDUINO_API_KEY。

統合に関する注意事項

Arduino CLI が PATH に含まれていることを確認して、このスキルを統合します。クロスプラットフォームで使用する場合は、シリアルポートを動的に検出してください(例:Linux では /dev/ttyUSB0、Windows では COM3)。他の IoT ツールと組み合わせる場合は、JSON の処理に jq などのパーサーへ出力をパイプします。たとえば、bash スクリプトでは次のようにします:arduino-cli board list | jq '.boards[] | select(.port == "/dev/ttyUSB0")'。Arduino Cloud API を使用する場合は、$ARDUINO_API_KEY で認証し、https://api2.arduino.cc/iot/v2/things などのエンドポイントにリクエストを送信します。コマンドの失敗を防ぐため、実行前に必ずハードウェアの接続を確認してください。

エラー処理

CLI の終了コードを必ず確認してください。ゼロ以外のコードは失敗を示します(例:if [ $? -ne 0 ]; then echo "Compilation failed"; fi)。ライブラリが見つからない場合など、エラー出力から詳細を確認します:「error: 'DHT' not declared」。よくある問題には、FQBN の誤り(arduino-cli board listall で確認してください)やポートの競合があります。ポートを一覧表示するには ls /dev/tty* を使用します。アップロードエラーが発生した場合は、ボードがブートローダーモードになっていることを確認してください。Python などの言語を使う場合は、スクリプト内でコマンドを try-catch ブロックで囲みます:

import subprocess
try:
    subprocess.run(['arduino-cli', 'compile', '--fqbn', 'arduino:avr:uno', 'sketch.ino'], check=True)
except subprocess.CalledProcessError as e:
    print(f"Error: {e.output}")

IoT のデプロイをデバッグできるよう、詳細なエラーを記録してください。

グラフ上の関連性

  • クラスター:iot(iot クラスター内の他のスキルと直接リンクしています)
  • タグ:iot(IoT タグが付いたスキルと接続し、IoT ワークフローの組み合わせなどに活用できます)、arduino(組み込みシステムに特化したスキルとリンクします)
  • 関連スキル:Raspberry Pi や ESP32 向けなど、iot タグが付いたスキルは、IoT 機能を拡張するために利用できます

コメント