.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! レッスン3:Arduinoとプログラミングの世界へ ===================================================== 前回のレッスンでは、ロッカーボギーサスペンションシステムをうまく組み立てました。 しかし、それを機能させるためには、電力、コントロールボード、そしてその動きを指示するプログラミングが必要です。 そこで今回のレッスンでは、使用するコントロールボードとプログラミングプラットフォームについて学びます。 .. image:: img/upload_blink.gif 学習目標 --------------------- * Arduinoの基本概念と機能を理解する。 * SunFounder R3ボードについて学ぶ。 * Arduino IDEをインストールし、そのインターフェースに慣れる。 * Arduinoプログラミングの基本的な文法規則について学ぶ。 材料 -------------------- * SunFounder R3ボード * Arduino IDE * USBケーブル * コンピュータ Arduinoへの導入 ---------------------------- 「Arduino」という用語をさまざまな文脈でよく聞いたことがあるでしょうが、実際には何なのか、そしてなぜこれほどまでに人気があるのでしょうか? Arduinoは、ハードウェアとソフトウェアの両方に対して使いやすいオープンソースの電子プラットフォームです。それは、周囲の物理世界を感知し制御できるデジタルデバイスやインタラクティブなオブジェクトを作るために設計されています。 さて、それを分解してみましょう: * **Open-source**:オープンソースをコミュニティガーデンのように考えてみてください。誰もが使うことができ、誰もが貢献でき、誰もがそれから利益を得ることができます。オープンソースでは、物理部品(ハードウェア)の設計とプログラム命令(ソフトウェア)の両方が自由に共有されます。これにより、誰でもそれらを使用し、改良し、独自のバージョンを作ることができます。それはすべて共有と創造性についてです! .. image:: img/arduino_oscomm.png :width: 400 :align: center * **Microcontroller**:マイクロコントローラーはArduinoの脳のようなものです。これは単純なソフトウェアを実行できる小型のコンピュータです。今使っているコンピュータほど強力ではありませんが、センサーからのメッセージを理解したり、LED(小さなライト)を点灯させるような単純な作業には完璧です。 .. image:: img/arduino_micro.jpg :width: 500 :align: center * **Development Board**:開発ボードを脳を支える体のようなものと想像してみてください。それはマイクロコントローラーが乗るボードであり、マイクロコントローラーが世界と相互作用するのを助ける他の部品が含まれています。これらの部品には、タイミングに役立つオシレーターや電力レベルを制御する電圧調整器、電力とデータのコネクター(家のプラグやスイッチのようなもの)などがあります。 .. image:: img/arduino_board.png :width: 600 :align: center * **Arduino IDE**:これはあなたのArduinoの教室のようなものです。これはあなたのコンピュータで実行されるプログラムで、Arduinoに何をするように指示する命令を書くことができます。これらの命令はC++に基づいたプログラミング言語で書かれます。指示を書いたら、USBケーブルを使ってArduinoボードに送ることができます。宿題を提出するようなものです! .. image:: img/arduino_ide_icon.png :width: 200 :align: center これらの基本的なアイデアを理解したら、Arduinoのエキスパートになる道はすでに半ばです! 次に、Arduinoプログラミングとエンジニアリングの原則に慣れるために、いくつかの実践的な活動に取り組みます。 エキサイティングな学習の旅に備えてください! SunFounder R3ボードを知る ------------------------------- キットの中に、小さな金属の塔と道が詰まった青いボードが入っていますが、怖れる必要はありません!これはSunFounder R3開発ボードという種類のArduinoボードで、多くの電子デバイスやプロジェクトをプログラムして制御するために使われます。 その主な特徴を簡単な用語で理解しましょう: .. image:: img/sf_r3.jpg :width: 800 * **14 Digital Pins**:これらのピンを小さなメッセンジャーのように考えてみてください。火星ローバーの他の部分に「はい」または「いいえ」という単純なメッセージを送信(出力)または受信(入力)するようにプログラムできます。これらのメッセージは、実際にはボードがライトやモーターなどを制御するために使う「オン」または「オフ」の信号です。 * この特別なピンのうち6つは、PWM(パルス幅変調)と呼ばれる特殊なコードでメッセージを送信することさえできます。このコードは、ライトの明るさ、モーターの回転速度、あるいは動く部品の位置を制御するために使用できます。 * **6 Analog Pins**:これらのピンはボードの6つの特別な感覚のようなものです。異なるタイプのセンサー(例えば温度センサー)からの信号を読み取り、それらの信号をボードが理解しプログラミングで使用できる言語に変換します。 * **USB Connection**:これはボードのへその緒のようなものです。ボードをコンピュータに接続するために使用します。この接続により、コンピュータが書いたプログラムを送信してボードに何をするかを「教える」ことができます。 * **Power Jack**:これはボードの食糧供給のようなものです。電池やAC-DCアダプターのような電源をこのジャックに接続することで、ボードが動作するために必要な電気を「供給」できます。 * **ICSP Header**:これはボードをプログラムするための特別な入口のようなものです。外部プログラマー(ボードに「教える」ための特別なデバイス)がある場合に使用できます。 * **Reset Button**:これを押すと、ちょうどボードに対して、今していたことを忘れてプログラムを最初から再開するように伝えるようなものです。 これらの基本事項を理解したら、SunFounder R3ボードでのプログラミング冒険を始める準備が整います! .. _install_arduino_ide: Arduino IDEをインストールする -------------------------------------- ArduinoとArduinoボードについて理解したので、その知識を使ってみる時が来ました。Arduinoボードをプログラムするために使用するソフトウェアであるArduino IDEをインストールします。 Arduino IDEの最新バージョンは2.0です。機能が充実しており、非常にユーザーフレンドリーです。ただし、いくつかのシステム要件があることに注意してください: * Windows - Win 10以降、64ビット * Linux - 64ビット * Mac OS X - バージョン10.14「Mojave」以降、64ビット 始めるには、以下の手順に従ってください: #. |link_download_arduino| にアクセスし、OSバージョンに合ったIDEをダウンロードします。 .. image:: img/sp_001.png **Windowsユーザー向け:** #. ファイル( ``arduino-ide_xxxx.exe`` などという名前になります)をダウンロードしたら、ダブルクリックしてインストールプロセスを開始します。 #. **License Agreement** が表示されます。この内容を読んで、条件に同意する場合は「I Agree」をクリックします。 .. image:: img/sp_002.png #. 次に、インストールオプションを選択するように求められます。そのままにして「Next」をクリックします。 .. image:: img/sp_003.png #. ソフトウェアをインストールする場所を選択します。一般的には、システムが使用するドライブとは異なるドライブにインストールするのが最適です。 .. image:: img/sp_004.png #. 「Install」をクリックしてインストールを開始します。完了したら、「Finish」をクリックします。 .. image:: img/sp_005.png **macOSユーザー向け:** ダウンロードしたファイル( ``arduino_ide_xxxx.dmg`` という名前になるでしょう)をダブルクリックします。画面の指示に従って、 **Arduino IDE** アプリを **Applications** フォルダにドラッグします。数秒後、Arduino IDEは正常にインストールされます。 .. image:: img/macos_install_ide.png :width: 800 **Linuxユーザー向け:** LinuxシステムにArduino IDE 2.0をインストールする詳しいチュートリアルはこちら:|link_arduino_linux|。 Arduinoのプレイグラウンド(IDE)を発見する --------------------------------------------- Arduino IDEを、私たちが探検し遊ぶための道具やガジェットでいっぱいの魔法のプレイグラウンドだと想像してみましょう。次に、このプレイグラウンドのすべての角を理解するように案内します。 .. image:: img/ide-2-overview.png :width: 800 プレイグラウンドで見つかるもの: * **Verify / Upload** - これを魔法のエレベーターだと想像してください。書いたコードを取り、Arduinoボードに送ります。 * **Select Board & Port** - これはあなたの宝の地図です。コンピュータに接続されているArduinoボードを自動的に表示し、そのポート番号を教えてくれます。 * **Sketchbook** - これはあなたの個人的な図書館です。コンピュータに保存されたすべてのスケッチ(プログラム)がここにあります。さらに、Arduino Cloudに接続できるので、オンラインの世界からもスケッチを取得できます。 * **Boards Manager** - これを道具箱だと考えてください。Arduino用のさまざまなパッケージを見つけてインストールすることができます。 * **Library Manager** - これは無限の宝箱です。Arduinoとそのコミュニティによって作られた何千ものライブラリがここであなたを待っています。コードのためのツールや素材が必要ですか?探しに行ってみましょう! * **Debugger** - リアルタイムでコードをテストし、問題を見つけて修正するスーパーパワーがあったと想像してみてください。それがこれです! * **Search** - これを拡大鏡だと考えてください。コード内のキーワードを検索するのに役立ちます。 * **Open Serial Monitor** - これはあなたの通信デバイスのようなものです。コンピュータとArduinoボードがメッセージをやり取りできる新しいタブを開きます。 プレイグラウンドをちらっと見たので、今度は飛び込んで作成を始めましょう! 最初のスケッチをアップロードする ------------------------------------- さあ、楽しい時間です!LEDを点滅させることで、Arduinoの世界で「Hello, World!」と言うようなことをしましょう。 ほとんどのArduinoボードには13番ピンに組み込みのLEDがあります。これは最初の実験に最適です。 .. image:: img/1_led.jpg :width: 400 :align: center 手順を見てみましょう: #. **接続する**:USBケーブルを使用してSunFounder R3ボードをコンピュータに接続します。これにより、ボードに電力を供給し、プログラム(「sketch」とも呼ばれます)を送信します。コンピュータのガジェットを接続しているように感じるかもしれませんが、信じてください、可能性の世界に接続しています! .. image:: img/connect_board_pc.gif #. **例のスケッチを探す**:Arduino IDEで、 **File** -> **Examples** -> **Basic** -> **Blink** に移動します。ポップアップするものは、変更するための準備ができたプログラムです。これは、私たちがまもなく飾り付ける準備ができたケーキのようなものです! .. image:: img/open_blink.png #. **スケッチを理解する**:この新しいウィンドウのコードを見てください。Arduinoに内蔵LED(13番ピンにあります)を1秒間点灯させ、1秒間消灯させ、それを繰り返すように指示します。これは光でモールス信号を送るようなものです! .. image:: img/led_blink.png #. **スケッチをアップロードする**:正しいボードとポートを選択したら、アップロードボタンをクリックします。これは手紙を送るように簡単で、Arduinoボードに指示を届けるものです!ほとんどの場合、システムが自動的にボードとポートを検出します。 .. image:: img/upload_blink.gif #. **動作を確認する**:うまくいけば、ArduinoボードのLEDが点滅し始めます。あなたにウィンクしているようなものです! .. image:: img/blink_led.gif 素晴らしい仕事をしました!最初のArduinoプログラムを実行し、立派なプログラマーになりました!次は何ですか?Arduinoができることはまだまだ表面をかすめているに過ぎません。次の挑戦に備えていますか? 面白いArduinoプログラミングの事実 -------------------------------------- Arduinoプログラミングについてのクールな秘密をいくつか明らかにしましょう! * コードの魔法: ``setup()`` と ``loop()`` Arduinoのスケッチ、つまりコードは、二幕の演劇のようなものです: * ``setup()``:これは第1幕、開幕シーンです。Arduinoボードが最初に起動するときに一度だけ起こります。ピンモードやライブラリなどを準備して舞台を整えるために使われます。 * ``loop()``:第1幕の後、電源を切るかリセットボタンを押すまで(最終幕が来るまで)繰り返し行われる第2幕に移ります。このコードの部分は、実際のアクションが起こる演劇のメインパートのようなものです。 ただし、 ``setup()`` や ``loop()`` に魔法(コード)がなくても、それらを保持する必要があります。それらは舞台のようなもので、空の舞台でも舞台は舞台です。 .. code-block:: arduino void setup() { // initialize digital pin LED_BUILTIN as an output. pinMode(LED_BUILTIN, OUTPUT); 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 } // the loop function runs over and over again forever void loop() { } * コーディングの句読点 物語のように、Arduinoは特別な句読点を使ってコードの意味を理解します: * ``セミコロン(;)``:これは物語の終わりのようなものです。Arduinoに「このアクションは終わりました。次は何ですか?」と伝えます。 * ``中括弧 {}``:これは章の始まりと終わりのようなものです。コードの断片をまとめ、セクションが始まるところと終わるところをマークします。 これらの句読点を忘れてしまった場合でも心配しないでください!Arduinoは親切な先生のように、あなたの作業をチェックし、間違いがどこにあるかを指摘し、それを修正する方法を教えてくれます。これも学びの冒険の一部です! .. image:: img/blink_error.gif * 機能について これらの機能を魔法の呪文だと想像してみてください。それぞれの呪文にはArduinoの冒険で特定の効果があります: * ``pinMode()``:この呪文はピンが入力(INPUT)か出力(OUTPUT)かを決めます。物語の中のキャラクターが話す(OUTPUT)か聞く(INPUT)かを決めるようなものです。 * ``digitalWrite()``:この呪文はピンをHIGH(オン)かLOW(オフ)に切り替えます。まるで魔法のライトをオンとオフに切り替えるようなものです。 * ``delay()``:この呪文はArduinoを一定の時間だけ一時停止させます。物語の途中で短い昼寝をするようなものです。 魔法の本のように、これらの呪文やその他多くの呪文を |link_arduino_web| で見つけることができます。知っている呪文が多ければ多いほど、Arduinoの冒険はよりエキサイティングになります! * コメント:私たちの秘密のメッセージ コーディングにも ``comments`` と呼ばれる秘密の言語があります。これは ``//`` や ``/* */`` を使ってコードに書き込むメッセージです。魔法の部分は何かというと、Arduinoはこれらを完全に無視することです!コードの難しい部分が何をしているのかを自分自身や他人に説明するためのメモを残すのに最適な場所です。 * コードの読みやすさ:コードをフレンドリーにする コードはどんな方法で書いても構いませんが(例えば、セミコロンを別の行に置いてもエラーにはなりません)、コードの読みやすさを心に留めておくことが重要です。 .. image:: img/blink_noerror.gif 良い物語を書くように、コードを書く方法によって、読むのが楽しく簡単になったり、退屈で難しくなったりします。コードをよりフレンドリーにする方法は以下の通りです: * 適切なインデントを使って文章を整然とした段落に整理します。読者が一つのセクションが終わり、別のセクションが始まることを理解するのに役立ちます。 * 意味のある変数名を使用します。物語でキャラクターを適切な名前で呼ぶようなものです。 * 関数を小さくシンプルに保ちます。本の短くて甘い章のようなものです。 * 難しい部分にコメントを残します。難しい言葉を説明するための脚注を残すようなものです。 覚えておいてください、私たちは機械のためだけでなく、人間のためにもコードを書いているので、わかりやすいストーリーを伝えるようにしましょう! 振り返りと改善 --------------------- 私たちの旅を振り返ることで、探索の喧騒の中で見落としがちな洞察を得ることができます。自分に問いかけてみてください: * このArduinoの冒険で最も興味深かった部分は何でしたか? * 途中でどのような課題に直面しましたか?それらをどのように乗り越えましたか? * ArduinoやArduino IDEが何をするものか、Arduinoコードをどのように実行するかを友人に説明できますか? * 最初のArduinoプログラミング体験をどのように表現しますか? * Arduinoについてもっと何を学びたいですか? これらの質問について考えることで、理解を深め、将来の探索の準備が整います。常に覚えておいてください、振り返りに「間違った」答えはありません - 結局のところ、それはあなた自身の個人的な旅なのですから!