Arduinoは、メーカー向けの低価格で小型の電子工作プラットフォームです。macOSでArduinoを使い始める方法をご紹介します。
2005 年に小型電子プラットフォーム Arduino が電子業界に爆発的に登場したとき、メーカー コミュニティに衝撃が走りました。
イタリアのイヴレアにある Interaction Design Institute の Massimo Banzi 氏と彼の開発チームの発案によるこの小型マイクロコントローラ プラットフォームは、学生や趣味で電子工学に取り組んでいる技術者に、電子機器の開発を可能にする小型でシンプルな低コストのプラットフォームとツールを提供するために設計されました。
このプラットフォームは標準化されるまでに、幾度かの改良を経てきました。プラットフォームの設計はオープンソースであるため、誰でも単一のオープンリファレンスデザインに基づいてArduinoデバイスやコンポーネントを作成できます。
Arduino のプログラミングは、Arduino プログラミング言語 (APL) に基づいています。APL 自体は Processing に基づいていますが、APL は C と非常によく似ています。
Arduinoという名前自体は、開発グループが集まったイタリアのバーの名前に由来しており、そのバーの名前は中世のイタリアの王に由来しています。
従来の AVR プラットフォームと同様に、Arduino には、コストの低さ、普及率の高さ、部品供給のしやすさなど、いくつかの利点があります。
Arduino の導入以来、このプラットフォームを中心に業界とエコシステムが生まれ、現在では世界中に推定 3,000 万人のユーザーがいます。
コンピューターさえあれば、誰でも約25ドルでArduinoを始めることができます。プログラミングのほとんどは、Arduinoのダウンロード可能なIDEを使って行います。
ただし、公式サイトには現在、オンライン IDE (統合開発環境) が用意されており、これを使用して Web 上でデバイスをプログラムできます。
2017 年に Arduino.cc は英国の ARM Holdings との提携を発表しました。
Arduino の詳しい紹介については、公式 Web サイトの 「Arduino とは」を参照してください。
はじめる
現在、Arduinoボードには様々な価格帯のモデルが存在します。最も普及しているのはArduino Uno R3で、電源とUSBコネクタ、アナログおよびデジタルセンサー用の入出力(I/O)コネクタ、そして電源とデータ通信用の最小限のオンボードLEDを備えた小型のボード1枚で構成されています。
ボードのラインナップには、Uno、Nano、Pro Micro、Pro Mini、Leonardo、Due、Mega、Yun、Yun Mini、Gemmaなどが含まれます。Arduino.ccは最近、LoRaネットワーク、NodeMCU、NodeRedなどの機能を搭載した、よりハイエンドなArduino(MKRファミリー)の新製品も発表しました。
Gemmaなどの一部のArduinoボードは既に販売終了となり、サポートも終了していますが、様々な販売サイトではまだオンラインで入手可能です。組み込みシステムやバッテリー駆動向けに設計された低消費電力のNiclaファミリーも存在します。
ほとんどのボードはAtmelマイクロコントローラ(特にAtmel ATmega328など)をベースにしていますが、Dueは32ビットARMプロセッサをベースにしており、YunはフルバージョンのLinuxオペレーティングシステムを搭載し、オンボードWi-Fiを備えています。Yunは現在販売終了となり、はるかに小型のYun MiniとMKRファミリーに置き換えられています。
Megaははるかに大きなボードです。オリジナルのYunと同様に、I/Oヘッダーを介して50以上の接続を提供します。
Seeed Studio XIAO SAMD21(11ドル)やBeetle(11ドル)など、Arduinoの非常に小さいバージョンもあります。
Arduinoの基本的な考え方は、1つまたは複数の小型電子センサーをボードのアナログまたはデジタル接続ピンに接続することです。これらのピンは通常、ボード前面のピンヘッダーの隣にラベルが貼られています。センサーとの通信は、IDEまたはWebエディタを使用してプログラムし、Arduinoにアップロードします。
この写真は、WeMos の UNO R3 クローンを示しています。左側に WiFi、電源、アナログ ピン、右側にデジタル ピンと送受信 LED ピンがあります。
UNO に似た Leonardo を次に示します。
ほとんどのボードには、3.3V/5V電源、グランド(GND)、3~11個のアナログI/Oと10個のデジタルI/O、電源、送信(TX)、受信(RX)ピンがあり、これらはボード上のLEDに反映されます。一部のボードでは、送信/受信で1つのLEDが共有されています。
ArduinoボードはUSBケーブルまたはWi-Fi経由でコンピューターに接続します。ほとんどのボードはUSB Type-Bコネクタ(ほとんどのUSBプリンターに搭載されているものと同じ)またはMicro-B USBコネクタを搭載しており、サードパーティ製のボードの中にはBluetoothをサポートしているものもあります。
Arduino.ccでは、さらに小型のUNO Mini Limited Edition(55ドル)も販売しています。UNO R3の約半分のサイズで、USB-Cコネクタを備えています。
ほとんどのArduinoボードはUSB接続から電源を供給しますが、追加の電源としてDC電源ジャックも搭載されています。適切なケーブルがあれば、5VのUSB DC電源アダプターを接続するか、標準的な9V電池から電源を供給できます。
Pro MicroやPro Miniなどの一部のモデルにはUSB接続がなく、代わりに5~6本のヘッダーピンが搭載されています。これらのピンは、専用のシリアルアダプタケーブル(通常はUARTベース)を使用してプログラミングする必要があります。
USB ポートを備えた小型の UART アダプタ ボードは、オンラインで数ドルで入手できます。
多くのサードパーティボードベンダーが登場し、さまざまな機能を備えた幅広いボードバリアントが提供されるようになりました。
センサーによっては、直接センサーピンのみを備えているものもあれば、I2C、I3C、SPI、UARTなどのマイクロプロセッサバス規格用のピンも備えているものもあります。外部バス接続により、より複雑なシステム設計や、Arduinoベースの小型ロボットの構築など、より高度なユースケースが可能になります。
デバイス センサーには、以下のものが含まれますが、これらに限定されません。
- LED
- 小型LCDまたはOLEDディスプレイ
- 大気センサー
- 光と動きのセンサー
- モーター制御センサー(CNC加工用など)
- カメラ
- ディスプレイ
- データ記録
- リレー
- GPS
- 水センサー
- 気象観測所
- ドローンと飛行
- CANバス(自動車)
- 模型ロケット(高度計)
- 力
エコシステムと企業
Arduinoに特化した企業が数多く登場し、Arduinoベースの製品、チュートリアル、書籍を提供しています。中でもAdafruit、Sparkfun、DFRobot、Funduino、Pixel Electric、Keystudio、SeedStudio、Seeduino、Hacktronicsなどが挙げられます。
Adafruit などの一部のベンダーは、Trinket や Flora などのボードを作成しています。これらのボードは、完全な Arduino ではありませんが、Arduino と互換性があり、Arduino IDE または Web エディターを使用してプログラムできます。
同様に、ST Microelectronics は、ARM Cortex-M に基づく 32 ビット標準である STM32 と呼ばれる独自の Arduino のような標準を開発しました。
STは、小型のSTM32評価ボードを低価格で提供しています。STM32は主に組み込み回路の設計・開発に使用され、特に産業用ロボットに多く使用されています。
ST 社では、NUCLEO と呼ばれる STM32 学習ボードのラインも提供しており、価格は約 30 ドルからです。
いくつかのサードパーティ企業は、10 ドル未満の小型 STM32 学習ボードを提供しています。
Ideaspark などの他の企業は、小型の統合 OLED ディスプレイをボード上に直接組み込むことで Arduino をさらに一歩進め、Arduino で処理される情報を簡単に表示できるようにしました。
他のボードベンダーは、ESP32 または ESP8266 ネットワーク モジュールをボードに直接組み込み、ワイヤレス化を実現しています。
Arduinoカメラを専門とする企業としては、Charmed LabsやArducamなどが挙げられます。ほとんどのArduinoカメラは、データ転送にSPIバスを使用しています。
Kiwi Electronics で入手可能な Seeed Arduino センサー キット (36 ドル) もチェックしてください。
シールド
Arduinoの最大の強みの一つは、センサーシールドをボードに取り付けることができることです。ほとんどのシールドはUNOに適合しますが、Keystudioなどの先進的な企業は、Megaのような大型ボード用のシールドも製造しています。
シールドとは、1つまたは複数のセンサーやデバイスを搭載した2枚目のプリント基板(PCB)のことです。底面にはピンが並んでおり、ArduinoのI/Oピンに直接接続できます。シールドをArduinoの上に取り付けるだけで、配線やはんだ付けをすることなく、瞬時に機能を拡張できます。
以下にイーサネット シールドのサンプルを示します。
Nano用シールドなど、一部のシールドはリバースシールドです。NanoにはI/Oヘッダーや電源ヘッダーがなく、底面に接続ピンのみがあるため、一部の企業はNanoを上面に差し込むNano用ブレークアウトボードを開発しています。
Nanoのピンはシールドに接続されており(逆ではなく)、シールドには電源ポート、リセットスイッチ、そしてジャンパー線接続用の多数のオスとメスのピンがあります。これにより、実質的にシールドへの接続が実現します。これにより、Nanoの取り扱いが非常に容易になります。
NanoにはUSBポートが搭載されているため、直接プログラミングして回路をテストすることも可能ですが、設計が完了したらNanoをシールドから取り外し、センサーをピンに直接接続できます。Nanoは、ラジコン飛行機、車両、模型ロケットなどに簡単に組み込むことができます。
さまざまなシールドが用意されていますが、最も一般的で人気のあるシールドは次のとおりです。
- ネットワーク(通常はイーサネット、WiFi、または Bluetooth)
- I/Oおよびセンサーブレークアウト
- LCD、TFT、またはOLEDディスプレイ
- モータードライバー
- カメラ
- 電池
- プロトタイピング
- 多機能(学習)
英国の Hobby Components は、Uno および Leonardo 用の多機能学習シールド (4.58) を販売しています。これには、4 桁の LED ディスプレイ、ブザー、3 つの入力スイッチ、リセット スイッチ、5V/GND ヘッダー、アナログ ピン 0 用の可変抵抗器、およびアドオン Bluetooth 音声認識モジュール (APC220) 用のヘッダーが含まれています。
Cohesive Computing には、多機能シールドに関するオンライン ガイドがあります。
以下は、9V 電池で駆動する UNO の LCD シールドです。
ブレッドボード
Arduinoでカスタム回路を作成してテストしたい場合は、シールドではなくブレッドボードを使用することをお勧めします。ブレッドボードとは、回路接続用の穴が列状に並んだ小さなプラスチック板で、その下には接続用の金属レールが付いています。
ブレッドボードに部品を差し込み、ジャンパー線を使ってArduinoの3.3V/5VおよびGND I/Oコネクタに接続します。ほとんどのブレッドボードには、長辺に2列の電源線があります。1列目は通常「+」と表示され赤色で表示される電源線、もう1列目は通常「-」と表示され青色で表示されるグランド線です。
電源レール上の任意の位置に電源接続をブレッドボードに接続できます。その後、追加のジャンパー線を使用して、ボード中央のコンポーネントと電源/グランドを接続し、完全な回路を構成します。
ブレッドボードには様々なサイズがありますが、最も一般的なのは、5インチから10インチの短いものから長いものまで、白いプラスチック製のブレッドボードです。電源端子付きの大型ブレッドボードや、専用の電源レールのない小型ブレッドボードもご用意しています。
一部の特殊なブレッドボードには、ネジやスタンドオフを使用して Arduino ボードを固定するためのスペースがあります。
いくつかの企業は、ブレッドボードに直接取り付けて、両側の電源レールに直接電力を供給できる小型のUSB/電源シールドを製造しています。これらのシールドは、USBポート、DC電源ポート、オン/オフスイッチ、電源LED、そして3.3V/5V切り替え用のジャンパーを備えています。下図のように、ジャンパーで2組の電源接続を提供し、電源レールに3.3Vまたは5Vを接続できるものもあります。
このようなボードの電源に必要なのは、2 番目の USB ポート、5V DC 電源アダプター、または 9V バッテリーだけです。電源のためにジャンパー ワイヤを Arduino に接続する必要がありません。
以下は、さまざまな Arduino ハードウェアの概要です。
左上から順に: DOIT.am の ESPDuino UNO クローン、WeMos D1 WiFi UNO クローン、リバース シールド上の Nano、プロトタイピング シールド、コンポーネント付きプロトタイピング シールド、STM32 評価ボード、LED、ミニ ブレッドボード、イーサネット シールド、Funduino ブレイクアウト シールド、CNC モーター ドライバー シールド、LCD シールド、8 桁 LED 表示、220 オームの抵抗器、1K SMD 抵抗器、ジャンパー ワイヤ、テスト クリップ、タッチ キーパッド。
IoT
モノのインターネットという用語は、何かを感知し、インターネットに接続し、センサーを制御またはセンサーからのレポートを返すことができる、マイクロコントローラベースの小型接続デバイスを表すようになりました。
IoT には Arduino だけでなく組み込みシステムなど幅広いシステムが含まれますが、メーカーは IoT という言葉を聞くと Arduino を思い浮かべるようになりました。
ソフトウェアのインストール
Mac に Arduino IDE をインストールするには、arduino.cc にアクセスし、「ソフトウェア」をクリックしてから、「ダウンロード オプション」セクションで Intel または Apple Silicon の Mac バージョンのリンクをクリックします。
現在の開発バージョンを試してみたい場合を除き、「Nightly Builds」セクションのリンクは不要 です。Nightly ビルドは不安定でバグが含まれている可能性があります。
ダウンロード ページには、Arduino オンライン Web エディターへのリンクもあり、これを使用してプログラムを Arduino のクラウドに保存できます。
Arduinoを接続する
ArduinoをMacに接続するには、適切なUSBケーブルを用意してください。ArduinoのUSBポートの種類に応じて、USB Type A - USB Type B、Type A - Micro-B USB、USB C - Type B、またはUSB C - Micro-Bケーブルが使用される場合があります。
Arduino Nanoは通常、 Micro-Bよりも少し大きいコネクタを持つ8ピンのMini-Bプラグを使用します。Mini USBには、旧式の8ピンタイプと、少し大きい標準のMini-Bタイプの2種類があることに注意してください。
ほとんどのNanoには、旧式の8ピンタイプが必要です。驚くべきことに、標準のプラグはほとんどのNanoには適合しません。
ArduinoをMacに接続すると、オンボードの電源LEDが点灯するはずです。ArduinoにESP8266などのWi-FiまたはBluetoothチップが内蔵されている場合は、Arduinoを接続するとすぐに点滅する別のLEDが搭載されている場合があります。
一部のArduinoにはオンボード電源LEDが2つ搭載されています。データ転送中のみ点滅するTX/RX LEDと混同しないようご注意ください。
次に、Mac デスクトップでダウンロードした Arduino IDE をダブルクリックして開きます。
少量のテンプレート コードが含まれた単一の Arduino ウィンドウが開きます。
ライブラリを更新する必要がある場合、IDE エディター ウィンドウの右下隅にメッセージが表示されます。
「すべてインストール」をクリックすると、インストールされているすべてのライブラリが最新になります(ライブラリについては後ほど説明します)。このメッセージは、IDE の実行時にライブラリの更新が必要になったときに表示されます。
IDEを初めて起動する場合、または複数のArduinoを接続している場合は、どのArduinoを使用するかをIDEに指定する必要があります。IDEはすべてのArduinoの種類と、Macに接続可能なすべてのポートを認識していますが、最初はどのArduinoを使用するか、どこに接続されているかは認識していません。
IDEを開いた際にウィンドウの左上隅のポップアップメニューにボードが表示されない場合は、メニューをクリックして選択してください。メニューにボードが表示されない場合は、「他のボードとポートを選択」をクリックし、表示されるリストからボードを選択してください。
一般的なポートとしては、USB、Wi-Fi、Bluetooth、シリアルポートなどがあります。また、MacとArduino間の通信を監視できるシリアルモニターウィンドウも用意されています。
ボードに複数のネットワークインターフェースが搭載されている場合は、ポップアップメニューに個別に表示されます。以下の例では、ESPDuinoクローンを使用しています。
Bluetoothインターフェースが最初にリストされていますが、UNOはUSBケーブルで接続されており、2番目に「/dev/cu.usbserial-143110」としてリストされています。Bluetoothインターフェースを使用しないため、USB接続(cu.usbserial-143110)を選択する必要があります。
「その他のボードとポートを選択」ウィンドウでは、まずボードの種類を選択する必要があります。ボードの種類は既にわかっているので、ボードの種類を選択すると、接続可能なポートのリストが絞り込まれます。
「すべてのポートを表示」チェックボックスを有効にすると、選択したボードのすべての可能なポート接続が表示されます。
上記の例では、2つのUNOが接続されています。最初の2つのポートはESPDuinoのBluetoothとUSBの両方のポートで、3つ目のポートはUSBのみの汎用UNOクローンのUSBポートです。間違えやすいので注意してください。
ツールメニューの「ツール」->「ボード」および「ツール」->「ポート」からボードとポートを選択することもできます。すぐ下の「ボード情報を取得」を選択すると、ボード名、固有のUSBベンダー、および製品IDが表示されます。(すべてのUSBデバイスメーカーは、USBベンダーと製品IDをUSB.orgに登録する必要があります。)
IDE が Arduino に接続されたので、IDE エディター ウィンドウを簡単に見てみましょう。
ウィンドウ上部の緑色のバーの左から右に次の内容が表示されます。
- コンパイルボタン
- アップロードボタン
- デバッグ ボタン (UNO はサポートされていません)
- ボード選択ポップアップ
- USBシリアルモニターウィンドウ
- USBシリアルモニターペイン
USB シリアル モニター ペイン ボタンのすぐ下に、エディター タブ ボタンがあります。
エディター ウィンドウの左側には、上から下の順に 5 つのボタンがあります。
- スケッチブック(新しいスケッチとクラウドボタン付き)
- ボードマネージャー(ボードの更新または追加)
- ライブラリマネージャ(インストール済みまたは推奨ライブラリの更新用)
- デバッグ
- 編集者検索
ボードをセットアップしたら、Arduino IDE は簡単に使用できるようになります。
スケッチウィンドウのライブラリマネージャーペインでは、公式ライブラリやサードパーティ製ライブラリをダウンロードしたり、インストール済みのライブラリを更新したりできます。ライブラリとは、IDEに特定の機能やデバイスサポートを追加するコードバンドルです。
たとえば、特定のブランドの非汎用センサーを使用する場合は、まずそのライブラリをダウンロードしてインストールする必要があります。
ライブラリ マネージャー ウィンドウの上部にある [トピック] ポップアップ メニューをクリックすると、さまざまなカテゴリのライブラリを表示できます。
本
Arduino を学ぶために読む価値のある入門書がいくつかあります。
- Arduinoの基本
- Arduino テクニカル リファレンス
- Arduinoをマスターする
- 発明家のための実用的なエレクトロニクス
また、MAKE: や SparkFun などにあるものを含め、Arduino の概要をまとめた便利なチートシートも多数あります。
Arduinoの世界は広大で、事実上無限の可能性を秘めています。Arduinoとセンサーを使えば、ほぼあらゆるシステムのプロトタイプを構築できます。
今後の記事では、Arduino のプログラミングと、ホームオートメーション、カメラ、気象監視、モーター制御、さまざまなバス通信などのより複雑な使用方法について説明します。