エレショップblog

半導体・センサー・マイコン・電子工作キットほか、各種電子部品の専門店「共立エレショップ」から主に電子工作の関連情報をお届けします。 http://eleshop.jp/

記事担当:
ハンダ付け不要-マイコン系


先週に引き続き、Arduino超初心者編です。

前回(★「電工女子、Arduino(アルドゥイーノ)を知りたいです!」)ArduinoIDE(アルドゥイーノ アイ・ディー・イー)をPCにインストールしました。
12arduino8

今回はArduinoIDE内にある「スケッチ例」を利用して、次の手順でLEDを点滅させてみたいと思います。

[ステップ1]
Arduino UNOのデジタル13番ピンに挿したLEDを1秒間隔で点滅させる

[ステップ2]
Arduino UNOのデジタル13番ピンに挿したLEDを3秒間隔で点滅させる


先に動画をご覧ください。


まずは、Arduino IDE(PC上)とArduino UNOの設定をします。

(1)Arduino UNOとPCをUSBケーブルで接続します。
 2-Arduinoつなぐ

(2)Arduino UNO上の「電源LED(緑色)」が点灯しているのを確認
3-電源LED

(3)Arduino IDEのメニューバー「ツール」>>>「ボード」から使用しているArduinoの種類を確認
私は「Arduino/Genuino UNO」を選択。(自動的に設定されていました)
4-ボード選択

(4)Arduino IDEのメニューバー「ツール」>>>「シリアルポート」を確認
(こちらも自動的に設定されていました)
5-ポート選択

これで、Arduino IDEとArduino UNOの設定は完了しました。

次に「Blink」のスケッチをArduino UNOに書き込んでいきます

(1)PC上のArduino IDEのメニューバー「ファイル」から、「スケッチ例」>>> 「01.Basics」>>>「Blink」の順番に開いていきます
6-スケッチ例

(2)Arduino IDEに「Blink」のスケッチ例が表示されます。
7-Blinkスケッチ

(3)「マイコンボードに書き込む (「→」マーク)」をクリック
8-マイコンボードに書き込む

(4)書き込んでいる最中はArduino UNO上の「TX」「RX」のLEDがビカビカっと点滅します。
9-TX_RX点滅

(5)書き込みが無事終わり、「TX」「RX」のLEDが消灯

(6)Arduino UNOの「GND」と「デジタル13番ピン」にφ5の砲弾型LEDを挿します。
10-ピン説明

※電流制限のための抵抗(220Ω)を使用してください。
※LEDには極性がありますから注意してください。
「GND」にマイナス端子(LEDの端子の短いほう)、「13」にプラス端子(LEDの端子の長いほう)を挿します。

(8)GNDとデジタル13番ピンに挿したLEDが1秒間隔で点滅します。→正常動作しています。[ステップ1]成功!
11-13番ピンが1秒間隔点滅

(9)Arduino IDEの「Blink」のスケッチに書かれている「delay(1000)」の数値を変更します。
  「delay(1000)」を「delay(3000)」と書き換えます。(2箇所あります)
12-delay書き換え

(10)GNDとデジタル13番ピンに挿したLEDが3秒間隔で点滅します。→正常動作しています。[ステップ2]成功!
13-13番ピンが3秒間隔点滅

Arduino UNOでLEDを点滅(制御)させることができました!^o^v
が、謎だらけ。。。

疑問1.なぜデジタル13番ピンにLEDを挿したのか。他のピンじゃだめなの?
疑問2.「delay(1000)」って点滅速度を変えるコードなの?そもそもスケッチの内容を理解できていない。

「Blink」のスケッチを見ながら、ひとつずつ疑問を解消していきましょう。
14-Blinkスケッチ

まずは「疑問1.なぜ13番ピンにLEDを挿したのか。他のピンじゃだめなの?」

「Blink」のスケッチの中に「LED_BUILTIN」というコードがありました。
そして、「LED_BUILTIN」というコードについて、www.arduino.ccのページを見ると、このような記述が。。。
13-1-LED_BUILTIN
https://www.arduino.cc/en/Reference/Constants
つまり、「LED_BUILTIN」とはArduino UNOのデジタル13番ピンのことを指すみたいです。(゚A゚;)ゴクリ.
IDEのサンプル例に書かれている「Blink」のスケッチは、デジタル13番ピンに挿したLEDの制御例、ということですね。

次なる疑問。
「delay(1000)」て点滅速度を変えるコードなの?そもそもスケッチの内容を理解できていない
そうなんです。
Arduino IDEからArduinoボードにスケッチを書き込む手順はわかったのですが、肝心なのは、そのスケッチ(Arduino IDEに書いた)の内容。

まず、「/*」「*/」「//」注目!
・Arduinoのスケッチにおいて、「/*」「*/」「//」内の文章は「コメント」である
・「コメント」とはArduinoの指令内容(スケッチ)に関する説明文やメモのようなもの。
・変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない
とあらかじめ先輩スタッフさんに教えてもらっていました。

なので、コメント(Arduinoの指令内容(スケッチ)に関する説明文)の部分をざっくり和訳してみました。
15-読み解く

うんうん。なんとなく意味がわかってきました
いえ、まだまださっぱりなんですが、丁寧にコメントを入れてくれているおかげで、Blinkのコードの意味が理解できてきました。

次にコード(Arduino言語)を見ていきましょう。
コメントは「変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」とのことだったので、「Blink」のスケッチからコメント部分を省いてみました。

結果、こんな感じ↓
-----------------------------------------
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(1000);                      
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);                  
}
-----------------------------------------

わ!めっちゃ短かくなった!!^o^
と喜んではみたものの、このコードの意味はやっぱりわからず…(´-ω-`)ションボリです。

digitalWrite」やら「delay」やら、、、Arduino言語、むずかしい・・・。

と、思ったところで、再度、Arduino IDEのメニューバー「ヘルプ」へ。
「ヘルプ」>「リファレンス」をクリックすると、、、
16-リファレンス1

ブラウザにジャンプして、ページが表示されました。
これ、Arduino言語の辞書的なページなんです。
17-リファレンス218-リファレンス3

例えば
、「delay」。
「Blink」のスケッチ例の中に出てきましたね。
「delay(1000)」って書いてました。
19-delay

リファレンスを見ると、「()内で指定された時間、プログラムを一時停止する」指令だということがわかります。
「()」内に表示する数字はms単位。1000ms=1秒。
「delay(1000)」はつまり、『1秒間プログラムを一時停止するコード』ということになります。

そして、「digitalWrite(LED_BUILTIN, HIGH)」。
「digitalWrite(LED_BUILTIN, LOW)」は出力に関する指定をするコードみたいです。
20-digitalwrite

Arduino IDEの「スケッチ例」>>> 「01.Basics」>>>「Blink」の内容はつまり、
『Arduino UNOのデジタル13ピンに挿したLEDが、1秒間点滅(状態で一時停止する)→1秒間消灯(状態で一時停止する)を繰り返す』という内容だったんですね!

おー!!理解できたときの快感!たまらないです!!^^

そして、念には念を。
先輩スタッフさんの言うとおり「コメントは変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」というのは真実なのか・・・?
(べつに先輩スタッフさんを疑ってるわけじゃないですよー(^_^;))

「Blink」のスケッチからコメント部分を削除した内容(コードのみ)で正常動作するのかを試してみました。
21-コードのみ

無事正常動作しました。
22-13番ピンが1秒間隔点滅



ふっふっふっふ。無事成功。
少し理解もできました。満足、満足。^^

ところで、再度IDEを見ると「検証(コンパイル)」ボタンと「マイコンに書き込む」ボタンがあることがわかります。
「検証(コンパイル)」してから、「マイコンに書き込む」べき?
でも、いきなり「マイコンに書き込む」をクリックしても問題なく動作したし、どうなんだろう?

再び先輩スタッフさんに聞いてみたところ、
「マイコンに書き込む」をクリックすると、検証(コンパイル)してくれる。
エラーが出たら、どうせ書き込みできないんだから、「検証(コンパイル)」→「マイコンに書き込む」の順でクリックしても、
「マイコンに書き込む」だけクリックしてもどっちでもいいよ。試しながらスケッチしている時は「検証(コンパイル)」をしながら作業したりするよ』
とのことでした。
23-コンパイル
※「検証」をクリック
24-書き込み
※「マイコンボードに書き込む」をクリック

来週はこれを利用して、店頭にディスプレイしている作例をご紹介していきたいと思います。

それはまた次週!

(記事:ぐっちさん)
更新予定:毎週木曜日(次回は3月30日です!)

★記事内で紹介した商品は、こちらから購入できます!★

商品
型番
個数
一括注文
リンク先
Arduino UNO Rev3 A000066 1個 こちらから→
USB2.0 ケ-ブルA-B 1m 2AB-10 1個
Arduinoをはじめよう 第3版 ISBN9784873117331 1個
LED 5φ 赤 ★受注単位有★ L-513ET 5個
カーボン抵抗 1/4W 5% ★受注単位有★ 220Ω 10個
※個数を記入していますが、リンク先ページ内で変更可能です。

記事担当:
ハンダ付け不要-マイコン系


昨年末から★シリコンハウス一階、上りエスカレーターの横(左手)のエリアに電工女子の作品の一部を展示しております。


新年の目玉展示として設置していた「イケメン獅子舞君」。
1獅子舞君

ご来店されたお客様(小学生ぐらいの男の子でした)が「おぉ! (゜ロ゜)!」とリアクションされているのを見て、めっちゃ嬉しかったです。
ありがとうございます!!^^

今回、私が作ったのはペーパークラフトで作った獅子舞君の頭の部分だけ。

人体を感知し、音楽と一緒に舞を披露する、いわば心臓部は当社開発のお兄さんに作ってもらったベースボードの成せるわざなのでした。


2土台ボード

★「プチロボMS5L」★「人感センサー」★「録再ボード」★Arduino(アルドゥイーノ)で制御していました。

開発のお兄さんがArduinoのプログラムを作っているのを隣りでじーーー・・・っと見ているうちに
Arduinoってすごい!何でもできるんやん!」と若干勘違いしつつ、心の中でつぶやきました。
自分でArduinoを操れるようになりたい・・・」と。。。(小声)(´-`).。oO

だけど、そもそもArduinoって何?どうやって使うの?
「プログラミング!」と聞くだけで軽く拒絶反応を起こしてしまう私にでもできるの?
数日悩みましたが、ここは勢いで乗り切るのだ!!

まずは★Arduino UNO(アルドゥイーノ ウノ)本体を購入しました。
3My-Arduino

買うことで自分を追い詰めてみました。^o^;
買ったからには、やらねばねっ!

Arduino本体の他に必要なものパソコンと、USBケーブル(Arduinoとパソコンを接続するため)です。
4USBケーブル

ArduinoでのプログラミングにはArduinoIDE(アルドゥイーノ アイ・ディー・イー)というソフトを使います。
ArduinoIDEをパソコンにインストール→ArduinoIDEでスケッチ(プログラム)を作成→Arduino本体にその内容を書き込むことでLEDやサーボモーターなどを制御することができるのです。

そうそう。
Arduinoで使用する、ひとまとまりのコードのことは「プログラム」ではなく、「スケッチ」と呼ばれているそうです。
「プログラム」「プログラミング」と言われると、なんとなく「難しいこと!」という先入観がありましたが、
スケッチ」と言われると、「楽しくお絵かき!」的な親近感がわくのは私だけでしょうか。^^

ということで、まずはArduinoIDEをパソコンにインストールしていきましょう。

ArduinoIDEはArduino ccのホームページからフリーでダウンロードできます。

2017年3月時点での最新版は「ARDUINO 1.8.1」です。

インストール手順は使用するパソコンのOSによって異なります。
私が使用するパソコンはWindows7なので、Windows版のインストール手順をご紹介していきますね。

まずは、Arduino ccのホームページにアクセス。

「Windows Installer」を選択して、
5Arduino1

「ダウンロード (JUST DOWNLOAD)」をクリック
6Arduino2

「使用同意」を確認して「Agree (同意)」をクリック
7arduino3

インストールするものの内容を確認して、「Next (次へ)」をクリック
8arduino4

ファイルがインストールされる場所を確認して、「Install (インストール)」をクリック
9arduino5

インストールが始まります。
10arduino6

しばらく待って・・・インストール完了!簡単でした!
「閉じる (Close)」をクリックして、セットアップ画面を閉じます
11arduino7

デスクトップを見ると、Arduinoのアイコンが出ています
これが「Arduino IDE」です。
12arduino8

早速、起動させてみましょう。
13arduino9

ここにスケッチを書き込んでいくんですが、何をどう書いていいのやら。。。(゚A゚;)ゴクリ.
14arduino10

なので、まずはArduino IDEがどんなソフトなのかを見ていくことにします。
「ファイル」「編集」「スケッチ」など、メニューバーがエクセルみたい。
なんだか見慣れた感じで、緊張感が少し緩和されます。^^
そして、「ヘルプ」をクリックしてみたところ、「初心者向けガイド」の文字が!!
こりゃありがたい!
15arduino11

早速クリックしてみると、、、
16arduino12

おぉ!いきなりブラウザにジャンプして、ページが表示されました!
17arduino13

Getting Started with Arduino on Windows (WindowsでArduinoを始めよう)」
おぉ!!Arduinoを始める手順が書いてあります!
(↓Google Chromeのウェブページ翻訳を利用しました)
18arduino14

Arduinoを始めるために必要なものの説明から、Arduino IDEのインストールLED点滅のスケッチ例まで書いてあります!!
めっちゃ親切じゃないですか!こりゃありがたい!!
では、これから先はこのページを見ながらLED点滅のスケッチをArduinoに書き込み(アップロード)していきたいと思います



それはまた次週!

(記事:ぐっちさん)
更新予定:毎週木曜日(次回は3月23日です!)



★記事内で紹介した商品は、こちらから購入できます!★

商品
型番
個数
一括注文
リンク先
Arduino UNO Rev3 A000066 1個 こちらから→
USB2.0 ケ-ブルA-B 1m 2AB-10 1個
Arduinoをはじめよう 第3版 ISBN9784873117331 1個
※個数を記入していますが、リンク先ページ内で変更可能です。

★記事内で紹介した商品は、こちらから購入できます!★

商品
型番
個数
一括注文
リンク先
プチロボMS5L WR-MS5L 1個 こちらから→
人体赤外線感知素子 KP-IR612 1個
ボイスレコーダー2【基板完成品】 VREC-40 1個
Arduino UNO Rev3 A000066 1個
※個数を記入していますが、リンク先ページ内で変更可能です。

記事担当:
ハンダ付け必要-非マイコン系


先週は、★「電磁波レベルメータSP」(DN-G8SP)を作ってみました。★(電工女子、WonderKitを作ります!(第14弾:電磁波レベルメータSPです))
そして、動作チェックまで終わらせたんでしたね。
DN-G8SP-24

このまま色んな電子機器の側に行って、電磁波具合を測りたいところですが、ちょっと待ってください!
しなきゃいけないことがあるんです。
それは…

感度調節」です。

説明書には
「LED5が点灯しないギリギリの所に設定することで最大の感度になります」とあります。
この設定をしてあげることで、目視で反応が分かりやすいんですって。(常にMAXになっているより、徐々に光るLEDが増えることによって、距離や電磁波の強さが分かりやすくなるってことですね!)
あ、因みに「LED5」は緑LEDの横にある赤LEDのことです。

感度調節の仕方も簡単です。
電磁波の影響を受けない環境(携帯やACアダプタ、電子レンジなどが無い場所)で、スイッチ(SW1)を押しながら、半固定抵抗(VR)を一旦時計回りに回します。(感度大の方向)
LED5が点灯したら、次はそのLEDが消えるまでゆっくり反時計回りに回します。(感度小の方向)
この時、プラスドライバー★(「スタンダードドライバー/プラス #00」)を使うと楽に回せますよ!

DN-G8SP-25

ここまで出来たら、完成です!

はやる気持ちを押さえながら、スイッチを押しつつ、オカポンうろうろし始めます
DN-G8SP-26

シリコンハウス3階「ものづくり工作室」の中に、マイクロスコープがあるんですが(最大倍率500倍ですって!デモもしてますよ)、そこに近づけたら、メータが最大まで点灯しました!
なにこれ面白い…
DN-G8SP-27

うーんと…じゃあ、ココはどうだ!
DN-G8SP-28

パソコン近くまで行きましたが、メータ動かず

むむむむ…と、唸っていると、見ていた熟練スタッフさんが「その上に置いている無線LAN中継機に近づけてごらん?」と。
DN-G8SP-29
ほおぉぉぉぉ!!こちらから電磁波が出ているんですねぇ。
私「大きいモノから電磁波が出る」ものだと勘違いしていましたが、本体の大きさと出す電磁波の大きさは比例しないんですね。

ちなみにこのキット「高域」と「低域」を感知してくれるんですよね。
高域の電磁波は、先程のマイクロスコープとか無線LANとか、電子レンジから出ているんだそうです。
で、低域の電磁波と言うのが、ACアダプタとかから出ているんですって。
へぇぇぇ…
 
というわけで、やってみました。
ACアダプタに★「電磁波レベルメータSP」を近づけてみると…
DN-G8SP-30DN-G8SP-31

ほう!ACアダプタから出てる電磁波を感知していましたよ!

でもこれ、今拾っている電磁波が高域の電磁波なのか低域の電磁波なのか、分からないじゃないですか。
分かるようにならないんですかね?って、熟練スタッフさんに聞いたんですが、
そんなのはキットじゃ出来ない(とても高価なものになる)ので無理ですよ。
と笑っていました。

さて、ここで気になるのがこれってどこにセンサーがあるんだろう?ということです。
先端に出ているインダクターアンテナだけで拾っているんだと思っていたんですが、実はそれだけじゃないんです!
インダクターアンテナは、低域用のアンテナで、高域用のアンテナは、実は基板に乗っかっていたのです!!!びっくり。
基板に乗っている赤丸で囲っている所が、高域用のアンテナなんですって。

DN-G8SP-32

ですから、これを持って電磁波検知する時、スイッチ押しながら裏面を触っちゃいそうになるんですが(オカポン、何回か触ってましたが)、スイッチ押している時は、裏面のハンダ付けした箇所を触らないようにしてくださいね!
アンテナの感度がおかしくなっちゃいますからね!

さて、ここでもう一つ応用を。
このキット、電磁波の受信感度アップすることが出来るんです!

説明書をもう一度見てみましょう。
DN-G8SP-33

基板の裏に配線材を取り付けるだけで良いんですって!
他にも電線の切れ端があればなんでも使えるみたいですよ。

で、用意した配線材を指定の位置に取り付ます
DN-G8SP-34

びよん。
ホントにこれだけで感度が上がるんですかねぇ…?
DN-G8SP-35

半信半疑で、無線LAN中継器の近くに寄ってみました。
前回はこの距離では電磁波を拾わなかったんですが、アンテナ(配線材)をつけたらこの距離でも拾いました!
効果は有る模様です!
DN-G8SP-36

と言う訳で、なかなか電波を拾わないなぁ?とか、さっきは出来たのになぁ?と感じた時は、
・電磁波には方向性があるので、アンテナの向きを変えてみる。
・裏面の基板パターンを触っていないか確認する。
・感度調節の際、周りに電磁波を発するものがないか、再度確認して感度調整をやりなおす。
 ACアダプタや携帯などは意外と近くにあるので、要注意です。

などを試してみてください。


是非、楽しんでみてくださいね!

(記事:オカポン)
更新予定:毎週木曜日(次回は3月16日です!)


★記事内で紹介した商品は、こちらから購入できます!★

商品
型番
個数
一括注文
リンク先
電磁波レベルメータSP DN-G8SP 1個 こちらから→
単3形アルカリ電池4本パック LR6R/4S 1個
スタンダードドライバー/プラス #00 DS-03 1個
電子・通信機器用ビニル電線 KV0.2SQ 1m×6色袋入 0.2KV-1X6 1個
※個数を記入していますが、リンク先ページ内で変更可能です。


★キット製作時に使用した道具は、こちらから購入できます!★

商品
型番
個数
一括注文
リンク先
DASH低価格セラミックヒーターハンダこて15W
はんだ付け入門セット
FX650-84 1個 こちらから→
マイクロニッパー 11295 1個
精密ピンセット/逆作用ピンセット 先細 TS-16 1個
電子工作用ハンダ SD-63 1個
ワイヤーストリッピングゲージ BBM-WSG 1個
セラミックヒータータイプ用こて台 FH300-81 1個
※個数を記入していますが、リンク先ページ内で変更可能です。

このページのトップヘ