実際に動作するキッチンタイマーをArduinoで製作することにより、プログラミングの基礎知識を習得する入門シリーズです。
第1回 はじめに
「Arduinoでプログラミング入門」シリーズの概要を説明します。 はじめに 最近はいろいろなところでプログラミングが話題になっています。AI(人工知能)や自動運転の話題...
第2回 Arduinoとは
このシリーズ記事で使用する「Arduino」について説明します。 Arduinoの概要 前回の記事で、Arduinoは「電子工作とプログラミングが簡単にできるシステム」と説明しまし...
第3回 プログラミングとは
「プログラミング」とはどのようなものなのか説明します。 プログラミングとは 今までの記事では「プログラミング」や「プログラム」という言葉を使ってきましたが、具...
第4回 必要なもの(アプリ・電子部品類)
基礎編(パート1とパート2)で必要なものをまとめます。今回はプログラミングアプリと電子部品類を説明します。 説明内容 今回と次回の記事で、「Arduinoでプログラミング...
第5回 必要なもの(工具類)
基礎編パート1sパート2で必要なものをまとめます。今回は工具類を説明します。 足りないものだけ購入しましょう 今回は工具類を説明しますが、持っているものは活用して...
第6回 買い物リスト
必要なものを買い物リストとしてまとめます。 買い物リストの見方 第4回と第5回の記事で必要なものを一通り説明しました。 今回は買い物リストとしてまとめておきます。...
第7回 電子工作の第一歩 (1)
初めての電子工作&プログラミングでは、1個のLEDを制御します。今回は、ArduinoにLEDを1個接続する電子工作の前半の説明です。 「電子工作の第一歩」 最初はArduino...
第8回 電子工作の第一歩 (2)
電子工作の続きです。今回はArduinoにLEDを1個接続する電子工作をします。 使用するLED これからArduino MicroにLEDを接続します。 この記事で使用するLEDは「抵抗内蔵...
第9回 Arduino IDEのインストール
今回はArduino IDEをインストールします。 説明の進め方 今回の記事では、Arduino IDEのインストールとセットアップを行います。 次の順番で説明していきますので、作業...
第10回 最初のスケッチ(1)
今回からいよいよスケッチの作成に入ります。 最初のスケッチ内容 それでは、これから初めてのスケッチ(プログラム)を作っていきます。まずはゴールの確認です。 ゴール...
第11回 最初のスケッチ(2)
今回はArduinoの端子をスイッチ制御する方法を習得します。 Arduinoの端子を制御する指示 前回の記事では、スケッチに12番ピンをスイッチ機能に設定する指示を書きまし...
第12回 プログラミング言語
今回はプログラミング言語について説明します。 言語? ちょっと長い道のりでしたが、最初のスケッチを作成してArduinoを動作させてみました。 Arduinoを動かすための指...
第13回 コメント
今回はスケッチを見やすくします。 キッチンタイマーのスケッチを作る前に 第12回までの記事で、LEDを1秒ごとにつけたり消したりするスケッチを作成して、実際にArduino...
第14回 インデント
今回は別の観点でスケッチを見やすくします。 残っている謎 今回の記事では、今まで謎にしていた以下の2つのことを解き明かします。 ひとつはsetupとloopに出てくる「 {...
第15回 #define
今回はLEDの点滅パターンを変更してみます。 スケッチをコピーする ずいぶんと長い道のりでしたが、LEDを1秒ごとにつけたり消したりするスケッチがやっと完成しました。...
第16回 #defineの続きと算術演算子
今回は #define の続きと、算術演算子を習得します。 #defineの追加 前回のスケッチではdelay(1000);の1000の部分を#defineで定義してスケッチを変更しやすくしました。...
第17回 チャレンジ課題1
今まで習得した知識を使って課題にチャレンジしてみます。 チャレンジ課題 このシリーズの最初のチャレンジ課題は、追加で緑色のLEDを接続して、そのLEDを前回のスケッ...
第18回 キッチンタイマーのスケッチ
やっっっと、キッチンタイマーのスケッチを作り始めます。 キッチンタイマー最初のスケッチ キッチンタイマーは、設定時間になったらアラームで時間になったことを知ら...
第19回 スイッチを追加する
ブレッドボードにスイッチを追加します。 スイッチを追加しよう! 前回の記事では青色LEDをピカッ、ピカッ、と光らせるスケッチを作成しました。このピカッ、ピカッ、と...
第19回補足 Arduinoボードの端子名
Arduinoボードの端子番号について補足します。 A0端子? 前回(第19回)の記事では、スイッチを「A0端子」に接続しました。 一方、青色LEDは「12番端子」に接続しました...
第20回 digitalRead
今回はpinModeの復習をした後、スイッチの状態を読み取る命令を習得します。 pinModeの復習 第10回の記事でpinModeを説明しましたが、その時は引数の「INPUT_PULLUP」の...
第21回 シリアルモニタ
今回はスイッチの状態をArduino IDEで確認します。 Arduinoボードの中で起こっていることを自分の目で確認したい 前回の記事では、A5端子内部のデジタル電圧計を読み取...
第22回 while
キッチンタイマーのスケッチを変更して、「スイッチが押されたらLEDの点滅を開始する」という動作にします。 習得した項目の確認 前回までの記事で、青色LEDを1秒に1回...
第23回 式と評価
今回は「式」と「式の評価」という考え方を習得して、whileの動作について理解を深めます。 比較演算子 前回の記事では「何かと何かが等しい」などの比較をする記号を習...
第24回 変数
タイマーの時間を計測する方法を検討します。 タイマー機能を追加 前回までのスケッチで、スイッチを押すと、LEDを1秒に1回光らせる動作を実現することができました。 ...
第25回 変数の利用
今回の記事では、時間を計測するスケッチを作成します。 説明内容 前回の記事では、C++言語に「変数」という仕組みが用意されていることを説明しました。変数はメモ用紙...
第26回 for文
一定回数の処理をwhileとは別の方法で実現します。「一定回数処理を繰り返す」一般的な方法です。 一定回数処理を繰り返すスケッチ 前回の記事では、一定回数処理をする...
第27回 変数のスコープ
今回は変数について理解を深めます。 今回の説明内容 前回までの記事では、変数の基本的な使い方について習得してきました。 変数はメモ用紙のようなもので、そのメモ用...
第28回 変数の詳細2 〜メモリ〜
今回の記事では、「Arduinoボードが変数をどのように処理しているのか」を習得して、変数の扱い方の理解を深めます。 前回の記事の「疑問」 前回の記事で変数の特徴につ...
第29回 スピーカーの追加
今回はブレッドボードにスピーカーを接続します。 アラーム音を追加しよう! 今まで製作したキッチンタイマーは、スイッチを押すとLEDが点滅を始めて時間の計測を開始し...
第30回 音の仕組みと圧電スピーカーの仕組み
今回は音の仕組みと圧電スピーカーの仕組みを理解して、Arduinoで音を鳴らしてみます。 音の仕組み いよいよキッチンタイマーらしく、時間になったらアラーム音が鳴るよ...
第31回 アラーム音を追加する
今回はキッチンタイマーのスケッチにアラーム音を追加します。 音程と周波数 前回の記事では、digitalWriteとdelayMicrosecondsを使って、ずいぶんと面倒なプログラミン...
第32回 LEDを追加する
基本的なキッチンタイマーのスケッチができました。今回は残り時間の目安を表示するLEDを追加します。 残り時間の表示 前回までに製作したキッチンタイマーは、「スター...
第33回 if
タイマーの残り時間に応じて、前回追加したLEDを制御します。 残り時間LEDの制御 前回追加した残り時間を表現するLEDは以下のように制御することにします。 タイマーが...
第34回 チャレンジ課題2
今まで習得した知識を使ってスケッチを作成してみましょう。 チャレンジ課題 2つの課題を用意してみました。今までの知識を使ってチャレンジしてみてください! チャレ...
第35回 if 〜 else 〜
今回はタイマーの残り時間が少なくなったら動作を変える制御をします。 制御文 前回の記事ではifを使って、ある条件が成立しているときに指示を実行する、という制御を...
第36回 アラーム音をメロディーに変更する
今回はアラーム音をメロディに変更します。 アラーム音をメロディに変えよう ここまでのプログラミングで、キッチンタイマーとしての動作はある程度完成しました。 ただ...
第37回 #include
今回はスケッチを整理します。 スケッチ、長くないですか? 前回の記事で、アラーム音をメロディーに変えたのはいいですが、スケッチがなんだかずいぶん長くなってしま...
第38回 配列
今回はアラームのメロディーを変更してみます。 メロディーの変更 前々回の記事で、単調なアラーム音をメロディーに変更しましたが、今回はそのメロディーを変更してみ...
第39回 チャレンジ課題 3
今までの知識を使ってスケッチを変更してみましょう。 チャレンジ課題 2種類のチャレンジ課題を用意してみました。 チャレンジ課題3-1 動作開始時にもメロディーを...
第40回 関数
今回の記事では、残り時間を表現する3個のLEDの制御方法を変えてみます。 残り時間LED制御方法について、少し深掘りしてみる 製作したキッチンタイマーには、残り時間を...
第41回 switch
今回は、条件に応じて処理を切り替える、という方法を習得します。 やりたいこと 前回の記事で、残り時間を表現する3個のLEDを制御する関数を作りました。 具体的には、...
第42回 列挙体
今回もさらに関数を変更します。 時間表示関数の引数について 現在のスケッチでは、時間表示用LEDの制御用に次の関数を作成しています。 void controlTimeLed(uint8_t n...
第43回 2次元配列
今回はメロディーのそれぞれの音の長さを変えられるように変更します。 メロディーの音の長さを変えたい タイマー時間になったらメロディーを演奏していますが、現在の...
第44回 構造体
今回はメロディーデータの形式を変更します。 メロディーデータの問題点 前回の記事では2次元配列を使用して、メロディーデータを「音程データ」と「音の長さデータ」の...
第45回 チャレンジ課題 4
プログラミングの基本が習得できましたので、チャレンジ課題に挑戦してみましょう! プログラミングまとめ ずいぶんと長い道のりでしたが、今までの記事でプログラミン...
第46回 補足 – const
今回から補足知識を説明していきます。 補足記事 この基礎編パート1では、プログラミングに必要な最低限の知識を習得してきました。 ただ、他の人が書いたスケッチを見...
第47回 補足 – シリアルモニタ
今回はArduino Microでシリアルモニタを使用する際の注意点を説明します。 シリアルモニタの復習 第21回の記事で「シリアルモニタ」の使い方を習得しました。 Arduino M...
第48回 補足 – 変数
今回は変数の扱いについて補足します。 変数の復習 今までの記事で、変数の性質について詳しく説明していませんでしたので、この記事では変数についてもう少し掘り下げ...
第49回 補足 – typedef
第42回で列挙型、第44回で構造体を習得しましたが、これらをもう少し使いやすくする手法を習得します。 typedefのコンセプト 列挙型、構造体について忘れてしまっていた...
最終回 チャレンジ課題
基礎編パート1の最後にいくつかのチャレンジ課題に挑戦してみましょう。 たくさんプログラミングしよう 基礎編パート1では、Arduino Microでキッチンタイマーを作りなが...