arduino について
arduino は、IoT や組み込みプロジェクト向けに Arduino 互換マイコンを扱うスキルです。Arduino CLI でスケッチをコンパイル、書き込みし、ボードやライブラリの管理、シリアル通信を行います。
主な機能
- 01Arduino CLI によるスケッチのコンパイルと書き込み
- 02ボード、コア、ライブラリの管理
- 03デバッグやデータ交換のためのシリアル通信
- 04ライブラリを使ったセンサーとアクチュエーターの利用
- 05AVR、ARM、ESP 系ボードへの対応
活用シーン
- 01センサーを使った IoT プロトタイプの作成
- 02マイコンによる LED やモーターの制御
- 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"
コード例:
-
基本的な点滅スケッチをコンパイルしてアップロードする:
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 -
スクリプトでライブラリを管理する:
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 機能を拡張するために利用できます