特集全実験室に ! 高旧アルデュイーノ基板 Appendix 1 パソコン 連携やスタ ンドアロン 使いも 世界中の実験室で大活躍 ! Arduino ってこんなマイコン・ボード 極楽プログラミング / 拡張性バッグン / ホビー用や教材だけでなく計測制御にも / 0 あらまし ・先生が学生のために作った超工ントリ・マイコン・ Arduino は , 8 ビットの AVR マイコン ( 旧アトメル , 現マイクロチップ・テクノロジー ) を搭載したイタリ ア生まれのマイコン・ボードです ( 写真 1 ). 2005 年末 に , イタリアの大学で , 電気・電子の学生のために開 発されました . 電気・電子やソフトウェアの専門家でなくても容易 にマイコン・プログラミングができるよう , さまざま 写真 1 Arduino の中でも最もよく使われているマイコン・ポー な工夫がされています . 現在では , アート系や機械系 , ド・・・ A 「 duino UNO 情報系 , 文系の学生など , エレクトロニクスやプログ ラミングのビギナにも広く利用されています . マイコン・ポード 6 Arduino という名称の付いたマイコン・ポードは , ・ Arduino という言葉の意味 いくつかあります . 最もよく使われるのは写真 1 に示 マイコン・ボードと開発環境を組み合わせた全体を す AVR マイコンを搭載した Arduino UNO です . ほか 指す のボードと比べると性能は低いですが , もっとも代表 「 Arduino 」という名称は , マイコン・ポードのこと 的なポードとして , 書籍やネット上の情報が多いです . だけを指すわけではありません . プログラムを開発す ほかのタイプのボードとして , 小型タイプの るためのソフトウェアや , さまざまなデバイスを動か Arduino Pro Mini や Pro Micro, 高性能な ARM マイ すためのプログラム群 ( ライプラリ ) を含めた , プロト コンを使用した ArduinoZERO, インテル製マイコン タイプ ( 試作品 ) の総合開発システムのことを指します . を搭載した Edis 。 n や 101 などがあります . 代表的な 表 1 Arduino マイコン・ポードのいろいろ 小型モテルから高性能マイコン搭載モテルまでさまざまなタイプが発売されている p 「 0 Micro 注 Arduino Arduino P 「 0 Mini Arduino Arduino Genuino ポード名 ( 5 V モデル ) MEGA 2560 Leonardo ( 5 V モデル ) UNO 101 ATm ega328 ATmega2560 ATmega32U4 搭載 Curie ( マイクロチップ・ ( マイクロチップ・ ( マイクロチップ・ ( インテル ) マイコン テクノロジー ) テクノロジー ) テクノロジー ) 8 ビット 8 ビット 8 ビット 32 ビット CPU コア AVR AVR AVR Quark クロック周波数 16 MHz 16 MHz 32 MHz 16 MHz フラッシュ・ 256 K 196 K 32K ノヾイト 32 K バイト バイト メモリ バイト 2 K バイト 8 K バイト 2.5 K バイト 24K バイト SRAM 1 K バイト EEPROM 4 K バイト 1 K バイト 電源電圧 5 V 3.3 V 5 V 5 V 寸法 Cmm] 53.4 x 68.6 53.4 x 68.6 53.31 x 101.52 53.3 x 68.6 シールド・ あり あり コネクタ Bluetooth, その他 6 軸センサ 周辺機能 ( 加速度 / ジャイロ ) 注 : 正式には Arduino ではないが ArduinoIDE でプログラミングできるのでリストに加えた ン 9 技術 2017 年 2 月号 USB コネクタ ( タイプ B ) ロ N9 ー 機能拡張ポードのシールドが 載せられるピン・ソケット ー AVR マイコン 取り外しができるのでプログラム 書き込み後に別の回路に移動できる USB シリアル 変換℃ 三一 ON 一二 3 価 OI ESP- Arduino WROOM ー 02 注 ZERO ATSAMD21G18 ES P8266EX ( マイクロチップ・ ( Espressif System) テクノロジー ) 32 ビット 32 ビット Cortex ー MO + Tensilica L106 80 MHz 48 MHz 256 K 4 M バイト バイト 32 K バイト 50 K バイト 3.3 V 3.3 V 30 x 68 18 x 20 なし 18 x 33 なし 17.8 x 33 なし あり あり あり Wi ー Fi 43
リスト 1 Arduino スケッチで記述した Lazurite Basic 用のプログラム (PwrCtrI.c) 距離センサの制御と各機器の電源管理を行う #include "PwrCtr1 ide. h" #define S_ENB 17 #define P_ENB 16 #define L ENB 18 #define P_ACT 工 VE 2 #define 3 P CAPTURING int senseln; int timecount char state [ 3 ] ー int MAXCOUNT void setup() pinM0de ( S—ENB ′ OUTPUT) : digita1Write (S—ENB, LOW) ー pinM0de ( P—ENB ′ OUTPUT) ー 入出力 digita1Write (P—ENB, LOW) ー ピンの 設定 pinMode (L—ENB ′ OUTPUT) ー digita1Write(L_ENB, LOW) ー pinM0de (P—ACT 工 VE, 工 NPUT) ー pinMode (P_CAPTUR 工 NG, 工 NPUT); state[O] state[l] state[2] INI ステートから始まる 1000ms ( 1 秒ことに 繰り返す ) void TransState(void) ーエー & & state [ 1 ] 土 f ( state [ 0 ] ー N ー & & s tate [ 2 ] if (timecount state[l] state[O] state[2] digita1Write (S—ENB HIGH) ー 5 秒間距離センサ MAXCOUNT を ON にして判定 } e 1 s e 土 f ( s t a t e [ 0 ] ・手順 3 : マイコン・ポードへのプログラム書き込み プログラムの作成が済んだら , 図 5 のように [ ツー ル ] ー [ マイコンポード ] から CLazurite Sub-GHz Rev2] を選択します . その後図 6 のように [ ツール ] ー [ オプション ] か ら CLazurite Basic] を選択します . トの設定 ( 2 ) シリアル・ポー 住 ~ しプ マイコンボード ・ LAZU RITE Sub-GHz R オプシ・ヨン LA URITE Base シリアルモニタ こをクリックして 丸印を付ける シリアル通信 図 5 マイコン・ポードの設定 ー O ー & & s t a te [ 2 ] state[l] if (timecount ana10gRead (AO) ー S e n S e 1 n i f ( sen se 土 n > 6 0 0 ) state [O] ー R s t ate [ 1 ] digitaIWrite (P—ENB, HIGH) : 7 0 : MAXCOUNT else { state [ 0 ] state[l] 60 ☆ 15 ー MAXCOUNT digitaIWrite (S—ENB ′ LOW) ー else if(state[O] 'R' & & state[l] if (timecount if ( digita1Read (P—CAPTUR 工 NG) state[l] state[O] digita1Write (L—ENB, HIGH) ー 10 ー MAXCOUNT A-D コンバータの値が 600 を超え たらラズベリー・パイを O N ー O ーー state [ 2 ] 600 以下なら INI ステートに戻る ー N s tate [ 2 ] I/O ピンの 番号に割 り当てる 15 分という意味 6 0 ☆ 15 ー ー 0 ー & & state[2] HIGH ) ー A 嵭 s t ate [ 2 ] P ℃ APTURING が " なら LED 照明を光らす 'A' & & state[2] LOW ) ー 0 嵭 s tate [ 2 ] P ℃ APTURING が工 " なら LED 照明を消す ー 0 ー & & state[2] 'C' & & state[l] else if(state[O] if (timecount if ( digitalRead (P—CAPTUR 工 NG) state[O] ー L s tate [ 1 ] digita1Write (L—ENB ′ LOW) ー Z = else if(state[O] 'L' & & state[l] if (timecount if ( digita1Read (P—ACTIVE) state[O] state[l] LOW ) { ー 0 s tate [ 2 ] void 100P ( ) TransState ( ) ー s leep ( 10 0 0 ) ー ー 0 ー & & state[2] 'P' & & state[l] state[2] P. ACTIVE が "L" になった 10 秒後 にラズベリー・パイの電源を切る M A X C O U N T if (timecount > = MAXCOUNT—I ) timecount 秒で timecount else timecount 十十一 が 1 周する else if(state[O] if (timecount state[O] state[l] digita1Write (P—ENB, LOW) ー ポート ] から CCOMxx] を選択します . xx に入る数 字は Windows のコントロール・パネルのデバイス・ マネージャなどで調べましよう . ( 3 ) ビルド & 書き込みの実行 Lazurite IDE での設定が済んだら , 図 8 のように [ ビ ルド ] アイコンをクリックします . すると作成したプ ログラムのビルドが実行されます . 工ラーなく終了し たら , 図 9 に示す [ マイコンポードに転送 ] アイコン をクリックして , マイコン・ポードへプログラムを書 図 7 のように [ ツール ] ー [ シリアル通信 ] ー [ 通信 : 住ーここをクリックして丸印を付ける Windows のデバイス・マネー - マ・ 11 ノれ、 マイコジャーなどで番号を確認する 、オプミ′ョン ・ LÄZURITE B35 に . オプ三・・ヨ′ シリアルモニタ LAZURITE 引 w 砒 D T 部 ) シリアルモニタ シリアル通信第 LAZURITESub-GHZ シリアル通信 ! 第通信ポートを・ ( 0M4 う LAZURITESub-GHz(WatchDcgTimer) を reP ーⅡ 2 FeL_ENB 物 ~ LAZURITE S 面 - G トセ Sniffer , ・・ irep - ー圏ー間 3 ーのれ P - 2 図 7 シリアル・ポートの設定 図 6 マイコン・ポードのオプション設定 ン湫タ技術 2017 年 2 月号 (1) マイコン・ポードの設定 80
Arduino マイコン・ポードを表 1 に示します . 開発環境 Arduino には , Arduino IDE と呼ばれる専用のマイ コン・プログラム開発ソフトウェアが用意されていま す . Windows, macOS, Linux での動作をサポート しています . Linux コンピュータであるラズベリー パイでも動作します . ArduinoIDE には , 入出力やタイマなどマイコンの 機能を簡単に使えるようにする , でき合いのプログラ ム ( ライプラリ ) が組み込まれています . ライプラリには使用例 ( サンプル・プログラム ) が一 緒に登録されています . 最初はサンプル・プログラム をベースに変更を加えてゆき , 自分のプログラムを作 るのが近道です . ArduinoIDE に自分のほしい機能のライプラリが用 意されていないときは , サード・パーティ製のライプ ラリを探してきて , 追加することもできます . ■特徴 ①プログラムの書き込みが超簡単 / Arduino では , パソコンとマイコン・ポードを USB ケープルで接続するだけで , プログラムの書き込みが できます (Arduino Pro Mini など , 別途 USB シリアル 変換モジュールが必要な製品を除く ). 通常のマイコン・ボードだと , 専用の書き込み器が 必要で , 別途購入する必要があります . プログラム書き込みの時にユーザが行う作業は , 図 1 に示す Arduino IDE で [ → ] のボタンをクリックす るだけです . そうすると , 自動でコンパイルと書き込 みが実行されます . しくみ Arduino に使われるマイコンには , プートローダと 呼ばれる書き込み用のファームウェアが書き込まれて います . プートローダは , パソコンからプログラムを ダウンロードしてきて , 内蔵のフラッシュ・メモリへ の書き込みを行います . プートローダは電源投入直後から動き出し , 最初は パソコンからプログラムが送られてこないか監視して います . 送られてこないときは , すでに書き込まれて いるメイン・プログラム ( 前回ユーザが Arduino IDE ライプラリ で書き込んだプログラム ) を実行します . プログラム が送られてきたときは , メイン・プログラムは実行せ すに , 書き換えを行います . パソコンとのインターフェース プログラム書き込み時のインターフェースは , 非同 期シリアル通信の UART (UniversaI Asynchronous Receiver Transmitter) です . ユーザから見ると USB で行っているように見えますが , 実は図 2 のように Arduino マイコン・ボード上で UART に変換してい ます . パソコン側に UART の機能があれば , 変換なしで 直接マイコンにプログラムを書き込むこともできます . Arduino Leonard0 の ATmega32U4 のように , 搭載 マイコンによっては直接 USB でパソコンとやり取り している場合もあります . ② c 十十べースの独自言語「スケッチ」を使う Arduino のプログラム記述には , C + + をベースと した独自言語「スケッチ」を使用します . プログラムの大まかな構成は , ライプラリを読み出 すインクルード文 , 初期化ルーチンの setup ( ) , メイ ン・プログラムの lo 叩 ( ) の 3 つに分けられます . インクルード文 必要なライプラリを読み出す記述です . LED 点滅 やシリアル通信による文字出力くらいならインクルー ド文は不要です . 機能拡張基板のシールドや , センサ や GPS など各種ハードウェアを追加するときにライ プラリの読み出しが必要です . 初期化ルーチン : setup() 電源投入後やリセット直後のように , マイコンを起 動した直後に 1 度だけ行う処理を記述します . 具体的 Arduino UNO なと USB USB UART TXD AVR RXD マイコン パソコン USB ケープル シリアル 変換℃ 墓板の中で USB 信号を UART 信 号に変換して通信している (a) USB シリアル変換機能付きボードの場合 Arduino Mini P 「 0 なと USB ー ー USB シリアルー 変換 IC ー USB シリアル変換 ケープルなど パソコン UART TXD AVR RXD マイコン 図 1 プログラムの書 き込みに複雑な手続き は不要 Arduino IDE では [ ボタンを押すとコンパイ ルと書き込みがいつべん に実行される 。 BIink ー Arduino 1.6.12 ・ ファイル編集スケッチッール′しプ 2 3 4 5 6 このボタンをクリックする だけでコンパイルと書き込 みが実行される ロマイコンポードに書き込む T リ「 0 「 Mo Ardui n05 have on- board LED YO リ 0 r 社 i 5 8 員 ached い d に i t 引 P ⅲ . on MKRI 圓 0 on (b) USB シリアル変換機能がないボードの場合 図 2 USB ケープルでつなぐだけ / A 「 duino ではマイコンの種類 を意識することなくプログラムを開発できる 44 【セミナ案内】直伝 / 最新 FPGA を使ったビデオ・システムの開発 [ 実習セミナ ] [ 演習あリ ] ( プラットフォーム構築編 SDSOC20162 対応リニューアル ) ーイメージ・センサ入力処理か ンシス 9 技術 2017 年 2 月号
CPU 設計の 達人 チャレンジ・コーナ 電子工作にプロの技術を / ティジタル制御電源用マイコン MD6602 のすべて 第 8 回 ( 最終回番外編 ) 電源だけじゃない / 五線譜上でピカる「 LED ポーカル・トレーナ」の製作 ー一部品 20 点 / 増幅もフィルタリングも音程判定もオール・ソフトウェア処理ーー 石、塚智糸会 Chie lshizuka 美 . 馬不日丿 ( Kazuhiro Mima オ木秀樹、 Hideki Hayashi MD6602 ( サンケン電気 ) は , ディジタル制御電源専用の 8 ビット・マイコンです . CPU コア以外に DSP コアを 2 個搭載しており , 全部で 3 個のコアが並列して動作します . A ー D 変換器などのアナログ機能や高分 解能 PMW 機能を内蔵しているので , 周辺回路をシンプルにできます . この電源の制御に特化したマイコン の応用例を紹介します . マ島ン 5 マ 0 ら 6 0 ・ 電源スイッチ デバッグ・ 検出した音階に相当する LED が点灯する . ソの音 階を検出しているようす 音階表示 LED 道ー 1 : 音階判別モード 2 : 音量計測モード 3 : チューナ・モード ☆マークの LED は , チュ ーナ・モード動作時にラ の音 (440Hz) とびったり 合ったときに点灯する ※モード設定スイッチを 押すと , モードが切り 替わる ノモード表示 LED モード設定 エレクトレット・ スイッチ コンデンサ・マイク (a) 表面 . ソプラノ・リコーダのソの音をの音階を判定し , 五線語上の該当する音符の LED が点灯している 単 4 型電池 x2 本 写真 1 ディジタル制御 電源用マイコン MD6602 を使って製作した音階判 定器 連載最終回は , ディジタル制御電源用マイコン MD 聞 02 の豊富なアナログ機能と TinyDSP, DSAC などの高機能ディジタル・モジュールの機能をあ えて電源のディジタル制御以外の用途で使ってみ て , MD6602 の処理能力を確かめます . 本稿では , マイクロフォンから取得した音声を MD6602 内部で音階判定を行い , 基板に実装され ている音階に相当する LED を点灯する音階判定 器を作ります . あえてマイコン内の複数の機能モ ジュールを連動させ , 増幅 , 電圧レベル変換用に OP アンプおよび基準電圧源 (AGND), A- D 変換 器 , TinyDSP, 2ch の DSAC, TMR および RAMIF Rev 0 は、な当 WW99 4 MD6602 ( QFN -40 ) (b) 裏面 . ディジタル制御電源用マイコン MD6602 が 実装されている 【プレゼントのお知らせ】 LED ポーカル・トレーナ「ドレミーノ」キットを 抽選で 10 名にプレゼントします . 詳細は , P207 をご覧ください . 約 90mm 201 ンシスタ技術 2017 年 2 月号
Bluetooth$ä載 / 周波数レスポンス・アナライザ DDS ℃の アナログ 回路用電源と OP アンプへ DDS ℃の ディジタル 回路用電源と N J M 2845 マイコンへ 5V 電源 レギュレータ ( 5 Ⅵ O. 8A) ログ・アンプへ 5V 1 0 Q 入力 5V 十 0.2V 33 H ログ・アンプ 10mA OP アンプ 6mA DDS 8mA 8mA マイコン B etooth モジュール 12m-v50mA 6V AC アダブタ または 44m ~ 82mA 1 0 アルカリ単 3 型電池 x4 本 引 uetooth ( 2 ~ 3 時間連続使用可 ) 常時 , 平均で約 50mA 流れそう モシュールへ (b) 消費電流の見積もり (a) 囘路 図 15 本器の電源回路の全体像 も 500mA を出力できるので , 電池電圧が 52V 程度ま カ 250 mA タイプの 3 端子レギュレータを使います . で下がっても , 出力電圧を 5 V にキープしてくれます . PIC マイコンの MCLR ピンに RN ー 42XVP のリセッ この 5 V を PIC マイコンと DDS のディジタル部 , そ ト信号 ( RST ) を接続して , 一度にリセットをかけたい して BIuetooth 無線モジュール用の 3 端子レギュレー のですが , P ℃マイコンにプログラムを書き込むとき , タに供給します . DDS のアナログ部と OP アンプには , RST ピンに 9V の高電圧が加わり , RN-42XVP が壊 LC フィルタを挿入したあとの 5 V を供給します . さ れる危険性があります . RN ー 42XVP は , PIC マイコ らに C フィルタを通過させてからログ・アンプに供 ンの入出力ピンを使いプログラムでリセットします . 給します . DDS IC には , 内部のディジタル回路のノ PIC マイコンが出力する振幅が 5 V の TX 信号と イズがアナログ回路に混入しないように , 専用の電源 RST 信号を 1kQ と 2.2kQ の抵抗で分圧して , 3.4V とグラウンド・ピンが用意されています . DDS の出 にレベル変換しました . PIC マイコンに入力される カ部の OP アンプの負電源端子には , チャージ・ポン RX 信号は , PIC マイコンの H レベル入力のスレッシ プ DC ー DC コンバータ ( TC7662B ) で一 5 V を生成し ヨルドが 2 V なので , そのまま接続できます . て供給します . 雑音に配慮した電源回路と配線 グラウンドは , ディジタル用 , DDS のアナログ用 , ログ・アンプ用の 3 つを用意して , それぞれ分離して 配線し , 1 点で接続します . 図 15 に本器の電源回路を示します . アルカリ単 3 電池 4 本で 6V の電源を供給し , 0.8A 次回は , 本器を制御する PIC マイコンのファームウ を出力できるロー・ドロップ・タイプの 3 端子レギュ ェアを制作します . レータ NJ M2845 で 5 V に降圧します . NJM2845 は , 入出力間の電圧差が 0.18V しかなくて 日 uetooth 搭載周波数レスポンス・アナライザ 1 日製作キット頒布のお知らせい人へ ・ And 「 Oid タブレット &Windows)k0 ソコン対応 / 出力調整用 本コーナで手作りした BIuet 。。 th 搭載測定ユニッ ( の ) 電源入力 ( + 6V ) ポリューム ト ( 写真 2 ) の組み立てキットを開発しています . 写 真 A に示すのはその 1 次試作基板で , 現在動作を確 ・認中です . 表面実装部品はすべてはんだ付けした状 態で出荷する予定です . ・発売予定日 2017 年 1 月中 ・設計後閑哲也 ・製造ビット・トレード・ワン bit ー trade ー one. CO. 」 p 5V 4.7 DC-DC コンバータ GND3 TC7662B 5V 電源 レギュレータ ( 3.3V , 0.25A ) GND2 GNDI 1 0 —5V OP アンプへ にみ 際て っ 000 出力 ( 測定タ ーゲットへ ) 入力 ( 測定ター ゲットから ) P ℃ 16F1783 B 旧 etooth モジュール RN-42XVP 写真 A 開発中の基板 183 ンシスタ技術 2017 年 2 月号
特集全実験室に ! 高旧アルデュイーノ基板 には , 次のような内容を記述します . ます . 4 番ピンを入力に設定し , さらに内蔵プルアッ プ抵抗を有効にするには , 次の通り記述します . ・シリアル通信の初期化設定 ・レ O ピンの入出力設定 pinMode ( 4 , INPUT_PULLUP) ・追加ハードウェアの初期設定 以上のように , Arduino は I/O アクセスがとても簡 ライプラリの設定や , 動作を開始させる処理もこ に記述します . 単にできます . 初めてマイコンを使う人でも , ほかのマイコンでいうイニシャル処理やセットアッ Arduino IDE を使い始めて数分後には LED チカチカ プ・ルーチンに相当します . ができるようになります . ④選りどり見とり拡張ポード A 「 duino シールド 写真 2 に示すのは , シールドと呼ばれる Arduin 。専 Arduino に実行させる制御を記述します . 記述した 内容は無限ループで実行されます . ほかのマイコンで 用に開発された機能拡張ポードです . Arduino の上か いう main ( ) に相当します . ら挿して使用します . ③レ 0 アクセスの手続きが簡単 基板形状は Arduin 。と似ています . スタッキング・ LED を光らせたり , スイッチの入力を検出したり コネクタを採用しているので , 何段にも積み重ねて使 するには , 入力信号や出力信号をプログラムで制御で 用できます . 写真 2 ( a ) に示すのは , 左から , LED およびブザー きる GPIO と呼ばれる I/O ピンを使用します . 使用す るには事前に設定が必要です . を搭載した実験用シールド , LAN ケープル経由でネ 通常のマイコンでは , 入力 / 出力の設定をするだけ ットワークに接続できるイーサネット・シールド , でもたいへんでした . マイコンの構造を理解するため USB 機能が使える USB ホスト・シールドです . 写真 2 ( b ) は , Seeed 社の GROVE システム用のコネクタを に分厚いマニュアルを調べ , 使いたい I/O ピンのレジ スタのアドレスとビットを確認します . さらにどのよ 大量に搭載したシールドです . GROVE モジュールか うに書けば設定が反映されるのかを調べ , 理解したう 接続できるようになります . 写真 2 (c) はカラー液晶 えでやっと使えるようになります . を搭載したシールドです . これも準備されている専用 Arduino では , そんな苦労は一切必要ありません . ライプラリを使えば , 簡単に動かせます . 探している ポード上に明記されているピン番号を指定して , 簡単 物がどのくらいの距離でどの方角にあるかを , レーダ な設定をするだけで済みます . マイコンのマニュアル 探知機のように表示しています . タッチ・パネルも動 作します . も読む必要はありません . ⑤ライブラリ 入力 / 出力の設定 pinMode という命令を使います . Arduino の 3 番ピ シールドには , 動かすためのライプラリも準備され ています . ライプラリを使えば , 装着直後でもすぐに ンを出力に , 4 番ピンを入力に設定するには , 次の通 り設定します . 動かせます . シールドではなく , センサやモジュール など単体の電子部品にもライプラリが用意されいる場 pinMode ( 3 , OUTPUT) : 合があります . pinMode ( 4 , INPUT) ; たとえばイーサネット・シールドは , 最初から 出力ピンの設定 Arduino IDE にサンプル・プログラムが入っているの 出力状態を指定するには , digitalWrite という命令 で , すぐ動かせます . USB ホスト・シールドは , を使います . 3 番ピンを "H" 出力にするには , 次の Web ページからライプラリをダウンロードする必要 がありますが , サンプル・プログラムも一緒に付いて 通り設定します . いるので , すぐに動かせます . digitalWrite ( 3 , HIGH) ; 近ごろでは , 大手デバイス・メーカが新製品の PR の Arduino を使うことがあります . ローム社から発売 入力ピンの情報読み取り された写真 3 の脈波センサ BH1790GLC には , センサ "H" か "L" かを読み取るには , digitalRead という 命令を使います . 4 番ピンの状態を読み取るには , 次 を実装した評価ポードと Arduino ライプラリをセット にしたキットが用意されています . の通り記述して val に値を代入します . 新製品の評価にも使われる Arduin 。は , もう学生用 val = digitalRead ( 4 ) のお勉強マイコン・ポードなどではないのです . これらのシールドやライプラリは , Arduino 互換機 プルアップ抵抗の設定 パイ・デュイーノ でも使えます . 第 1 章で紹介した本誌付録の兀 duin 。で Arduino ではマイコン内蔵のプルアップ抵抗が使え らモニタ出力処理までをワン・ストップで簡単キャッチ・アップ【講師】早乙女勝昭氏 , トランシス 9 技術 2017 年 2 月号 1 / 20 ( 金 ) 29 , 0 開円 ( 税込 )http:〃seminar.cqpub.co.jp/ イントロダクション 1 2 3 4 5 メイン・プログラム : lo 叩 ( ) 45
使用するときは , 出力の高いはんだこてで , しつか りはんだを溶かして吸い取ります . 出力の低いはんだ こてだと , 吸い取り線がランドやパターンにくつつい てしまい , 離すときにダメージを与えます . はんだ吸い取り器 : GS ー 108 ( 太洋電機産業 ) はんだ吸い取り線と同様に , 不要なはんだを除去す る工具です . はんだこてではんだを溶かし , 液状のう ちに吸い取ります . ルーベ : アイルーベ T ー 3 ( シンワ ) はんだ付けの状態のチェックに使用します . 微細な プリッジなど , 肉眼では確認できない不良もあります . 100 円ショップで販売されている物でも使えると思い ます . + ドライバ 兀 duino とラズベリー・パイをねじで固定するとき に使用します . テスタ : CDM ー 14 ( カスタム ) 電子工作を行う人の必須アイテムです . 安い物は 1 , 0 開円以下でも買えます . はんだ付けを行った後の チェックに使います . はんだ付けが終わったら , すぐに電源を入れて動作 確認するのではなく , 想定通りに接続できているか確 認が必要です . 次のような項目をチェックします . ・電源とグラウンドはショートしていないか ・兀 duin 。単体で電源を接続したときの電圧値は正 常か チェックなしで電源を投入すると , 接続相手であるラズベリー・パイを壊す恐れもありま 兀 duino および ロロロ す . 使い方によって必要な部品が異なる 32 K バイトのフラッシュ・メモリ , 2 K バイトの 8MHz で動作します . Arduino pro mini のように電源電圧が 3.3 V だと , 電源として 5V を供給するので , 16MHz で動作します . よって動作可能な周波数が変わります . Arduino では 最高 20MHz のクロックで動作します . 電源電圧に Arduino UNO 用のライプラリも使用できます . 兀 duino は Arduino UNO 互換ポードとして使えます . Arduino UNO にも採用されています . そのため , 兀 duino に使用するマイコンは ATmega323P です . キーパーツ : AVR マイコン ATmega328P て , 自分の使いたいように作り変えてもよいでしよう . によって , 実装する部品を変更したり , 改造したりし 必ずしも本稿の内容に従う必要はありません . 用途 うに , 使い方によって必要な部品も異なります . 兀 duino には , 3 通りの使い方があります . 表 1 のよ 52 RAM, IK バイトの EEPROM を内蔵しています . タイマは 16 ビットが 1 個 , 8 ビットが 2 個搭載され ています . それぞれのタイマから 2 個 , 合計 6 個の PWM が出力できます . A ー D コンバータは合計 6 チャネル搭載しています . シリアル・インターフェースとしては , UART, SPI, 12C を搭載しています . 小型マイコンに必要な機能はほとんど搭載されてい ます . メモリの容量も必要十分です . 搭載されている マイコン機能のほとんどは , スケッチによるプログラ ムで使えます . 組み立て方法 ・背の低い部品からはんだ付けしていくときれいに 仕上がる 背の低い部品から順番にはんだ付けを行うと , 作業 がスムーズできれいに仕上がります . 具体的には , 次 の順番ではんだ付けを行うとよいでしよう . ⑨コネクタ類 トランジスタ ⑦電解コンデンサ LED ( 5 ) IC ソケット セラミック・コンデンサ ( 3 ) スイッチ類 ②水品振動子 ( 1 ) 抵抗 , ダイオード ⑧ ( 6 ) ④ かじめ書き込んでおく必要があります . 7tduino 以外 ン 9 技術 2017 年 2 月号 て動作させるためのプートローダ・プログラムをあら AVR マイコン ATmega328P ー PU は , Arduino とし ・ 3.3 V レギュレータ回路 ・コネクタ CN3 ~ CN6 ・リセット回路 ・コンデンサによる発振回路 ・水晶振動子 ・ AVR マイコン ()C ソケット ) 成でも使用します . 次の部品は必ず実装してください . りますが , AVR マイコンおよび周辺の回路は , どの構 1 に示します . 兀 duino には 3 通りの組み合わせ方があ 部品実装前の兀 duin 。の外観を写真 1 に , 回路図を図 ・必須部品 う場合があります . 基板をひっくり返したとたんに部品が落っこちてしま 背の低い部品を後からはんだ付けしようとすると , ( 10 ) ジャンパ・ピン
直流カット用のカップ リング・コンデンサ 出力レベル (fc=1Hz) 可変 100u 220Q 1 0k 0MOMHz, 0.6V AD9824 FSYNC ん SCLK SDATA 周波数カウンタ ( 28 ビット ) 発振器 MCLK 図 8 ディジタル周波数シ ンセサイザ AD9834 周辺 67.108864MHz = 226 → 1 / 4Hz 単位で設定可 のアナログ回路 DDS が出力する振幅 0 ~ 0.6V の正弦波を 6.9Vp ー p ターケットを通過した測定信号の に増幅します . レベル・コンディショニング DDS の出力にコンデンサを挿入してハイ・パス・ フィルタを構成し , 直流成分をカットして AC 信号だ ・正確かつ計算しやすく / ログ変換と交流一直流変 けにします . 1 開 uF のセラミック・チップ・コンデ 換を施してからマイコンの A ー D に入力 ンサと 10kQ の抵抗を組み合わせて , 時定数が 1Hz DDS を出て , 測定ターゲットを通過して戻ってき のハイ・パス・フィルタを作ります . これで 10 Hz ま た正弦波を直流電圧に変換して , PIC マイコンの A ー で問題なく通過します . D 端子に入力します . 図 9 に示すのは , このレベル・ 増幅する コンディショニング回路のプロック図です . OP アンプを使って , ゲイン 12 倍の非反転アンプで ログ・アンプを使うと , 交流信号を対数圧縮し , さ 土 3.6 V まで増幅します . らに直流に変換して出力してくれます . 専用 IC があ DC ー DC コンバータで + 5 V から一 5 V を生成して , り , AD8310 ( アナログ・デバイセズ ) を選びました . OP アンプにプラスとマイナスの両電源を加えます . AD8310 の内部プロック図を図 10 に , スペックを 12 倍アンプの後段にレベル調整用の可変抵抗を付け 表 3 に , ピン配置と機能を図 1 1 に示します . ます . 図 12 に AD8310 の入出力特性を示します . DC から 本器の周波数特性は , ここに使う OP アンプで決ま 440MHz まで応答し , ー 91dB から十 9dB の交流信 ります . GB 積が 160MHz の AD8042 ( アナログ・デ 号を O. 4 V から 2.6 V の直流電圧に変換します . この バイセズ ) を使いました . ゲインを 12 倍に設定すると , 直流電圧は , デシベル値に比例しているので , マイコ ゲイン一定の上限は 13MHz になります . ンの計算処理が簡単になります . 最終段は , ゲイン 1 倍のバッフア・アンプです . オ ーディオ機器の出力インピーダンスは一般に 600 Q で ・ P ℃マイコンの A ー D 分解能 ( 12 ビット ) がタブレッ す . これに合わせて , 出力に 560 Q をつけます . トの表示分解能に対して十分なことを確認 ログ・アンプが出力する 0.5 ~ 2.5 V の直流電圧を 出力インピーダンス 560Q 10HzM()MHz 士 3.6V アンプ A D8042 十 5V 10k = 1 倍 —5V = 1 2 停 アンプ AD8042 PIC マイコン P ℃ 16F1783 十 5V フィルタ 十 5V DC-DC コンバータ ( + 5V →ー 5V 変換 ) 十 5V 十 5V ログ・アンプ フィルタ AD8310 ( アナログ・デバイセズ ) A-DA カ (ANx, 12 ビット ) 0.5 ~ 2.6VDC BFIN 十 20 —70 出力フィルタ 人力レベル [dB] (5Hz) 抵拡分圧比で入力信号レベルを 1 / 1 0 にする . 0 ~ 4.096V を 4096 分解する . 例えば入力電圧下限の 0.5V オフセットその結果 , 測定レンジが , ¯90& + 4dBV の変換結果は 500. 人力電圧上限の 2.5V の変換結果は 2500. 補償ループから . ー ~ + 24dBV になる 全測定レンジー 70 ~ 十 20dB を 2000 分解できる . つまり , (6Hz) 10dB 当たり最大 200 分解能で表示できる 図 9 ターゲットを通過した交流信号を直流信号に変換する測定信号レベル・コンディショニング回路 ログ・アンプ AD8310 で交流信号を対数圧縮し , さらに直流に変換して P ℃マイコンの A ー D 端子に入力する . このような前処理を少し施すだけで p ℃ マイコンのプログラムがかなりシンプルになる 2.5 ー 冖 > 〕出細田 最大 4Vp-p 5. lk PIC マイコン P ℃ 16F1873 1 Ou 1 Ou 5.1 k 180 ン湫タ技術 2017 年 2 月号
ー u 物 0 ー野ー イントロダクション 、←ロ Arduinox ラスペリイイ部ポ十作りました ! 昔のロボット開発者は いつか こんな日 こねえかな ただいま , 人 工知能が搭載 されましたの で , 私があな たの思い通り になると思っ たら大間違い ・・・なんちゃって 今日もここで 泊まりゃんけ / ヤ / 0 ・ ぐ 時は過き・・・ 2 人のスーバースターが生まれたのだった ラズベリー・バイ Arduino Wi-Fi & Bluetooth 搭載 ②教育用の超格安コンビュータ・ボード 0 ①学生 & クリエーターに大人気のマイコン・ホード 8 ビット・ マイコン 1.2GHz クアッドコア CPU カメラも付く アナログ 人力あり nun 0 0 ・計測・制御が得意 ・初心者でも数分で L チカできる極楽プログラ ミング ・すくに使えるサンプル・プログラム & ライプ ラリ多数 ・挿すだけで使えるでき合いの拡張ボード多数 ・分析や判断が得意 ・パソコンのように使える ・動画再生もできる高スべ、ソク CPU ・インターネットにつないだり , 大型ディスプ レイをつなげられる トランタ技術 2017 年 2 月号 36
リスト 2 シリアル・コンソール無効化②・・・ cmd ⅱ ne. ⅸ t の内容を 有効化の記述を追加します . リスト 4 に追加内容を示 変更する します . 追加が済んだら上書き保存して nano 工ディ タを終了します . dwc 0tg. lpm enab1e=O console=ttyl root=/dev/ mmcb1kOp2 rootfstype=ext4 elevator=deadline fsck. repair=yes rootwait 改行は入れないで ・ステップ 2 : Arduino IDE のセットアップ 1 行で記述する (1) インストール ArduinoIDE をインストールします . 手順は簡単で , こまでの作業が済んだら , ラズベリー・パイを再 起動します . 次のコマンドを実行するだけです . ( 2 ) シリアル・ポートのデバイス・ファイル名変更 sudO. ~.. , apr ー get:„m install arduino . シリアル・ポートは , デバイス・ファイル ttyAMAO として割り当てられます . この名前のまま インストール後は GUI のメニューに登録されます . だと Arduino IDE がシリアル・ポートとして認識し 使い方はパソコン版と変わりません . 起動画面を図 1 ませんので , ttyS8 という名前で ttyAMA0 へのリン に示します . クを作成します . 次のコマンドを入力して , ルール・ ( 2 ) ボードの設定 ファイルを作成します . 起動したらボードの設定を行います . [ ツール ] ー [ ポ ード ] を選択すると , ボードを設定できます . nduino sudo 、一 -. nano 、 . -,/etc/u dev/rules. d/80 ー ttyS8. rules 一 は Arduino UNO と互換性があるので , 「 Arduino リスト 3 に示す内容で 80 ー ttyS8. rules を作成します . UNO 」を選択します . 作成したら上書き保存して nano 工デイタを終了しま ( 3 ) シリアル・ポートの設定 シリアル・ポートの設定を行います . 図 2 のように す . こまでの作業が済んだら , ラズベリー・パイを再 [ ツール ] ー [ ポート ] を選択すると , シリアル・ポ 起動します . / dev に ttyS8 が存在していることを確認 ートを設定できます . ステップ 1 で設定した通り してください . 「 ttyS8 」を選択します . ( 3 ) UART の RTS 機能を有効にする ・ステップ 3 ・ Arduino をプログラミングしてみる Arduino に限らず , マイコン・ポードにプログラム を書き込む際は , リセットのように何らかの操作を行 サンプル・プログラムを使って , 兀 duino の L チカ に挑戦します . 図 3 のように [ ファイル ] ー [ スケッ うことでマイコンを書き込みモードにしておく必要が チの例 ] ー [01. Basics] ー CBlink] を選択します . あります . L チカのサンプル・プログラムが読み出されたら , Arduino の統合開発環境の Arduino IDE では , プロ グラム書き込み時に UART インターフェースの RTS そのまま [ → ] ボタンを押します . すると Arduino 信号を使い , AVR マイコンにリセットをかけて , 書 IDE はコンパイルを実行し , 実行ファイルを AVR マ イコンへ書き込みます . うまくいけば , ほんの数秒で き込み待ち受け状態にします . ラズベリー・パイの RTS 機能を有効化し , GP1017 兀 duin 。の LED3 が点滅を開始します . を RTS として使えるように設定します . GP1017 は兀 duino 上の AVR マイコンのリセット端子とつながっ ヘルプ ファイル纏集スケッチ ています . ラズベリー・パイから AVR マイコンにリ 自動整形 セットがかけられるようになり , Arduino プログラム いスケッチをアーカイプする 工ンコーディングを修正 の書き込みができるようになります . シリアルモニタ T リき 0 れし 0 毎 r00 を : 工 手順は次の通りです . rc. local に GP1017 ピンを有効 1 を 1 判い : 0 さ再い物 20u 一マイコンボード 化する記述を追加します . 次のコマンドを入力して , nano 工デイタで rc. local ファイルを開きます . 書込装費 プートローダを書き込む sud0 、一 ... nano 、 . ~ 。 /etc/rc.local ロ 図 2 シリアル・ポートの設定 最終行の下に , GP1017 ピン (WiringPi の 0 ピン ) の 「町 S8 」に設定する リスト 3 Arduino IDE でシリアル・ポートを認識させるためにデバイス・ファイル名を リンクさせる れ yS8 →町 AMAO ヘリンクするようにする GROUP="dia10ut" KERNEL=="ttyAMA0 " MODE : = 0 6 6 6 SYML 工 NK + ="ttyS8" 特集全実験室に ! 高旧アルデュイーノ基板 イントロダクション 1 、 2 3 4 5 餅明気い「 2 : 1 05 + d 地 q24 「 ttyS8 」 に設定 /dev/ttySO 00 ロ 0 Ctrl + T nk Ctr! + Shift + M ンリアルポート第 ない第 13 いおき 0 い第い 2 靆 0 intled 13 : リスト 4 G 曰 017 を有効化・・・「 c 」 oc 引の 最終行の下に記述を追加する /usr/bin/gpio mode O a1t3 59 トランシスタ技術 2017 年 2 月号