![見出し画像](https://assets.st-note.com/production/uploads/images/83538459/rectangle_large_type_2_a10bbb456f9895c4f6849a6005b0f976.jpeg?width=1200)
なんとなくArduinoをはじめたときに、つまづいちゃうことをゆるくまとめます
すみっこです、大学院生になりました。
この春から夏にかけて、はじめてArduinoを使う方々をみてきたのですが、プログラミング以前に概念とか仕様みたいなところでつまづくものだなと思いました。でも、新しいこと(特に技術系)をはじめるときって、だいたいそんなものかもしれません。
Arduinoの初心者向けの記事、インターネット上にたくさんあると思います。思いますが、技術系の記事っぽいだけで…すごく….しんどい….😫という方に向けて、ゆるめに書こうと思います。内容は技術的な正確さよりも、感覚的にわかりやすいことを重視していますので、ご容赦・ご注意ください。
Q. とりあえず動かしてみたいんだけど?
手元にArduinoボードを手に入れたあなたは、まずArduinoボードにスケッチ(プログラム)を書き込むためのソフトウェアを用意しましょう。それがArduino IDEです。
以下のサイトからお使いの環境に適したものをダウロードしてください。
いま、IDEが大きく分けて2種類あります。
一番上にある Arduino IDE 1.8.19(2022.07末時点)が、従来のIDEです。
その下にある Arduino IDE 2.0 RC というやつが、2021年リリースされた新しくてつよつよなIDEです。
1.Xと2.0で、機能はもとよりUIが若干違うみたいです。2.0はリリースされて日が浅いので、ちょっとでも古い解説記事を見ると、自分の環境と見た目が違って戸惑ってしまうかもしれません。この心配がある人は、まずはシンプルな1.Xからでも良いかなと思います(以下ではMacの1.Xの画面でお見せしていきます)。
Q. 寄付しないとダウンロードできないの?
寄付は任意です。$0で落とせます。が、ダウンロード製品一覧からお使いのOSを選んで画面遷移した方は、Google翻訳をかけていると以下のような画面になっているかと思います。
![](https://assets.st-note.com/img/1658913333462-ggvLBHeNWM.png?width=1200)
( https://www.arduino.cc/en/donate/ より)
これ、内容が一部見えていません(日本語に置き換わった時になぜかボタンの文字色が白になってしまっている…😱)。翻訳を外してみてください。
![](https://assets.st-note.com/img/1658913752769-V9DJpexczi.png?width=1200)
( https://www.arduino.cc/en/donate/ より)
そうです、寄付をしない方は「JUST DOWNLOAD」をクリックです!
mac向けを選んだ方は、Arduino.appがzip形式で冷凍されて落ちてきます。アプリケーションフォルダに移すなりして、開けば使い始められます。
Q. PCにつないですぐ書き込んじゃいけないの?
Arduinoボードをプログラムで制御したいぞ💪と思って、PCと接続しました。いざ!スケッチを書き込み!のその前に、最低2つの作業が必要です。
ボードの選択
お使いのマイコンボードを ツール>ボード から選択します。お使いのボードがArduino Unoであれば、Arduino Unoを選びます。
![](https://assets.st-note.com/img/1658981470939-wzstRUmVRv.jpg?width=1200)
Arduino純正品じゃないボードをお使いの場合は、以下の作業をする必要があったりします。
Arduino>Preferences… を開いて、「追加のボードマネージャのURL」に必要なURLを追加する
ツール>ボード>ボードマネージャを開いて必要なものをインストールする
「必要な」のが何かは、そのボードについて調べるとわかるはずです。この辺はなんとなくないので、「ボードマネージャ」とかで検索して詳しい記事をあたることをお勧めします。
シリアルポートの選択
お使いのシリアルポートを ツール>シリアルポート から選択します。WIndowsであればCOMうんちゃら、Macであれば/dev/cu.usbserial-0001とかいうやつを選ぶことになります(私の環境では/dev/cu.usbmodem141401(Arduino Uno))ってやつがでてますね)。
![](https://assets.st-note.com/img/1658981029744-D7lfOrCl2i.jpg?width=1200)
ポート名の後ろに(接続しているボード名)が付いていれば間違い無いです。何も挿してないのに元々表示されている /dev.cu.BLTH とか、/dev.cu.Bluetooth-Incoming-Port ってやつは違います。
Q. シリアルポートが認識されていないんだけど?
ときどきあります。わたしも理由はよくわかりません。以下の作業をするとそのうちなんとかなることが多いです(でも、できれば有識者の記事を当たってほしいです)。
Arduinoボードまたは線を差し直す
Arduino IDEを再起動する
Arduinoボードをリセットする
3はArduinoボード側がおかしいことが原因の場合の対処です。リセットで解決しない時は対処が難しいので、予備があればそっちに切り替えちゃいましょう。
Q. ところで、シリアルポートって、なに?
「シリアル通信の出入り口」くらいに思っておくといいと思います。ここでいうポートは「港」ではなく「コンピュータにおける、周辺機器をつなぐ端子」のことです。実物体としてはUSBポートになると思います。
Q. ボードに書き込みって…
Q. なに?
USBにデータを入れたりしますよね。あんなかんじで、マイコンにプログラムを突っ込むことを「書き込み」って呼んでいます。もう少し補っていうとすれば、「マイコンボードにプログラムを書き込む」になります。Arduinoにプログラムを書き込むことで、電源を入れるとプログラムが実行される状態になります。
Q. ボードに書き込めてるかわからないんだけど?
まず、ボードに書き込むUIは→です。これを押すと、書き込みの処理が走ります。
![](https://assets.st-note.com/img/1658986587703-F2Vbtrhaq4.jpg?width=1200)
→の左にある✔️は「コンパイル」(日本語だと「検証」って書いてあります)です。ときどき✔️を押して書き込めたと思い込んでいる場合があるので、ご注意を!(もっというと、デフォルトの設定ではどうせ書き込む時にもコンパイルされるので、✔️は純粋に検証したい時以外押さなくて良いような…)
Q. ボードに何が書き込まれているかは、どうやってわかるの?
USBの中身は、エクスプローラなりFinderなりで見えますよね。でもArduinoはそうはいかなくて、走っているプログラムで判断することになります。
正直、今何が書き込まれているかを確認することを頑張るよりも、走らせたいプログラムを書き込み直しちゃった方が速いと思います。
Q. なんか書き込めないんだけど?
「なんか書き込めない」には具体的な理由があります。その理由は、エラー文を見るとわかります。….エラー文!?何言ってるかわからない!読みたくない!という方も、大丈夫です、まずは丸々コピーしてググれば、大体解決方法が出てきます👏(でも自分で読めるようになった方が成長します!)
以下に、よくある書き込めない理由を挙げてみます。
ボードやシリアルポートを正しく選んでいない
→ 前途の通り、使ってるものをちゃんと選びましょうソースコード中に入っちゃいけない文字が入っている
→ この場合、多分「stray ‘\302’ in program」みたいなエラーが出ていると思います(数字のところはちょっと違うかも)。全角スペースとか、日本語が入ってるとエラーが出ます(コメントアウトしているところにはいくらでも入っていてOK)Arduino IDE以外でシリアルポートを使っていて、競合している
→ 例えば、ブラウザとかでシリアルポートに接続していませんか?ポートは一対一対応なのです。IDEから書き込む時は、他に使っているものを止めましょう。
Q. 実行しようとしたら、保存させようとしてくるんだけど?
これ、仕様です。スケッチ(.inoファイル)を保存してください。保存先はDesktopでも、Documentsでも、どこでもOKです。
Q. 不意に出てくるdelay(10) って、なに?
急にプログラム側の話をします(うわぁ)。
シリアル通信でデータの授受とかをし始めると、処理として10msという時間を空けたいわけでもないのに delay(10) が入っているものを見かけると思います(10は一例です、50とか100とか、もっと他の値もあるでしょう)。
これは、あんまりひっきりなしに処理をしていると、データの取りこぼしが発生することがあるからです。
え、そんな人間みたいな感じなの!?
![](https://assets.st-note.com/img/1658989859687-VMRudkKMR6.jpg?width=1200)
そうです。そんな感じなので、いくらか余裕を持たせてあげてください。Serial.print() なりしてデバッグする中で、あ、こいつ取りこぼしてんな〜と思ったら、取りこぼさなくなる程度に時間を空けてあげるのです。
・・・
以下、おまけです。
Q. Arduinoって、……どれ?
マイコンボードもソフトウェアもArduinoって名前なので、ちょっとややこしいですよね。どっちもArduinoです。便宜上区別したいときは、前者をArduinoボード、後者をArduino IDEって呼ぶとよいかと思います。(この辺りはWikipediaの冒頭にまとまっています🙌)
Q. Arduinoボード、なんかいろいろおらん?
おります、家族みたいなやつがおります。おそらく、最初に出会うやつが「Arduino Uno」という定番の型です。Unoのほかに「Arduio Micro」とか「Arduino Nano」とかがいます。ピン数は少なくていいけど小さいのがいい!みたいな目的に応じて使い分けます。Unoはジャンパ線とかがピンにそのまま刺せるので、サイズ感がどうでも良いプロトタイプ段階に便利です。
![](https://assets.st-note.com/img/1658986017602-LJOPSud9xl.jpg?width=1200)
Q. Arduinoみたいな顔したArduinoじゃないやつおらん?
おります、親戚みたいなやつがおります。いわゆる「Arduino互換機」というもので、Arduinoと同じような機能を持っているけど、純正品よりお安く手に入ることが多いです。薬でいうところのジェネリックみたいなものですね。
たとえば、以下はマルツさんがつくっているのMaruduinoです。
![](https://assets.st-note.com/img/1658986030032-qFVowkJQUa.jpg?width=1200)
なぜこんなことが起こるかというと、Arduinoはオープンソースなので、親戚みたいなやつを作って、親戚ヅラしてよいことになっているからです。
以上
なんとなくArduinoをはじめたときに、なんとなくつまづいちゃいそうなところをざっと書きました。何かしら参考になれば嬉しいです。
ここおかしいぞ!とか、ここなんですか!みたいなことがあったら、コメント欄にお寄せください🙇