古い情報が残っています。複数のサイトで最新の情報を確認してください。時刻の取得2Arduinoで、時刻を表示しましょう。時刻の取得1では、tinyRTC(DS1307)を使って、時刻を表示させました。I2C接続になります。こちらは、充電式電池がついています。温度センサーもついています。今回は、AdafruitのRTClibライブラリを利用します。[スケッチ例]-[RTClib]-[DS3231]を選択します。次のようにつなげます。RTC-UNO——-C-SCLD-SDA+-5V–GNDコンパイルして、書き込みます。シリアルモニタを起動し、9600bpsにあわせて時刻が表示されたらOKです。時刻はコンパイル時のPCの時刻を取得します。コンパイル書き込みの時間があるので、実際の時刻と数秒誤差が生じます。温度も知りたい場合は、別のライブラリを使います。[スケッチ]-[ライブラリのインクルード]-[ライブラリの管理]を開き検索に「DSC3231」と入力し、DSC3231をインストールします。DS3231_testをコンパイルして実行します。2);ここが、温度取得ですね。時刻の取得1Arduinoで、時刻を表示しましょう。Arduino単体では、時刻を保持できません。内蔵電池がないため、電源が切れるたびに、時刻はリセットされます。そのたびに、コンパイルして書き込みするのは大変です。そこで、電池で時刻を保持するRTC(リアルタイムクロック)モジュールを使います。I2C接続になります。こちらは、LIR2023(充電式電池)がついています。CR2023と同じ大きさですが、CR2023をそのまま使うことはできません。オプションで、温度センサー(DS18B20)をつけることができます。今回は、AdafruitのRTClibライブラリを利用します。[スケッチ]-[ライブラリのインクルード]-[ライブラリの管理]を開き検索に「RTC」と入力し、RTCLibをインストールします。[スケッチ例]-[RTClib]-[DS1307]を選択します。次のようにつなげます。RTC-UNO——-SCL-SCLSDA-SDAVCC-5VGND-GNDコンパイルして、書き込みます。シリアルモニタを起動し、57600bpsにあわせて時刻が表示されたらOKです。時刻はコンパイル時のPCの時刻を取得します。コンパイル書き込みの時間があるので、実際の時刻と数秒誤差が生じます。UNOは3000円位しました。中国製のサードパーティも売られています。ドライバや不具合の確認が難しいです。UNOは1個は持っていた方が、後での部品の動作確認にも役立ちます。UNOを持つために、マイコンなどを購入して自作する方法です。部品の調達方法さえ誤らなければ、品質は保てます。200円、ヒューズ付きだと800円と、1000円近くなります。NANOがおすすめです。そのサードパーティは、意外と品質も保ててる?ようです。追加ドライバなしで認識するのもあります。なんといっても1個250円程度。唯一の欠点はminiUSBケーブルが必要。手元にないケーブルですね・・・。こちらの商品、安いのですが、半田付けするという別の問題が発生します。半田付けのもあります。商品のアマゾンでのレビュアーに大量のサクラが混じっていますね。カスタマーとか日本人名がついているのは大抵サクラと思ってよいでしょう。自作Arduino第6回の人感センサー付きLEDライトのように、いつでも使えそうなものを作っても、ほかのプログラムを作るために、毎回ばらすのはもったいないです。いって、Arduinoを何個も買うのは経済的に厳しいです。そこで、Arduinoを自作してみましょう。ここも合わせてみておきましょうhttps://www.arduino.cc/en/Tutorial/ArduinoToBreadboard材料は以下の通りです。最初は秋月電子さんなどから調達しましょう。http://akizukidenshi.com/catalog/g/gI-03142/こんな感じで作ります。実際はこんな感じ本体はこれで完成です。次に、ブートローダを書き込みます。ブートローダーの書込みhttp://tech.andhandworks.com/2015/04/arduino.htmlも参考にしてください。UNOと自作機を次のようにつなぎます。ブートローダーに書き込みます。ちなみに、スイッチサイエンスさんには、ブートローダー書込済みのマイコンが売られています。https://www.switch-science.com/catalog/663/互換(内部8MHzクロックの場合)https://www.switch-science.com/catalog/1414/上の作業が面倒だという方向けです。UNOと自作機は切り離して大丈夫です。これで自作機の完成です。プログラムの書き込みLチカプログラムを書き込んでみましょう。そのためには、PCと自作機をつなぐ必要があります。UNOを経由する方法もありますが面倒なので、次を使います。次のようにつなぎます。LEDもつけています。書き込むとLチカします。最後は、電源供給だけでよいので、https://www.switch-science.com/catalog/2443/http://akizukidenshi.com/catalog/g/gK-06656/などで、電源供給するとスタンドアローンで動きます。人感センサー付きLEDライト第4回、第5回でLEDの点滅、明るさの感知をしました。これに人感センサーを加えると、ホームセンターなどで売られている人感センサー付きLEDライトができあがります。人感センサーを用意しましょう。慣れないうちは、スイッチサイエンスさんや秋月電子さんから購入することがベターでしょう。秋月電子さんで400円します。慣れてくると、アマゾンで安い部品(中国からの配送、コピー品、不良品に注意)を探すのもよいかと思います。あと、大きめの白色LEDが必要ですね。そろえておきましょう。今回はシンプルに作ります。「人が検知され暗ければ、LEDライトが10秒間点灯、そうでなければ消灯」としましょう。プログラムは以下です。//10秒間点灯}}}接続は次のようになります。明るいと、LEDは点灯しません。CDSセルを軽く押さえて、人感センサーに手をかざすとLEDが光ります。第4回では、デジタル信号を出力しました。今回は、アナログ信号を入力してみましょう。CDSセルが入っています。これは明暗によって抵抗が変わるものです。最近、暗くなると点灯するライトとかのたぐいですね。プログラムは次のようになります。//シリアルモニタで情報を見る。//シリアルモニタで出力するdelay(1000);}日付_CDSで保存しましょう。次のように1k(茶黒赤金)とCDSセルを接続します。コンパイルして、Arduinoに書き込みます。ツールのシリアルモニタを開きます。9600bpsになっていることを確認してみましょう。1秒おきに数字が出るはずです。抵抗がなければ、5vの電圧が流れているはずです。明るいと230ぐらいの値になります。暗いと(手でCDSを覆うなど)56ぐらいの値になります。このように明暗で値が変わるので、この変化を利用するのがIOTの基本になります。INPUT)を設定しておいて、値を知りたいときにdigitalRead(ピン番号);とすると、デジタル信号を0,1で読み取ることができます。使うときに紹介します。第3回では、サンプルプログラムでLEDを光らせました。今回は、実際にプログラムを書いてみましょう。[ファイル]-[新規ファイル]を選びます。2つのパートからなります。実行(ループ)、メインプログラムになります。第3回では、LEDの点滅を13番ピンで行いました。今回は11番ピンでやってみましょう。//1秒待つ}できたらファイルを保存します。日付_BLINKとして保存しておきましょう。コンパイルして、11番ピンから接続して点滅したらOKです。本体などが届いたら、まずは、本で一通りやっておくのがよいでしょう。この本では、S4Aでも教えてくれるのがよいです。ブロックを組んでプログラムを組むタイプです。PCとつないでいないといけないので、最後はネイティブのプログラムを書く羽目になります。行って、開発環境を整えましょう。Softwareを選択します。中程に、Windows版があります。ZIP版(バージョンを保持できるので)をダウンロードした方がよいでしょう。寄付(donate)してダウンロードするか、そのままダウンロードするかを選択してダウンロードしてください。保存したら、ZIPファイルを展開します。D:/Program/Arduinoなどのフォルダを作ってそこに保存しましょう。Arduino.exeを開きます。作ったファイルやらライブラリを保存する場所を選択しておきましょう。[ファイル]の[環境設定]を開きます。スケッチの保存場所はArduinoと保存した場所と異なるところに保存する必要があります。D:/Arduinoとしておきましょう。あと、より詳細な情報を表示するのコンパイルにチェックを入れておくと、エラーがでたとき対応しやすいです。行番号は表示させておいた方がよいでしょう。PCと本体をUSBで接続します。ハブを介さず直接接続した方がよいです。今からやろうとしていることは、センサーすなわち、電圧、電流を気にするたぐいのものですから!!!接続したら、[ツール]を開きます。Unoシリアルポート:それぞれの環境。Uno)を選択します。いわゆるLチカでは、LEDをチカチカと点滅させる通称Lチカをやってみましょう。オス-オス2本ブレッドボードは、基板がいらず、半田付けもしないので、気軽に、部品を取り付けたり取り外したりすることができます。下のキットで大丈夫です。回路図のように、LEDと赤黒茶金の帯の200Ωの抵抗とをつけます。LEDは長い方がプラスです。抵抗は向きはありませんが、赤がプラス側につけるという風にルールを作ると電流の方向がわかりやすいです。回路図はfritzingというフリーソフトを使っています。落ちます;;;本でも解説してありましたが、通常のLEDは最大3vまで耐えられ?ます。Arduinoは5v電源を使っているので、回路を間違うとLEDが吹っ飛びます;;;何個も飛ばしました;;;ちゃんと計算して抵抗はつけましょう・・・。ジャンパーピンは、プラス側を赤色、マイナス側を黒色にしておくと、電流の流れがわかりやすくなります。ここでは、13ピンにつけます。マイナスはGNDにつけます。取り付けが終わったら、いよいよプログラムを動かしましょう。ファイル、スケッチ例、01.Basics、Blinkを選択します。サンプルファイルが用意されています。チェックマークを押してコンパイルして、右矢印マークを押してマイコンに書き込みます。すると、Arduino本体のオレンジのLEDとブレッドボードのLEDが点滅するはずです。最初は本家のArduinoを買おう最初は本家のArduinoを買おうまずはじめに用意するものは本家のArduino本LEDなどの部品類が必要になります。ここで、本家のArduinoと書きましたが、Arduinoはオープンソース化されているので、いろんなメーカーがいろいろな商品を出しています。商品が異なるとどこで躓いたのか分からなくなるので、まずは、本家のArduinoを買いましょう。ところが、Arduinoはイタリア生まれなのですが、米国とのライセンスの関係でGenuinoと名前もありますが、どちらも本家です。Arduinoには、様々なバージョンが用意されています。Unoを使いたいと思います。これひとつ(Uno)で何でもできるよということですね。どこからでもよいのですが、アマゾンのスイッチサイエンスさんがよいかとおもいます。送料が無料になるからという理由だけです。次に、本ですが、私が使ってわかりやすかったのがこの本です。これもアマゾンでどうぞ。Kindle版だとかなりやすいです。わかりやすいプログラムの本は厚いですが、すぐ古くなるので、悩ましいですね。最後にLEDなどの部品類。上の本を読みながら進める場合、残念ながら専用キットがありません。用意しなければならないのです。買いましたが、下のが一通り揃っており、本の内容通りに進められました。ちなみに、これにはArduinoもついているので、別途本体を買わなくてよいです。Aruduinoをはじめようはじめにかなり前から、Arduinoをやっているのですが、久しく使わないとプログラムって忘れますね。メモついでにネットで残しておこうといつもは、PukiWikiを使っているのですが、スキンやプラグインが古くなってきたので、今更ながら、WordPressで書こうと思います。使い勝手がよければ、ほかの項目もこちらに移行したいなとも思っています。Arduino?今更感があるArduino。Piじゃないの?と聞かれます。ラズパイは自走ロボットや機械学習などスタンドアロンでの動作も要求されるので、メモリやらなんやらスペックも大きめです。私がやりたいのはIOT。ネット環境が揃ってなくてはなりません。裏を返せば、IOTでは、センサーの情報を収集することが主な目的で、重たい演算は、サーバでやればよいわけです。結果を再び、Arduinoに返してもよいのです。いうことで、非力なボードでも十分役に立つのです。コストがかなり安いのも魅力的です。8bitマイコンに、5v電源、四角いUSBの穴があり、SDカードとかネットとかにはつなげそうにありません。時間も正確に刻むことはできないでしょう。目標は、センサーで得た情報をデータベースにあげることを目標にします。そもそも、WordPressにあまり慣れていないので、まずはこの辺で。下の本を買ったところ、かなり勉強になりました。1冊用意しておきましょう。