Arduinoでプログラミング入門〜基礎編パート1〜

「Arduinoでプログラミング入門」シリーズの概要を説明します。 はじめに 最近はいろいろなところでプログラミングが話題になっています。AI(人工知能)や自動運転の話題だったり、小学校でプログラミングの科目が追加になるニュースだったり[…]

タイトル画像

このシリーズで使用する「Arduino」について説明します。Arduinoの概要 前回の記事で、Arduinoは「電子工作とプログラミングが簡単にできるシステム」と説明しましたが、今回はこのシステムについて詳しく説明します。 今回の記事で[…]

タイトル画像

プログラミングについて説明します。プログラミングとは 今までの記事では「プログラミング」や「プログラム」という言葉を使ってきましたが、具体的な中身がよくわからないままでしたよね。すみませんでした... プログラミングの入門書を読むと「プロ[…]

タイトル画像

基礎編(パート1とパート2)で必要なものをまとめます。今回はプログラミングアプリと電子部品類を説明します。 説明内容 今回と次回の記事で、「Arduinoでプログラミング入門 〜基礎編〜」で必要なものを説明します。購入するときに注意する点が[…]

タイトル画像

基礎編(パート1&パート2)で必要なものをまとめます。今回は工具類を説明します。 足りないものだけ購入しましょう 今回は工具類を説明しますが、持っているものは活用して、足りないものだけ購入するようにしましょう。   ラジ[…]

タイトル画像

必要なものを買い物リストとしてまとめます。 買い物リストの見方 第4回と第5回の記事で必要なものを一通り説明しました。今回は買い物リストとしてまとめておきます。 買い物リストでは、参考として秋月電子通商の通販コードを記載しています。 例[…]

タイトル画像

初めての電子工作&プログラミングでは、1個のLEDを制御します。今回は、ArduinoにLEDを1個接続する電子工作の前半の説明です。 「電子工作の第一歩」 電子工作は初めて、という方がほとんどだと思います。最初はArduinoボー[…]

タイトル画像

電子工作の続きです。今回はArduinoにLEDを1個接続する電子工作をします。 使用するLED これからArduino MicroにLEDを接続しますが、この記事で使用するLEDは「抵抗内蔵」で「12V用」になります。これ以外のLEDを使[…]

タイトル画像

今回はArduino IDEをインストールします。 今回やること 今回の記事では、Arduino IDEをPCにインストールします。 Arduinoのサイトからインストーラをダウンロードする手順はWindowsとMacで共通で説明しますが[…]

タイトル画像

今回からいよいよスケッチの作成に入ります。 最初のスケッチ内容 それでは、これから初めてのスケッチ(プログラム)を作っていきます。まずはゴールの確認です。 ゴールは、前回までの記事で製作したArduino Microの回路で「12番端子に[…]

タイトル画像

今回はArduinoの端子をスイッチ制御する命令を習得します。 Arduinoの端子を制御する命令 前回の記事で、12番ピンをスイッチ機能に設定しました。やり方は、setupのところでpinMode命令を使って設定したんですよね。 今回は[…]

タイトル画像

今回はプログラミング言語について説明します。 言語? ちょっと長い道のりでしたが、最初のスケッチを作成してArduinoを動作させてみました。 Arduinoを動かすための指示書のことを「スケッチ」と呼んでいましたが、コンピュータを動作さ[…]

今回はスケッチを見やすくします。 キッチンタイマーのスケッチを作る前に 第12回までの記事で、LEDを1秒ごとにつけたり消したりするスケッチを作成して、実際にArduinoを動作させてみました。 いよいよこれからキッチンタイマーのスケッチ[…]

タイトル画像

今回は別の観点でスケッチを見やすくします。 残っている謎 今回の記事では、今まで謎にしていた以下の2つのことを解き明かします。 ひとつはsetupとloopに出てくる「{」と「}」(中括弧)です。 もうひとつは、前回の記事で削除して[…]

タイトル画像

今回はLEDの点滅パターンを変更してみます。 スケッチをコピーする ずいぶんと長い道のりでしたが、LEDを1秒ごとにつけたり消したりするスケッチがやっと完成しました。今回はLEDの点滅(てんめつ)パターンを変えてみたいと思います。 前回ま[…]

タイトル画像

今回は#defineの続きと、新しく算術演算子を習得します。 #defineの追加 前回のスケッチでは「delay(1000);」の1000の部分を#defineで定義しました。今回は残りの「delay(2000);」の2000の部分を#d[…]

タイトル画像

今まで習得した知識を使って課題にチャレンジしてみます。 チャレンジ課題 このシリーズの最初のチャレンジ課題は、追加で緑色のLEDを接続して、そのLEDを前回のスケッチと同様に点滅制御する、という内容です。 緑色のLEDはArduinoボー[…]

タイトル画像

やっと、、、キッチンタイマーのスケッチを作り始めます。 キッチンタイマー最初のスケッチ 製作するキッチンタイマーは、設定時間になったらアラームで知らせますが、設定時間になるまで動作していることを表現するために、1秒に1回、青色のLEDをピカ[…]

タイトル画像

ブレッドボードにスイッチを追加します。 スイッチを追加しよう 前回の記事では青色LEDをピカッ、ピカッ、と光らせるスケッチを作成しました。このピカッ、ピカッ、と光る動作は、タイマーが動作しているとき用にします。 でも前回のスケッチの状態だ[…]

タイトル画像

Arduino Microの端子番号について補足します。 23番ピン? 前回の記事でスイッチを「23番端子」に接続しました。注意深い方はお気づきかと思いますが、Arduino Microボード本体に印刷されている番号を見ると「A5」と書いて[…]

タイトル画像

今回はpinMode命令の復習をして、スイッチの状態を読み取る命令を習得します。 pinMode命令の復習 第10回の記事でpinMode命令を説明しましたが、その時はパラメータの「INPUT_PULLUP」を説明していませんでした。前回の[…]

タイトル画像

今回はスイッチの状態をArduino IDEで確認します。 Arduinoボードの中で起こっていることを自分の目で確認したい 前回の記事では、digitalRead命令を使ってスイッチの状態を確認しました。具体的にはスイッチがつながっている[…]

タイトル画像

キッチンタイマーのスケッチを変更して、スイッチが押されたらLEDの点滅を開始するようにします。 習得した項目の確認 前回までの記事で、青色LEDを1秒に1回、ピカッ、ピカッ、と光らせることができました。また、スイッチの状態を読み取ることもで[…]

タイトル画像

今回は「式」と「式の評価」という考え方を習得して、while構文と比較演算子について理解を深めます。 比較「演算」子 前回の記事では「何かと何かが等しい」などの比較をする記号を習得しました。 == != < <[…]

タイトル画像

タイマーの時間を計測する方法を検討します。 時間を計測するには 前回までのスケッチで、スイッチを押すと、LEDを1秒に1回光らせる動作を実現することができました。 でもこれってタイマーではないですよね。スイッチを押すとLEDはずーっと点滅[…]

タイトル画像

時間を計測するスケッチを検討します。 メモ用紙の書き換え方法 前回の記事では、C/C++言語に変数が用意されていることを説明しました。変数はメモ用紙のようなもので、ちょっと変わった感じのメモ用紙でした。特徴は覚えていますか? 今回の記事で[…]

タイトル画像

一定回数の処理をwhile構文とは別の方法で実現してみます。 一定回数処理をするスケッチ 前回の記事では、一定回数処理をするスケッチを、変数とwhile構文を使用して実現しました。前回の記事でも書きましたが、while構文を使用した一定回数[…]

タイトル画像

今回は変数について理解を深めます。 今回の説明内容 今回の記事では、変数について理解を深めていきます。 前回までの記事で、変数はこういうもので、スケッチではこのように書きます、と説明してきました。でも自分で変数使ってプログラミングするとな[…]

タイトル画像

今回の記事では、Arduinoボードが変数をどのように処理しているのか習得して、変数の扱い方の理解を深めます。、 前回の「疑問」 前回の記事で変数の性質についていろいろ習得しました。特に最後に説明した「グローバル変数」と「ローカル変数」は重[…]

タイトル画像

今回はスピーカーを接続します。 アラーム音 今まで製作したキッチンタイマーは、スイッチを押すとLEDが点滅を始めて時間の計測を開始しますが、設定時間になってもLEDの点滅が止まるだけです。 もしもこのまま製品化してしまった場合、説明書には[…]

タイトル画像

今回は音の仕組みと圧電スピーカーの仕組みを理解して、Arduinoで音を鳴らしてみます。 音の仕組み いよいよキッチンタイマーらしく、時間になったらアラーム音を鳴らすようにプログラミングしていきます。 といきたいところですが、その[…]

タイトル画像

今回はキッチンタイマーのスケッチにアラーム音を追加します。 音程と周波数 前回の記事では、digitalWrite命令とdelayMicroseconds命令を使って、ずいぶんと面倒なプログラミングをしました。 電子工作では、時間の計算を[…]

タイトル画像

基本的なキッチンタイマーのスケッチができました。今回は残り時間の目安を表示するLEDを追加します。 残り時間の表示 前回までに製作したキッチンタイマーは、スタートボタンを押すと青色のLEDが点滅を始めて時間計測していることを表現し、設定した[…]

タイトル画像

タイマーの残り時間に応じて、前回追加したLEDを制御します。 残り時間LEDの制御 前回追加した残り時間を表現するLEDは以下のように制御することにします。 タイマーがスタートしたら緑色LEDをつける 残り時間が3分の2になったら[…]

タイトル画像

それでは今まで習得した知識を使ってスケッチを変更してみましょう。 チャレンジ課題2-1 タイマー時間と残り時間を以下のように書くと、いちいち残り時間の3分の2、3分の1を計算する必要があります。 [code language="c"]//[…]

タイトル画像

今回はタイマーの残り時間が少なくなったら動作を変える制御をします。 条件判断文 前回の記事で「if文」を新しく習得しましたが、if文のように条件を判断して処理を変える制御構文を「条件判断文」と呼んでいます。 「条件判断文」は他のプログラミ[…]

タイトル画像

今回はアラーム音をメロディに変更します。アラーム音をメロディに変えよう ここまでのプログラミングで、キッチンタイマーとしての動作はある程度完成しました。 ただ、せっかく音楽まで鳴らせるスピーカーがあるのに、時間がきたら単調なアラーム音が鳴[…]

タイトル画像

今回はスケッチを整理します。スケッチ長い 前回、アラーム音をメロディーに変えたのはいいですが、スケッチがなんだかずいぶん長くなってしまいましたよね。 特に最初の#defineが長くなっています。肝心のスケッチ本体であるsetup()やlo[…]

タイトル画像

今回はアラームメロディーを変更してみます。 メロディーの変更 前々回の記事で、単調なアラーム音をメロディーに変更しましたが、今回はそのメロディーを変更してみます。 現在のスケッチのメロディーを変更するのは簡単ですよね。スケッチの以下の部分[…]

タイトル画像

今までの知識を使ってスケッチを変更してみましょう。 動作開始時にもメロディーを鳴らす 現在のスケッチでは、Arduinoにスケッチを送ると、しばらくしてキッチンタイマーとして動作を開始します。 ただ、キッチンタイマーが動作を始めたのかどう[…]

タイトル画像

今回は残り時間を表現する3個のLEDの制御方法を変えてみます。 残り時間LED制御 製作したキッチンタイマーには、残り時間を表現するために3個のLEDを接続しています。 この3個のLEDを使用して、残り時間を以下のように表現しています[…]

タイトル画像

今回は関数を変更してみます。 やりたいこと 前回の記事で、残り時間を表現する3個のLEDを制御する関数を作りました。具体的には、 controlTimeLed(HIGH, LOW, LOW); というように、1つの命令で3個のLEDを[…]

タイトル画像

今回もさらに関数を変更します。 時間表示関数の引数について 現在のスケッチでは、時間表示用LEDの制御用に以下の関数を作成しています。 [code language="c"]void controlTimeLed(uint8_t nok[…]

タイトル画像

今回はメロディーのそれぞれの音の長さを変えられるように変更します。 メロディーの音の長さを変えたい タイマー時間になったらメロディーを演奏していますが、このメロディーのそれぞれの音の長さは全て同じです。例えば今のメロディーを変更して 「[…]

タイトル画像

今回はメロディーデータの形式を変更します。 メロディーデータの問題点 前回の記事では2次元配列を使用して、メロディーデータを音階データと音の長さデータの組のようなデータ形式にしました。 uint16_t alarm_melody[][2[…]

タイトル画像

プログラミングの基本が習得できましたので、最後にチャレンジ課題に挑戦してみます。 まとめ 前回までの記事で、プログラミングの基本的な部分は習得できました。 プログラミングで重要な部分は、動作を制御する命令で、 変数 条件判断文(if文[…]

タイトル画像

今回から今まで説明した内容の補足説明です。 補足記事 この基礎編パート1では、プログラミングに必要な最低限の知識を説明しました。ただ実際にプログラミングをする場合、もう少し補足の知識が必要になります。 そこで、これから何回かに分けて、今ま[…]

タイトル画像

今回はArduino Microでシリアルモニタを使用する際の注意点を説明します。 シリアルモニタの復習 第21回の記事で「シリアルモニタ」の使い方を習得しました。 Arduino Microでシリアルモニタを使用する際、注意点が[…]

今回は変数の扱いについて補足します。 変数の復習 今までの記事で、変数の性質について詳しく説明していませんでしたので、この記事では変数についてもう少し掘り下げます。 C/C++言語では以下の変数型が用意されていましたよね。 また、上[…]

第42回で列挙型、第44回で構造体を習得しましたが、これらをもう少し使いやすくする手法を習得します。 typedefのコンセプト 列挙型、構造体について忘れてしまっていたら、列挙型は第42回、構造体は第44回の記事を見返してみてください。[…]

基礎編パート1の最後にいくつかのチャレンジ課題に挑戦してみましょう。 たくさんプログラミングしよう 基礎編パート1では、Arduino Microでキッチンタイマーを作りながらC/C++言語の基本的な内容を習得してきました。プログラミング[…]