LoginSignup
1
2

More than 3 years have passed since last update.

かさごでもわかるArduino -環境構築編

Last updated at Posted at 2020-12-17

はじめに

この記事はこれからArduinoをつかった電子工作を始めたいという方や, プログラミングを始めてみたいけど 漫然と言語の勉強をするのは嫌だ という方向けに書いております.
プログラミングを目的に据えてしまって, 途中で挫折してしまうような後輩や友人を何人か見てきたので, 「Arduinoを動かす」という目的に対する, 手段としてのプログラミングを紹介できたらいいかな なんて考えて書いてます.
この記事では環境構築をメインにしています.言語編は完成次第公開します.

環境

  • Arch Linux(スクリーンショット等は著者環境のものです.Windowsのものも追加しました.)
  • Visual Studio Code
  • Arduino Nano(ここでは互換品についても触れます.また,プログラムについてはArduino Uno等でもある程度共通です)
  • Platform IO(VSCode拡張機能)

用意するもの

PC
USBポートがあるもの.WindowsとArch Linuxで動作を確認しております

USBケーブル
Nanoの場合は USB Type-A - USB Type-B Mini

Arduino Nano
AliExpress等で激安で入手したものについては下記ドライバの項にて説明あり

インストールするもの

Visual Studio Code

公式サイトで自分の使っているOSにあったものをダウンロードし,インストーラに従ってインストールを進めてください. もしくは,Linuxのパッケージマネージャを使い,

yay -S visual-studio-code-bin

というふうにインストールしても良いでしょう.(例はArchLinuxの場合)
日本語化については, 他記事で詳細に解説されているでしょうから, ここでは省きます.

PlatformIO

VSCodeの拡張機能よりインストールします.
四角が集まったような, 上から5つめの赤丸で囲まれたアイコンで「拡張機能」タブを開き, 黄色い矢印で示された検索窓に platformio と入力します.

Extension_tab.png

おそらく上の方にPlatformIO IDEと書かれた拡張機能が出てくるかと思うので, そちらをインストールします.

PIO_Extension.png

インストールすると, 右下にぴょこって下の画像のようなメッセージが出てくると思います.これは「Pythonのポータブルインタプリタをダウンロードしています」となっていますが, いくつか必要なものをダウンロードしてインストールするようです.PlatformIOを導入したあとはしばらくオンラインに保ってこれらのパッケージが揃うまで待ちましょう.

Screenshot 2020-11-12 010222.png

必要なものが揃うと,次の画像のような表示がでてきます. 「Reload Now」をクリックするとVSCodeが再起動します.
Screenshot 2020-11-12 010536.png

これで, PlatformIOはインストールできました. 再起動後, VSCodeの左下に家のアイコンがあり, それをクリックすると下のようなPlatformIOのホーム画面が開くかと思います.

PIO_Home.png

これでPlatformIOのインストールはOKです.

シリアルドライバ

こちらの項は, 安い互換品のArduino Nanoなどを買ったときに, CH340という安いUSBシリアルチップが載っている場合の手順です.

純正品をご購入の方は読み飛ばしてください.

Windowsの場合

Windowsの場合は,互換Arduinoをつなぐと, デバイスマネージャー(左下のWindowsアイコンを右クリック→"デバイスマネージャー")に画像のようにでてくると思います.("COM3"の部分は環境によって違うかもしれません)

Screenshot 2020-11-12 005811.png

ドライバを入れないと, Arduinoとのデータのやり取りができないので, ドライバをインストールします. "CH340" でググってみると,

Screenshot_2020-11-12 CH340 - Google 検索.png

天下の秋月電子通商さんのページがトップにでてきました. このページ にある"ドライバーソフト"のリンクからzipファイルをダウンロードします.
ダウンロード後, 解凍すると,CH341SERINSTALLの2つのディレクトリがあります.このうち, CH341SERの中にある SETUP.EXEファイルを実行し, でてきた画像のようなウィンドウでINSTALLをクリックすることでドライバのインストールが完了します.

Screenshot 2020-11-12 011734.png

Linuxの場合

Linuxを使っている場合, ググって出てくるインストール用のドライバソースファイルのアーカイブでは上手にビルド出来ず, インストール出来ないという沼に陥ります. 公式にドライバのソースコードが作られたときのヘッダファイルが, 新しい現在のバージョンのLinuxカーネルには無いようなのです.

それでも, 諦めが悪くて貧乏で純正が買えない僕は, LinuxでなんとしてもやっすいArduino互換を使いたかったので探し回りました. ありました. すばらしき人類の英知 OSSの宝庫, GitHubに.

これがあればあとは早いです. ターミナル上で

sudo pacman -S arduino arduino-docs avr-binutils avr-gcc avr-libc avrdude #必要なパッケージをインストール
git clone https://github.com/juliagoda/CH341SER #Gitレポジトリをクローン
cd CH341SER #クローンしたディレクトリに移動
make #コンパイル
sudo make install #インストール

で使えるようになります.

Arduinoを動かそう

プロジェクトの作成

先程のPlatformIOのホーム画面の右側に, Quick Accessと大きく書いてある下, New Projectとあります. 新しいプロジェクトはここをクリックして作成できます.
クリックすると, Project Wizardが立ち上がり,この中でプロジェクト名, 使うArduinoの種類, フレームワークを指定して, プロジェクトの保存先を指定します.

Boardは使うマイコンボードの種類で, 今回僕はArduino Nano(安い互換品)を使うので画像のように指定しています.各自使うものに合わせて設定してください.

LocationのUse default locationのチェックを外すと, 自分のPC内の好きなところにプロジェクトを保存できます.

それぞれ指定したあと, 右下のFinishでプロジェクトのディレクトリが作られ, VSCodeで開きます.

Screenshot from 2020-12-18 00-17-23.png

最初はしばらく待たされるかもしれません. プロジェクトのディレクトリが開かれたら,左側にプロジェクトディレクトリの中身が表示されています.プロジェクトのディレクトリには,
- .pio/ - 隠れて表示されないかも
- .vscode/ - これも隠れて表示されないかも
- include/ - 重要 意図して含むインクルードファイルが置かれる
- lib/ - 重要 自分でプライベートなヘッダファイルとかを記述したときにここに置く
- src/ - 重要 main.cpp (一番メインのファイル)がここにある
- test/ - ユニットテストやプロジェクトテストのためのディレクトリ
- .gitignore - Git(バージョン管理システム)の追跡対象外を定義するファイル.
- platformio.ini - PlatformIOの設定を記述するファイル.後で編集します

があります.まずはsrc/main.cppを開いてみましょう.(>srcのようになっているときはクリックすると展開されてvsrcのようになります)

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
}

といった風になっているかと思います.ここに次のように書き加えてみましょう.

#include <Arduino.h>

void setup() {
  // put your setup code here, to run once:
  //ここに設定を書きます.
  pinMode(13,OUTPUT);//基板の上にあるLのLEDにつながっている13番ピンを出力にします
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(13,HIGH); //13番のピンの出力をHIGH(5V)にします
  delay(1000); // 1000ms そのまま待機します
  digitalWrite(13,LOW); //先程HIGHにした13番のピンをLOW(GND)にします
  delay(1000);
}

コピペせずに打っていると,次のような補完が出てくることに気づくでしょう. 頭のいいVSCodeくんは途中まで書かれた内容から「これかな〜」ってのを出してくれるんですね.

Screenshot from 2020-12-18 00-48-00.png

Enterで青く選択されている候補が入力されます.べんりですね. 便利な機能を使いこなしながら入力したら,次はコンパイルします.

左下の家のマークで先程はHOMEを呼び出しましたが,その隣にチェックマークと右矢印が出ていますね.

g1240.png

これらのマークはそれぞれ,「コンパイル」と「書き込み」です.まずはチェックマークでコンパイルをします.文字が流れて,

===== [SUCCESS] Took X.XX seconds ===
Terminal will be reused by tasks, press any key to close it.

というような表示が下に出たら成功です.あなたの書いたプログラムはその通りにコンパイルされました.

コンパイルの次は書き込みですが, 書き込みの際にWindowsとLinuxでPlatformIOの設定が違います.

Windowsの場合

複数のArduinoをつないでいなければ, 単に右矢印をクリックで書き込みができると思います.

avrdude done. Thank you.
===== [SUCCESS] Took X.XX seconds =====

となれば書き込み成功です.

Linuxの場合

まず, LinuxのなかでArduinoがどこに置かれているか確認します.そして, 書き込みの許可を与えます.

ls -la /dev/serial/by-id #これでデバイスが表示されます.
#lrwxrwxrwx usb-XXXX_USB2.0-Serial-XXXX-port0 -> ../../ttyUSB0 というふうに表示がされると思います
sudo chmod 666 /dev/ttyUSB0 #ttyUSB0の部分は表示によって変えてください.書き込み許可を与えています

先程説明したplatformio.iniファイルを開いてください.

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino

となっていると思います.このファイルの末尾に先程のchmod 666 XXXXXXXXXXを思い出して,

[env:nanoatmega328]
platform = atmelavr
board = nanoatmega328
framework = arduino
upload_port = /dev/ttyUSB0

というふうに付け加えます. これでPlatformIOに「ここにArduinoがつないであるから書き込んでね」と伝えるわけです.

編集して保存したら, Windowsと同様に右矢印で書き込みが出来ます.

書き込みが出来たら,Lと書いてある端っこのチップLEDが1秒間隔で点滅を始めます.

おわりに

実はこのページの内容は, PlatformIOの公式チュートリアルの内容ほぼそのままなんです.より詳しい解説はこちらで見ることが出来ます.
「かさごでもわかる Arduinoで始めるプログラミング」は執筆中です. 完成したら公開します.
この記事は初心者が書いているので, ご意見, ご指摘等ありましたらコメントいただけると幸いです. 読んでくださりありがとうございました.

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2