Arduinoの始め方/環境構築
1.概要
人気のシングルボードコンピュータ(SBC)であるRasberry Piと同様に有名なSBCであるArduinoを紹介します。
1-1.Arduinoとは
Arduinoは2005年イタリアの大学教授Massimo Banzi氏らによって開発された、コンピュータ初心者向けの「電子工作用マイコンボード」です。
下記特徴により広く普及しています。
オープンソースハードウェア
ハードウェアがオープンソースであり多くの企業が複製品・派生品を製造しているため安価(Arduino UNOで3~4k円)
UNO R3のソース:https://docs.arduino.cc/hardware/uno-rev3/
旧品ソース:https://docs.arduino.cc/retired/other/arduino-older-boards/
Arduinoのハードウエアのライセンス:Creative Commons Attribution Share-Alike license(CC-BY-SA)
オープンソースの環境の提供
Arduinoの開発環境が無償:Arduino IDE(ライセンスはGPL)
ライブラリが豊富
書き込みソフトなどすべて無償(PICやH8マイコンは書き込みライターやソフト開発環境が有償)
コミュニティのサポートが豊富
「非営利団体Arduino Foundation」と「営利企業Arduino Holding」の2社でArduino IDEを管理(出典:分裂していたArduinoが和解して1つに)
Arduino Holding:関連製品の販売を一元管理
Arduino Foundation:オープンソースのArduino IDE(統合開発環境)の管理と開発者コミュニティーの窓口
過去にArduinoの内部分裂があったが、現在は解消とのこと
Qiitaや技術ブログでも記事が豊富
パーツの種類が豊富(これはラズパイも同様)
[1] 弘前大学総合情報処理センター広報 シングルボードのススメ
Arduinoでは下記のようなことを実現できます。
スイッチ入力:I/Oピンを用いて特定の動作を実行可能です。具体例として人感センサー(人を検出して点灯)などがあります。
アナログ入力:センサー(温度や圧力)の値をモニタリングできます
シリアル通信:センサーやモジュールと通信をすることで、データ情報のやり取りができます。
モーター制御:PWM信号によるサーボモーターやLEDの制御が可能
PWM信号による制御は下記記事参照
【コラム:自作開発事例(8pino)】
自作開発の事例としてクリエイティブユニット「VITRO」が開発し2014年から販売した指乗りサイズのArduino互換機「8pino」があります。
Qiitaで詳細も記載されておりますのでご参考までに。
1-2.Arduinoの用語
Arduinoで使用される専門用語は下記の通りです。
スケッチ:プログラム
シールド:拡張ボード(接続して機能を拡張できるパーツ)
レシピ:処理の流れやプロセス
1-3.Arduinoの種類
Arduinoは用途に応じて複数の種類があります。
標準モデル:Arduino Uno, Arduino Leonardo
標準モデルがArduino UNOです。R3とR4(Minima)がありますが、Minimaは2023年6月販売のため情報量はR3の方が多いです。
Arduino LeonardoはArduino Unoとほぼ同じ仕様・機能ですが、マイコンが異なりピン数やUSB端子が若干異なります。
コンパクトモデル:Arduino Nano, Arduino Micro
サイズ感はUNO>>Micro>Nanoです。
ロボット内などスペースが限られた場所に組み込む場合はオススメ
Arduino Nano Everyは旧製品のArduino Nanoと同サイズで高性能・低価格になったものです
ハイエンドモデル:Arduino Mega 2560, Arduino Due
マイコン処理速度、メモリ、I/Oピン数を増やしたモデル
通信ポートが複数あるためマイコン同士を通信させたい時はオススメ
Dueの方がMegaよりクロック周波数が高いため高速処理が可能だが、動作電圧が3.3Vのため他の装置と仕様が異なる点に注意が必要
IoTモデル:Arduino Industrial 101, Arduino MKRシリーズ
Arduino Industrial 101:既に生産中止
Arduino MKR WIFI 1010:2021年7月から国内販売開始
インターネット経由で本体の遠隔制御が可能
特殊品:
Arduino Opta(2023年3月販売開始):PLC用として利用可能(Arduino PLC IDEも完備)▶OptaはLite/RS485/WiFiの3種
コラム:Arduino PLC
産業機器ではセンサ信号を取得して機器を制御する装置としてPLC(Programmable Logic Controller)やIPC(産業用PC)が使用されます。
(PLCの簡易説明は下記記事のDI/DO、AI/AO参照)
「Arduino Pro シリーズ」の中で提供される「Arduino Opta®マイクロPLC(プログラマブルロジックコントローラ)」は安価なPLCを提供します。2024年現在の型式はLite, RS485, Wifiの3種類があります。
産業機器は安定性が非常に重要なため簡単に既存の物とは交換できませんが、簡易制御用であれば使用できるとは思います。これは将来的に記事作成予定です。
1-3-1.モデル比較表
詳細は下記記事を参照させていただきました。
1-3-2.Mega2380とDueの違い
ハイエンドモデルであるMegaとDueの違いは下記記事参照のこと。とりあえずDueの方が価格は高いみたいです。
1-3-3.技適の状況
技術基準適合証明(技適)とは、総務大臣の登録を受けた者等が、特定無線設備について、電波法に定める技術基準に適合しているか否かについての判定を無線設備1台ごとに行う制度です(制度の概要(登録証明機関一覧))。
Arduinoで技適の確認ができる機種は下表の通りです。
2.Arduino仕様
2-1.ArduinoとRaspberry Piの比較
ArduinoはRaspberry PiのようにOSが無いため、コンピューターのような使い方はせずマイコンとして使用します。OSが無いため高速に動作し、リアルタイム性を求める処理に適しています。
またRaspberry Piにはない(※Picoには一部あります)機器が搭載されており、センサや制御に強みを持っています。
ADコンバータ(ADC):電圧をデジタル値に変換(Analog Input)
センサからの電圧値(アナログ)をデジタル値に変換し数値として出力
DAコンバータ(DAC):デジタル値を電圧値に変換(Analog Output)
出力したい値を電圧として出力し、センサや制御機器に渡す※Arduino UNOはPWMを使用した平均電圧のためセンサなどの最大定格超過は不可
Arduino UNO R4移行のみ(R3は無し)
シリアル通信:SPI, I2C, UART, CAN
CANはRaspberry PiやPicoにも無い。Arduinoで使用する場合、外部トランシーバーが必要
Raspberry Pi/Picoには1-Wireあり
PWM出力:周期的に電圧値の0/1の間隔を制御
GPIOピン:多目的に使用できるピン(GPIO:General Purpose Input/Output)
ピン数はRaspberry Piの方が多いが、Arduinoの方がピンの種類は多様
2-2.Arduinoのデータシート
Arduinoのデータシートはすべて公式で公開されています。
2-3.Arduino UNOの仕様
個別の型式の情報を紹介します。全ての情報は量が多く記載できないため、一部の情報を抽出しました。
2-3-1.Uno R4 Minima
Arduino Uno R4 Minimaは下記の通りです
2-3-2.Arduino UNO R4 WiFi
Arduino UNO R4 WiFiは下記の通りです。
3.製品の購入
3-1.購入先に関して
たまにAmazonだと半導体製品は高額で販売されていることがありますが、Arduino自体安いため大きな問題にはならないと思います。
有名な秋月電子やSwitch Scienceなどで購入すれば間違いはないです。
3-2.購入品
購入品はAruduino本体のみです(別途PCとUSBケーブルは必要)。
今回は標準かつ一通りの機能を使用できるArduino UNO R4のMinimaとWiFiモデルを購入しました。
Arduino UNO R3は記事が豊富であり初学者が触る分にはよいですが、①基本的にR4の方がハイスぺ※、②R3より安い、③追加機能もあり 予算的に1個選択するならR4がオススメです。
※R4は各ピンが出せる電流量が減少している。
3-2-1.UNO R3とR4の比較
基本的にR4の方が高性能ですが、各ピンの許容出力電流が8mAに低下しています。産業用を目的として電源電圧をDC24Vにしたなら、AOもあるので電流は4-20mAに対応できるよう20mAのままが良かった気がするのだが・・・・
3-2-2.Uno R3のUSB規格
USBポートは、Uno R4はType-CですがUno R3はType-Bになります。普段の生活でType-Bは使用しないため在庫がない方は購入が必要です。
3-3.Option
追加で購入する部品は用途に応じて変わりますが、IoTで遊ぶ場合には高確率で必要になるものを記載しました。
※本記事では使用しないため、とりあえずは無くても問題ありません。
ブレッドボード:各種電子部品やジャンパ線をボードの穴に差し込むだけで、 はんだ付けをしなくても手軽に電子回路を組むことの出来る基板
全部をジャンプワイヤーやはんだ付けで繋ぐと手間のため便利
ジャンプワイヤ:ブレッドボードに差し込むだけで基板上の回路を繋ぐ
ブレッドボード上の回路作成用
4.Arduinoの環境構築
Arduinoの環境構築方法について説明します。
4-1.Arduinoのソフトウェア
Arduinoで使用できるソフトウェアとしては下記があります。初学者は使いやすさ/簡単さからArduino IDEを推奨します。
Arduino IDE:GUIで操作可能なIDE。直下的で分かりやすい
Version1.x系と2.x系がある
Nightly Buildsは開発中の最新Ver.です。エラーがでると初学者では対策が難しいため、今回はこちらは避けます。
Arduino with Chromebook:Chroebook用
MicroPython With Arduino Boards:ArduinoでMicropythonを利用
Arduino PLC IDE:Arduino PLC用のIDE
対象機器は1章のコラム Arduino PLC参照
Arduino CLI:CLIを使用した開発環境
Arduino Web Editor:ブラウザ(推奨:Chrome)を使用したIDE
4-2.Arduini IDEの設定
Arduino IDEの環境構築を実施します。内容は下記記事参照しました。
http://zattouka.net/GarageHouse/micon/Arduino/arduino_inst.htm
4-2-1.Arduino IDEインストール
プログラム(スケッチ)を作成するために統合開発環境(IDE)をインスト―スしていきます。
Arduino公式ではエコシステムの中で、SoftwareとしてArduino IDEを推奨しています。私はVS Codeが好きなため、初めはArduino IDEで学習し、将来的にはVS Codeに移管していきたいです。
【ダウンロード方法】
Arduino IDEはVer1.Xと2.Xがありますが、最新の2.Xでよいと思います。
自分のOS(Windows)にあったインストーラーを選択し「JUST DOWNLOAD」を選択していきます。
後は全てデフォルト設定のまま進めていきました。関連するウィンドウも全てインストールしていきます。
最終的に下記画面が立ち上がれば完了です。
4-2ー2.日本語の設定
File/PreferencesからLanguageを日本語に選択します。
4-2-3.Board Package追加
Arduino UNO R4 Minimaを使用する場合は事前にBoard Packageのインストールが必要です。
手順は下記の通りです。
IDE左のボードマネジャーを選択
「UNO R4 Minima」で検索
Arduino UNO R4 Boardsをインストール
4-2-4.Port/Boardの選択
最後にポートとボードを選択します。
※本節の画像はArduino UNO R4 Boardsインストール前に実行したものです。おそらく手順通りに実行すればすんなりいくと思います。
【ポート(Port)選択】
”ツール”タブの”ポート”を選択し、接続されているポートを選択します。
【参考:Windowsでのポート確認】
画面左下にあるWindowsマークを右クリックし"デバイスマネージャ"を選択します。Arduinoが接続されていたら、デバイスマネージャのポート(COMとLPT)にUSBシリアルデバイス情報とCOM番号が記載されます。
【ボード(Board)選択】
”ツール”タブの”ボード”を選択し、指定のモデルを選択します。
右下にモデル名が表示されたら環境構築は完了です。
【参考:Arduino UNO R4 Boardsインストール前】
Arduino UNO R4 Boardsインストール前だとArduino AVR Boardしか選択できません。一部の記事ではArduino UNOを選択すればよいみたいに記載していましたが、Arduino公式通りArduino UNO R4 Boardsをインストールしてから実施することを推奨します。
4-2-5.任意:コード補完機能
必須ではないですが、コード作成中に補完機能を有効にするために、「ファイル/基本設定」から”エディターのクイックサジェスト”を選択します。
※本機能はArduino IDE 2.0から実装されているため1.Xは無し。
後はコード作成中に"Ctrl+Space"で補間してくれます。
4-3.応用編:VS Codeでの実装
Arduino IDEの使用に疲れた方向けにVS CODEでの環境構築を紹介します。実装はVS Codeの拡張機能である「Visual Studio Code extension for Arduino」を使用しました。
4-3-1.事前準備の確認
Visual Studio Code extension for Arduinoで使用するためには下記のどちらかが必要となります。
Arduino CLIのインストール(推奨)
Legacy Arduino IDE(1.X系)のインストール(将来なくなるため非推奨)
Arduino2.0系をインストールしており、公式推奨ということもあるためArduino CLIを使用して環境構築を実施していきます。
【注意点:昔のブログ記事】
Arduino 2.0がReleaseされたのは2022年9月14日です。古い記事だとArduino IDEが1.X系前提で話が進むため、記載があるフォルダが見当たらないことに注意が必要です。
4-3-2.Arduino CLIの追加
Arduino CLIのインストールはOS毎に異なり、やり方も複数あります。
今回は一番簡単そうな「Download」の方法で実施します。この方法はビルド済みのバイナリーファイルを用いてArduino CLIを使用します。
「Arduino-CLIのInstallationページ」のDownloadから自分のOSに合ったファイルを選択(私は64bitのWindows10)しました。
"arduino-cli_0.35.3_Windows_64bit.zip"が得られたため、それを展開すると"arduino-cli.exe"と”LICENSE.txt”が含まれます。
"arduino-cli.exe"のPATHが通っている場所なら、コマンドプロンプト(CMD)でarduino-cliコマンドが使用できます。
例としてDesktopにarduino-cli.exeを配置し、下記コマンド実行しました。特に設定しなくてもarduino-cliコマンドが使用できます。
[Terminal]
arduino-cli version
[OUT]
arduino-cli Version: 0.35.3 Commit: 95cfd654 Date: 2024-02-19T13:24:21Z
【参考:常時arduino-cliコマンドを利用する場合】
Windowsで常時arduino-cliコマンドを利用したい場合は”環境変数を編集”から”ユーザー環境変数のPath”にあるPath内に配置する方法などがあります。
4-3-3.arduino-cli.exeの配置
arduino-cli.exeを分かりやすい場所に配置します。Arduino IDE2系をインストール時に”C:\Users\<ユーザー名>\AppData\Local”内に"Arduino15"と
"Programs/Arduino IDE"が存在していますが、とりあえずArduino15内に突っ込みました。
※この時点でファイルを移動させたため、保存場所まで移動しないとCMDでarduino-cliコマンドは実行できなくなくなります。
[arduino-cli.exeの配置]
C:\Users\kiyo\AppData\Local\Arduino15\arduino-cli.exe
4-3-4.VS Codeの拡張機能追加
VS Codeを開き、拡張機能(Ctrl+Shift+X)から下記をインストールします。
Arduino(Arduino for Visual Studio Code)_Microsoft
arduino-snippets(Code snippets for arduino)_Ronaldo Sena
4-3-5.VS Codeの設定
設定ボタン(左下歯車)/設定/拡張機能/Arduino Configurationを選択し、下記3つを実施します。
Arduino:Use Arduino Cliのチェックボックスに✔を入れる
Arduino:Pathにarduino-cli.exeがあるフォルダPathを記載
Arduino:Command Pathにarduino-cli.exeを記載
次に設定の検索ボックスに”C_Cpp.intelliSenseEngine”と入力し、C_Cpp: Intelli Sense EngineをDefaultからTag Parserに変更します。
※詳細は不明ですがこうするとエラーが出にくいらしい
最後にsetting.jsonを開き、設定が全て反映されているか確認します。基本的には選択した後にsetting.jsonを開けば自動で記載されているはずです。
問題なく記載されていたら設定は完了です。
[setting.json]
"arduino.useArduinoCli": true,
"C_Cpp.intelliSenseEngine": "Tag Parser",
"arduino.path": "C:\\Users\\kiyo\\AppData\\Local\\Arduino15",
"arduino.commandPath": "arduino-cli.exe",
5.動作確認
環境構築が完了したらArduinoを動かしてみます。今回は簡単な例としてArduino内にあるLEDを点灯させてみました。
5-1.スクリプト作成
コードは下記の通りです。言語の記載方法は次章で説明します。また記載するのが手間な場合、スケッチ例から同様のコード選択も可能です。
定数の定義:LEDのピン番号を指定
setup():プログラム(スケッチ)実行時に1回だけ実行するコード
ピンのI/O設定:LEDを光らせるためOUTPUTに設定
loop():プログラム(スケッチ)実行時に繰り返し実行するコード
digitalWrite(LED_BUILTIN, HIGH)でピンをHIGHに設定(LED点灯)
1000ms=1sec待機※delay()関数はミリ秒単位
digitalWrite(LED_BUILTIN, LOW)でピンをLOWに設定(LED消灯)
同様に1sec待機
[test.ino]
// Lチカ
const int Pin_LED =13;
void setup(){
pinMode(Pin_LED, OUTPUT); //13PINを出力に設定
}
void loop(){
digitalWrite(Pin_LED, HIGH); //HIGH=5V
delay(1000); //1000ms=1.0sec
digitalWrite(Pin_LED, LOW); //LOW=0V
delay(1000); //1000ms=1.0sec
}
【参考:スケッチ例からスケッチ(プログラム)選択】
Arduino IDEにはサンプルコードが提供されています。
「ファイル/スケッチ例/01.Basics/Blink」からLチカコードを選択できます。
[Blink.ino]
/*
Blink
Turns an LED on for one second, then off for one second, repeatedly.
Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
the correct LED pin independent of which board is used.
If you want to know what pin the on-board LED is connected to on your Arduino
model, check the Technical Specs of your board at:
https://www.arduino.cc/en/Main/Products
modified 8 May 2014
by Scott Fitzgerald
modified 2 Sep 2016
by Arturo Guadalupi
modified 8 Sep 2016
by Colby Newman
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
5-2.検証/書き込み
Pythonのようなインタプリタ型言語とは異なり、ArduinoはC/C++をベースとしているためコンパイラ言語となります。つまり、実行前には機械が理解できる形に変更するためのコンパイルが毎回必要となります。
コンパイルが終わったファイルをArduinoのメモリ内に書き込んで初めてArduinoがコードを実行できます。
プログラム(スケッチ)作成後に下記を実行します。
検証(Verify):左上の✔マークを押すとVerifyを実行します
IDEがコードに間違いがないか確認し、コンパイルを実行します
問題なければ「コンパイル完了」と表示されます
書き込み(Upload):左上の➡マークを押すとUploadを実行します
コンパイルされたコードをボードに書き込みます
問題なければ「書き込み完了」と表示されます
5-3.動作確認
書き込みが完了したらArduinoがプログラム(スケッチ)通りの動作をします。下記にdelay(300)とdelay(1000)の結果を表示します。
なお書き込み後は電源が供給される間は永久的にloop()を実行するため、停止したい場合は電源を抜きます。
出力1:0.3sec(delay(300))で点灯
出力2:1sec(delay(1000))で点灯
【参考:ArduinoのLED番号】
LEDは13番ピンと接続されているため、ピン番号=13で使用できます。文字列の"LED_BUILTIN"でも指定可能です。
参考としてピン13にLED▶220Ω抵抗器▶GNDで接続しました。ピン13がLEDと連動して点灯していることが確認できました。
6.参考1:Arduino言語
Arduino言語は「C言語」と「C++」をベースにしており、C言語のすべての構造と、いくつかのC++の機能をサポートしています。また、AVR Libcにリンクされていて、その関数を利用できます。
本章では簡易に言語の説明を記載しました。
6-1.Arduino言語の記法
Lチカを実施する上で最低限必要な記法を箇条書きしました。ベースはC/C++ですが、Javascriptにも少し近い感じがします。
コードの終わりに全て";(セミコロン)"が必須:命令の区切りを判断
関数は"{}(波カッコ)"で括ることが必須
コメントは"//"で追加
使用する定数・変数には全て型定義が必要
ExcelのVBAでいう"Option Explicit"と同じ状態
プログラムは必ず「setup()」と「loop()」が実行される
6-2.定数/変数の定義
プログラム内で数値を変更しないものは定数として扱います。定数を定義する時は頭に"const"を付けます。
プログラム内で数値を変更するものは変数として扱います。変数を定義する場合は型式 変数名のみで定義可能です。
定数・変数を定義時に型定義をしますが、データ型は下記の通りです。
[サンプル]
const int Pin_LED =13;
int pin_val = 1;
6-3.初期化:setup()
setup()はArduinoボードの電源を入れたときやリセットしたときに、一度だけ実行されます。ピンモードの設定やライブラリなど、実動作に必要な事前準備を実施します。
setup()でよく使用する関数は下記の通りです。
pinMode(<ピン番号>, <形式>):GPIOピンの設定
形式はOUTPUT/INPUT
6-4.連続実行:loop()
setup()実行後に連続して実行される関数となります。Pythonでいうwhile文のようなものです。
このloop()内にArduinoに実行してほしい動作を記述することで、Arduinoがloop()内のプログラム通りに動作します。
loop()でよく使用する関数は下記の通りです。
digitalRead(<ピン番号>):DI▶値の読み取り
digitalWrite(<ピン番号>, <状態>):DO設定▶値の出力
状態はHIGH/LOW
analogRead(<ピン番号>):AI▶アナログ値の読み取り
10bitのため値は0~1023▶電圧は0~5V
analogWrite(<ピン番号>, <値>):AO設定※▶PWM出力
値に数値(0~255までのint型)を指定するとPWM出力がでる。
一般的なAOは出力電圧の変化ですが、ArduinoではPWM出力による実行平均電圧です➡センサなどで使用されるAOとは別であり最大定格を超えると機器の破損につながるため注意。
delay(<待ち時間[ms]>):ms単位でWait
7.参考2:VS Codeでの実装
Arduino IDEでなくVS Codeで実装する人向けのプログラム(スケッチ)作成方法を紹介します。環境構築は4章で対応済みという前提で進めます。
参考までにVisual Studio Code extension for Arduinoのコマンド一覧は下記の通りです。
7-1.保存用フォルダの作成
Arduinoは1個のスケッチを1個のフォルダで管理します。まずフォルダを保管する位置を決定し、保存用のフォルダを作成します。
今回の試験では下記としました。
スケッチ保存Dir:C:\Users\kiyo\Desktop\Script\Arduino
サンプルスケッチ保存Dir:test
当然ですがTestフォルダは空の状態です。
7-2.エクスプローラーでフォルダを開く
エクスプローラーから「フォルダを開く」を選択し、先ほど作成したディレクトリを選択します。
※次節のInitiallizeにある.vscodeでスケッチやビルドしたファイルを管理するため、この手順が無いと2回目以降でスケッチの書き換えができなくなるトラブルが発生しました。
7-3.初期化(Initialize)
エクスプローラーから”新しいファイル”を選択し、拡張子名がinoのファイル名を記載します。この時点でinoファイルが作成されました。
コマンドパレット(Ctrl+Shift+P)から”Arduino: Initialize”と入力し、選択します。
※公式では「Arduino: Initialize: Scaffold a VS Code project with an Arduino sketch.」とあり、Scaffoldは「足場を組む」意味だそうです。
完了するとVS Codeの下にはBoard TypeとSerial Portを選択できる場所が現れ、フォルダ内には".vscode"の隠しフォルダが出現します。この中に”arduino.json”ファイルがありスケッチのPathなどが管理されます。
7-4.Board/Serial Port設定
Arduino IDEと同様(4-2-4 Port/Boardの選択 )BoardとPortを選択します。
Board選択はVS Code下の<Select Board Type>を選択すると"Arduino Board Configuration"タブが開くため、セレクトボックスから該当するBoardを選択します。
Port選択はVS Code下の<Select Serial Port>を選択するとコマンドパレットにシリアルポート一覧が出るため、該当する方を選択します。
【参考:c_cpp_properties.json】
この時点で.vscodeフォルダ内に”c_cpp_properties.json”というファイルが作成されます。色々記載があるため色々管理してると思います。
※おそらくビルドされたファイルなどもここで管理されると思います。
[c_cpp_properties.json]
{
"version": 4,
"configurations": [
{
"name": "Arduino",
"compilerPath": "C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\bin\\arm-none-eabi-g++",
"compilerArgs": [
"-w",
"-fno-use-cxa-atexit",
"-fno-rtti",
"-fno-exceptions"
],
"intelliSenseMode": "gcc-x64",
"includePath": [
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\cores\\arduino\\tinyusb",
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\cores\\arduino\\api\\deprecated",
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\cores\\arduino\\api\\deprecated-avr-comp",
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\cores\\arduino",
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\variants\\MINIMA",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\arm-none-eabi\\include\\c++\\7.2.1",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\arm-none-eabi\\include\\c++\\7.2.1\\arm-none-eabi",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\arm-none-eabi\\include\\c++\\7.2.1\\backward",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\lib\\gcc\\arm-none-eabi\\7.2.1\\include",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\lib\\gcc\\arm-none-eabi\\7.2.1\\include-fixed",
"c:\\users\\kiyo\\appdata\\local\\arduino15\\packages\\arduino\\tools\\arm-none-eabi-gcc\\7-2017q4\\arm-none-eabi\\include"
],
"forcedInclude": [
"C:\\Users\\kiyo\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\renesas_uno\\1.1.0\\cores\\arduino\\Arduino.h"
],
"cStandard": "c11",
"cppStandard": "c++17",
"defines": [
"F_CPU=48000000",
"ARDUINO_UNOR4_MINIMA",
"ARDUINO=10607",
"PROJECT_NAME=\"C:\\Users\\kiyo\\AppData\\Local\\Temp\\arduino\\sketches\\B7E8D3643DACA78C36DCE3DA34BA43B6/test.ino\"",
"ARDUINO_MINIMA",
"ARDUINO_ARCH_RENESAS_UNO",
"ARDUINO_ARCH_RENESAS",
"ARDUINO_FSP",
"_XOPEN_SOURCE=700",
"CFG_TUSB_MCU=OPT_MCU_RAXXX",
"__DBL_MIN_EXP__=(-1021)",
"__HQ_FBIT__=15",
"__FLT32X_MAX_EXP__=1024",
"__cpp_attributes=200809",
"__UINT_LEAST16_MAX__=0xffff",
・・・以下省略・・・
]
}
]
}
【参考:Windowsでのポート確認】
画面左下にあるWindowsマークを右クリックし"デバイスマネージャ"を選択します。Arduinoが接続されていたら、デバイスマネージャのポート(COMとLPT)にUSBシリアルデバイス情報とCOM番号が記載されます。
7-5.Verify/Upload
最後は通常通り下記手順で実施します。
コード作成:今回は簡単なLチカ
Arduino: Verify(Alt+Ctrl+R):エラー確認+ビルド
Arduino: Upload(Alt+Ctrl+U):Arudino(Board)へ書き込み
[test.ino]
const int Pin_No = 9;
void setup(){
pinMode(Pin_No, OUTPUT);
}
void loop(){
digitalWrite(Pin_No, HIGH); // LED点灯
delay(1000); // 1秒待つ
digitalWrite(Pin_No, LOW); // LED消灯
delay(1000); // 1秒待つ
}
[OUT:Vefiry実行後]
[Starting] Verifying sketch 'test.ino'
[Warning] Output path is not specified. Unable to reuse previously compiled files. Build will be slower. See README.
IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Done] Verifying sketch 'test.ino'
[OUT:UUpload実行後]
[Starting] Uploading sketch 'test.ino'
[Warning] Output path is not specified. Unable to reuse previously compiled files. Build will be slower. See README.
IntelliSense configuration already up to date. To manually rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Done] Uploading sketch 'test.ino'
問題なく書き込みできたことを確認しました。
8.参考3:Arduino上達にむけて
Arduinoを学んでいく上で使えそうな記事を張り付けておきます。
8-1.Arduinoでやれること
8-2.Arduino Cloud
8-2-1.概要
Arduinoをクラウドから操作することでIoT化できるアプリです。無料でも使用できますが有償プランが2種類存在します。
機能としては下記の通りです。
スケッチの自動生成
デバイス間通信
ワイヤレスアップデート
ESPボードをサポート
クラウドとのイベント発生時のアクション実行トリガー
ダッシュボード共有
Alexaとの統合
API統合
IFTTT/ZapierなどをWebhookで利用
最新ファームウェア有無の自動チェック
ダッシュボードのカスタマイズ
ウォッチドッグタイマー
Node-REDとの統合
Arduino公式サイトやフォーラムの既存アカウントで無償プランを利用可能
単純にブラウザ上でArduinoスケッチを作成できるだけでなく、アプリを用いてスマホから操作することなども可能とのことです。
8-2-2.Project Hub
他の人が作成したプロジェクト/スケッチを確認することが出来ます。おそらくAIでいう「Hugging Face」のArduino版と思います。
8-3.Processing
Processingとは、画像処理やアニメーション等のプログラミングに特化した、オープンソースのプログラミング環境であり、Javaをベースにした実行環境とエディタが用意されています。
Arduinoと連携させることにより、ProcessingからArduinoの情報を取得して、PCの画面上で映像や音を表現できるようになります。
スクリプトを実行するためにはProcessingで作成したスケッチとArduinoで作成したスケッチの2個準備する必要があります。
8-4.周辺機器
メモレベルでArduinoに設置できる周辺機器を追加しておきます。基本的に欲しいもの(センサ、液晶パネルなど)は適宜調べることを推奨します。
【RTC(real time clock)】
【5Vリレー】
DS2E-S-DC5Vは定格消費電力:200mWより電流は40mAです。このままだとArduinoの定格電流を超過します。必要に応じてMOSFETや抵抗器などが必要です。
【MOSFET】
MOSFET N-CH 100V 10A TO220AB:IRF520
https://www.marutsu.co.jp/pc/i/12908264/
【電磁弁】
散水コントローラー AC電源式 AC6S用 電磁弁 :PL-DEV20
https://www.monotaro.com/g/00999968/
別添
別添1:Arduino関係
別添2:環境構築関係
別添3:便利ツール
あとがき
早くPLCやりたいけど、まずは手持ちの入門キット3つやってからかな。
センサはRaspberry Pi Picoでやったので、あとはArduino言語の理解とAOピンを使えば次にいける。
更新履歴
2024年3月23日:準備開始
2024年5月26日:初版発行
2024年5月31日:Arduino言語によく使用する関数を追記
2024年6月1日:VS CODEでの環境構築を追記
2024年6月2日:参考資料の更新
この記事が気に入ったらサポートをしてみませんか?