プログラム - みる会図書館


検索対象: トランジスタ技術 2016年10月号
44件見つかりました。

1. トランジスタ技術 2016年10月号

園児が組み込み開発 ? 子供向け 1 ,500 円パソコン lchigoJam 誕生 御を紹介しました . 処理時間の遅さに多少課題はあり ますが , BASIC インタブリタの特徴を生かし , デー タを採取しながら処理を考えることで , 自動制御の仕 組みが実際に体験できました . 特に P. ル制御のそれぞれのゲイン調整でどんなライ ントレースになるかは , 記事で伝えるのは難しいもの があります . ぜひ実際に体験してみてください . / ライントレーサをもっときびきび動かしたい / / 厄 higoJam マイコンの BAS ℃プログラムの処理を速くする IchigoJam でライントレース・ロポットを作ると / きに気になったのは , BASIC の処理時間です . 車 体が動くスピードに比べて , ソフトウェアの処理時 間が遅ければ当然 , 速い動きにはついていけないた め , ノロノロとしたライントレース動作になります . C 言語で作成したプログラムと比べれば , はるか に遅い IchigoJam BASIC ですが , 本編のリストに / あるように , かなり短いプログラムで作れてしまう のは魅力です . ・ BAS ℃プログラムの処理時間の測り方 そこで , これらのプログラムの処理時間が実際ど / の位なのか次のプログラムを waitl の前に 1 行追加 / して , 測定してみました . j =j + 1 : 土 f j > 9 9 pr 土 nt t 土 c k ( ) ー : j = 0 : c1 t 今回のライントレース・プログラムは , 1 ループ メの処理の中に waitl の待ちを入れてあります . この / 命令は , 16.7ms 単位 ( 1 : 16.7ms ) で待ち時間を入 / れる働きをします . 単純に考えると , ライントレー ス・プログラムの処理時間 + 16.7 ms が 1 ループの 処理時間になりそうですが , この命令は , wait の / 待ち時間の中にプログラムの処理時間が含まれるよ です . プログラムの処理時間が 16.7 ms より短け れば , 16.7ms が 1 ループの処理時間になります . IchigoJam BASIC では , プログラムの処理時間 メを tick ( ) 命令で測ることができます . tick() 命令も い測定できる時間の最小が 16.7ms なので 16.7ms の倍 数の精度しか測れません . 精度を上げるため , ルー / プ 18 回分の時間を測定することにしました . 純粋 なプログラムの処理時間を測るので , waitl は除い ンて測りましたが , 1 ループの処理時間が 16.7 ms よ メ イ メ ノ 表 A 本編紹介プログラムの処理時間 ( 1 ループ ) り大きい場合は , waitl があってもなくても処理時 間の差はほとんどありません . ・ビデオ出力の有無と処理応答時間を実測 表 A が四つのプログラムの 1 ループの処理時間で す . videol ( ビデオ出力あり : デフォルト ) では , ⅵ de00 ( ビデオ出力なし ) に比べ , プログラムの実行 速度が 2 ~ 3 倍遅くなり , 速い動きのライントレー ス動作を実現できません . 一番長いリスト 4 で , A4 判用紙 4 枚で作った楕円 コース 1 周 ( 約 124Cm ) を 4 秒程度 ( 秒速 32cm ) で走 ります . 1 ループの時間 20ms の移動距離は約 6mm です . ル制御ができるライン検出センサの間隔か 25 mm ですので , 左右に首を振りながらラインの 状態は何とか捉えられているようです . ・最新版の BAS ℃ファームウェアは速い ちなみに , IchigoJam Ver. 1.1.1 で , ビデオ出力あ りのままだと , よほどスピードを落とさないとライ ントレースができない状態でした . この連載中に IchigoJam BASIC が Ver. 1.1.1 から 12.1 に更新されました . プログラムの実行速度も改 善されているようなので , Ver1.1 ュと 1.2 ュの比較も してみました . Ver. 1.1.1 から 12.1 への更新によって , ビデオ出力 なしの場合も 10 % 程度速くなっています . 処理を 増やしてもう少し難しいコースに挑戦することも可 能でしよう . に IchigoJam をお持ちの方は , ファームウェアの更 / は , 40 % 以上の大幅改善になっていました . すで / 今回は使用していませんが , ビデオ出力ありの方 IchigoJam BASIC Ver. 1.1.1 新をお勧めします . IchigoJam BASIC Ver. 1.2.1 本編プログラム リスト 1 スート 2 リスト 3 リスト 4 ンタ技術 2016 年 10 月号 ピデオ出力あり 25.0 ms 60.1 ms 70.5 ms ビデオ出力なし 9.4 ms 222 ms 25.9 ms ピデオ出力あり 164 ms :Vms 33.4 ms 38.7 ms ビデオ出力なし 9.7 ms 82 ms 20.0 ms 23.4 ms く白阪一郎〉う 205

2. トランジスタ技術 2016年10月号

特集 Appendix 4 Li イオン /eneloop/ コイン厄 T 電池入門 Linux バッテリ コンビュータ制御バッテリ・システムのプログラム制作 ① 12C 充放電電源旧の制御②タブレットの操作バネル W 03 を Edft 物 丨ⅱいハ p ト 0 ーー yp ー : ′ⅱ 0 み、 pbe ーー ypi : 卩に物、 pb をい ) pi : H 0 常に電池残量を表示する ー 03 : 10 ー表示する ステータスの詳細を クリックすると充電 第引嘘は第 0S358 茆第ぎー朝ま 第ま池まい NO を Pog 0b0 ま第 0 嶂回叫ル可 0 ⅸ 0 朝蕚、 、垢 S 籌 ~ はの物 0 は寒鏖 図 1 ラズベリー・バイのデスクトップ画面に表示された残量ゲ こでは BQ25890 を 12C 経由で制御する C プログラ いたわる充電の切り替えも可能です . をコントロールし , 急速充電と長時間にわたる電池を 池の詳細な状態を監視できます . また , 充電電流など ら制御すれば , 充電制御 IC やリチウム・イオン蓄電 さらに , BQ25890 を 12C 経由でラズベリー・パイか ・パイを電池駆動させることが可能です . ズベリー ポードとリチウム・イオン蓄電池を用いることで , ラ 12C インターフェースの充電制御 IC BQ25890 評価 充放電電源℃の制御用 プログラム① く編集部〉 ②操作パネル用 GUI プログラム :batt_plugin. c( 図 1) ①充放電電源℃の制御プログラム : bq2589x-test. c ピュータ制御バッテリ・システムを動かします . 本稿では次の 2 種類のプログラムを作成し , コン です . をラズベリー・パイから制御するプログラムが必要 た . 最適な充放電を行うには , 充電制御 IC BQ25890 てコンピュータ制御バッテリ・システム製作しまし ・スバコン「ラズベリー・パイ」を組み合わせ 第 3 章ではリチウム・イオン蓄電池と実験用 I/O 0 鰍、 r 第 a いをミ第・「 i ( ト : 馞「 0 セを増 0 は虫まⅳ ~ ⅸを過第当 図 2 卩 C ポートを有効にするために「 aspi ー config を起動した直後 = 「宿ト、 f 襾曾「いを 08 朝、は朝い ℃れ「をで「 cl ( ory 内れ円一 を円を 02 ⅸ員 h を極斗ま「、円 0 総危 を朝恒 C 4 ・リチウム・イオン蓄電池 P11 ー 18650STD ー D ( セ ・ BQ25890EVM ー 664 次に , BQ25890 との 12C 通信のときに必要になる「リ 発行できるようにする 手順 2 : 「リピートースタートー・コーンディーショーーン」一一一を 効になります . 了させてます . 指示に応じて再起動すると , 12C が有 グで C<YES 〉 ] を選択し , [ く Finish 〉 ] でツールを終 the ARM 12C interface to be enabled? 」のダイアロ 中にある CA6 12C] を選択します . 「 Would you like を使用して , [ 9 Advanced Options] を選択し , その 画面を表示させたら , カーソル・キーと Enter キー $ sudO 、 -ー, raspi—config[3 表示します . ルから次のようにコマンド入力し , 図 2 の設定画面を 12C インターフェースが有効になっていません . シェ microSD カードに OS をインストールした直後は 手順 1 : 12C ポートを有効にする 設定を行います . 通常の手順で OS をインストールした後 , 追加で次の OS は Raspbian Jessie 2016 ー 05 ー 27 版を使用します . ・ステップ 2 : ラズベリー・バイの 12C 設定 の AC アダブタと , マイクロ USB ケープルで接続します . ードの J5 端子から行います . 市販の USB 出力タイプ ラズベリ ・パイへの電源供給は , BQ25890 評価ボ ム・イオン蓄電池は第 3 章の図 3 のように接続します . ・パイと BQ25890EVM, およびリチウ ラズベリ ・ステップ 1 接続 ■準備 ・ microSD カード ピート・スタート・コンディション」が発行できるよ 4 6 ム のつにバッテリ制御ができるかを確 認します . 用意するものは次の通りです . ・ラズベリー・ノヾイ 3 トランシスタ技術 2016 年 10 月号 ・本稿で紹介したプログラム類は本誌ホームページ (http:〃 toragi. cqpub. co. jp/tabid/795/DefauIt.aspx) で公開しています . 71

3. トランジスタ技術 2016年10月号

示すダイアログ・ボックスが表示されます . この中で は , TinyDSP への数値入力レジスタと結果出力レジ スタの指定など , TinyDSP プログラム生成に必要な 条件を指定します . また , 固定小数点化処理では内部演算でオーパフロ ーが発生しないことが最優先条件になるので , フィル タへの入力値の最大範囲を指定します . さらに積分器 の付加オプションに関係する条件 ( 低周波時の扱い ) を 入力します . それぞれ図 6 の中の説明を参照してくだ さい . ・ディジタル・フィルタを固定小数点形式に変換する 図 6 の画面で [ OK ] ボタンを押すと , 固定小数点形 式に変換されたディジタル・フィルタの結果が図 7 の ように表示されます . 特性情報としては図 5 と同じも のが改めて計算されて表示されます . この画面には , TinyDSP 用のアセンプラ・ソース・コードも自動生 成され表示されます . コピーまたはセープして , 統合 化開発環境 IDE ー MD660x に渡して , プログラム全体 を完成させてください . SKDSP の便利機能 ・ TinyDSP シミュレータ機能 固定小数点化したディジタル・フィルタの特性は図 7 のように表示されましたが , これは , 生成した伝達関 ディジタル制御電源用マイコン MD6602 のすべて 数展開 ( 並列積分器の分離用 ) 用計算機 ( 図 11 ) があり 間の変換 , dB 表示とリニア表示の間の変換 , 部分分 その他 , 固定小数点数値 ( Q フォーマット ) と実数の 的なプログラムを確定させる必要があります . タは , 使用条件や使用範囲をよく吟味した上で , 最終 体に精度が悪化しています . 固定小数点形式のフィル すが , 低周波領域でのゲインの飽和は消えますが , 全 ています . 入力振幅を小さくした特性を図 9 に示しま 10Hz 以下ではオーパフローが起きてゲインが飽和し まま使ってシミュレーションしたものです . 周波数が る最低周波数を 10Hz としたもので , その条件をその して入力振幅の最大値を 0.1 , フィルタ特性を保証す 例えば , 図 8 に示したフィルタは , 設計時の条件と 間ドメインの特性をシミュレーションできます . の特性をシミュレートしたり , 図 10 に示すような時 その上で , 図 8 や図 9 に示すような周波数ドメイン の演算処理をシミュレートします . 丸め処理やオーパフロー処理含め正確に TinyDSP 内 内に生成した TinyDSP プログラムを実際に動作させ , を忠実に模したシミュレータを内蔵しています . 図 7 SKDSP 内には , MD6602 の TinyDSP のハードウェア ディジタル・フィルタ・プログラム作成支援ツール の 16 ビット固定小数点で演算したものではありません . 数を元に数学的に計算したものです . 実際に TinyDSP 90 80 70 60 c50 840 30 20 10 1 ディジタル・フィルタ伝達関数 から算出した理論値 TinyDSP(16Ev ト固定小数点 ) の 命令で計算したフィルタ特性 1 03 1 02 10 frequency[Hz] 0 伝ー 0 定結果 人力値の振幅 約 10Hz 以下でオーパフロー 1 04 1 ゲイこゆ単位 ◎ 0 なし ◎第 0 線形 3. 報 ます . 90 80 70 60 c50 840 30 20 10 0 1 オーパフローはない 小数点 ) の命令で計篁した TinyDSP(16Ev ト固定 人力値の振幅 フィルタ特性 1 ゲインの単位 ◎聞 0 なし ・対数 0 線形 立相鬥 0 区巧 0 0 1 0 理論値 1 04 1 02 1 03 frequency[Hz] 0 伝皴 0 転果 図 8 ディジタル・フィルタ・プログラム作成支援ツール SKDSP で周波数ドメインの特性をシミュレートした 波数 10 Hzr 設計一した 2P2Z シミュレーション結果 . 設計時の条件として入力振幅の最大値を 0.1 , フ イルタ特性を保証する最低周波数を 10 Hz としてシミュレーションした . 周波数が 10Hz 以下ではオーパフローが起きてゲインが飽和しているの がわかる ンシスタ技術 2016 年 10 月号 図 9 ディジタル・フィルタ・プログラム作成支援ツール SKDSP で入力振幅を小さくして周波数ドメインの特性をシミュレート 入力振幅 0.1 , 最小周波数 IOHz で設計した 2P2Z フィルタに振幅 0.005 の信号を入力したときの TinyDSP シミュレーション結果 . 低周波領域で のゲインの飽和は消えたが , 全体に精度が悪化している . 固定小数点形 式のフィルタは , 使用条件や使用範囲をよく吟味する必要がある 189

4. トランジスタ技術 2016年10月号

CPU 設計の 達人 チャレンジ・コーナ 電子工作にプロの技術を / ディジタル制御電源用マイコン MD6602 のすべて 第 4 回 MD6602 用ディジタル・フィルタ設計ツール SKDSP ーー固定小数点ディジタ丿レ・フィルタを自動最適化設計一一 ・角、本義孝 / ー山奇 . 尊、月く Yoshitaka Takemoto / Takanaga Yamazaki MD6602 ( サンケン電気 ) は , ディジタル制御電源専用の 8 ビット・マイコンです . CPU コア以外に DSP コアを 2 個搭載しており , 全部で 3 個のコアが並列して動作します . A ー D 変換器などのアナログ機能や高分 解能 PMW 機能を内蔵しているので , 周辺回路をシンプルにできます . 電源の制御に特化したマイコンの仕 様を紹介します . マ島一ら 島マ 0 ら 60 ・ 表 1 MD6602 が内蔵する TinyDSP 用のディジタル・フィルタ・プログラムの作成支援ツール SKDSP の仕様 作りたいティジタル・フィルタの仕様をティジタル・フィルタ・プログラム作成支援ツール SKDSP の画面上で定義すると , 伝達関数を生成し , 最適 な固定小数点化を施し , TinyDSP 用プログラムを自動生成する 項目 内容 推奨 OS 環境 ・ Windows 7 以上 ・ Java Version8 ( JREI. 8.0 ) 以上必須 追加必要環境 ・ Java Version8 Update 40 以上推奨 ・ディジタル・フィルタの伝達関数自動算出 ( 浮動小数点 ) ・ディジタル・フィルタの伝達関数の最適固定小数点化 ・ TinyDSP 用プログラムのアセンプル・ソース・コード自動生成 ・フィルタ方式 : バタワース / チェビシェフ / 楕円 ・フィルタ種類 : ロー・パス / ハイ・パス / バンド・パス / ノヾンド・ストップ テンプレート・ ・周波数特性 : カット・オフ周波数 / 通過域端周波数 / 阻止域端周波数 フィルタ 指定方法 ・ゲイン・リプル : 通過域ゲイン・リプル / 阻止域ゲイン・リプル ・サンプリング周波数 ディジタル・ ・ドメイン : z 領域 / s 領域 フィルタ仕様伝達関数 ・伝達関数定義方法 : 極・ゼロ点指定 指定方法 数式直接 分母・分子の多項式係数指定 指定方法 ・サンプリング周波数 電源システムの ・電源システムの一巡伝達関数のポード線図を見ながら , 制御器 ( 位相補償器 ) のパラメータを指定して , 一巡伝達関数 位相補償器の伝達関数定義を自動生成 ピジュアル設計 ・サンプリング周波数 浮動小数点形式・指定したフィルタに最適なディジタル・フィルタを浮動小数点形式で算出 ・浮動小数点形式で算出されたディジタル・フィルタを , オーバーフローや桁落ちが発生しない固定小 固定小数点形式 数点形式に自動変換 プログラム ・ MD6602TinyDSP 用アセンプラ・ソース・コード ・ポード線図 ・極・ゼロ点の座標 ・群遅延 ・インパルス応答 特性表示 ・伝達関数の数式と係数値 ・ステップ応答 ・フィルタ演算シーケンスを示すダイアグラム ・自動生成した TinyDSP 用プログラムを SKDSP 内部で TinDSP ハードウェアを忠実に模して実行処理 実行方式 ・ TinyDSP の入力に正弦波 ( 余弦波 ) を入力してフィルタ特性を計測 ・ポード線図表示 ( 伝達関数から数学的に求めた理想値と比較表示 ) 周波数ドメイン ・入力波形の振幅を指定可能 ・入力波形と出力波形を ・入力波形の振幅 , 周波数 , 位相 , オフセットを指定可能 時間ドメイン ・ディジタル・フィルタ内のメモリ ( 1 / z ) を消去せず繰り返し実行が可能 ・固定小数点 Q フォーマット変換 ・ dB 変換 ・部分分数展開 ( 並列積分器の分離用 ) ■本誌のバックナンバあります / ンシスタ技術 2016 年 10 月号 第 1 回 ( 2016 年 6 月号 ) 流石ディジタル / インテリジェント電源製作の素 MD 02 マイコン 第 2 回 ( 16 年 7 月号 ) 電源制御のためのスペシャル・アーキテクチャ 実行環境 基本機能 処理方式 出力 TinyDSP シミュレータ 機能 ユーティリティ機能 181

5. トランジスタ技術 2016年10月号

ディジタル制御電源用マイコン MD6602 のすべて 表 2 ディジタル・フィルタ・プログラム作成支援ツール SKDSP で指定できるテンプレート・フィルタとその性質 フィルタ方式は , バタワース , チェビシェフ , 楕円から , フィルタ種類を , ロー・パス , ハイ・パス , バンド・パス , バンド・ストップから選択する . リプル特性は , 通過域ゲイン・リプル , 阻止域ゲイン・リプルを指定する グラフ .. 0 ー第一Ⅲ 0 ー第川亂 0 ー川亂 00 0 ー第翡口一第翡川口一第川一 00 .0 ・第川 0 ー第川一 0 ー第一Ⅲロ 0 第 0 ーー第Ⅲ 0 ーー第Ⅲ 0 ・第盟 00 第 . ロー第川亂ロー龜盟ー 0 ー第盟 00 第 .. 0 ・第川亂ロ 0 ー第Ⅷロー第川 00 -.. 第 - ー i ⅲ 0 ー・川川口 0 第 .0 ー川 00 第翡川盟川 00 亂 ロ 0 第Ⅷ丨 00 第Ⅷー 0 ー第 00 .00 第Ⅷー 00 亂Ⅷ丨 00 第盟 00 第 .. ロー第川亂ロ 0 第一Ⅷロー亂翡川 00 00 第川亂 00 第翡川 00 翡川 00 第 .00 川 00 第翡川 00 第一Ⅲ 00 第 ロ 0 第川口 0 第川一口 0 第川 00 譱 00 第川亂 00 第川 00 第 ! ! 第 .. 0 ーー川川 00 第川亂ロ 0 第川一 00 第 00 第翡 00 第 III 蘿・一・盟 00 動 00 ー川川 00 第川一 00 劃川 00 第 ・ 00 ー川川 00 ・一Ⅲロ 0 第川口 0 第 .00 第Ⅲー 00 第川一 00 第亠 1 .00 0.75 」 0.50 0.25 0 周波数 [Hz] 1 ℃ 0 0.75 」 0.50 0.25 0 周波数 [Hz] 1 .00 0.75 」 0.50 0.25 0 周波数 [Hz] 1 .00 -3 0.75 」 0.50 0.25 0 周波数 CHz] SKDSP の使い方① ディシタル・フィルタのコンフィグレーションを指定 まず , 設計するディジタル・フィルタの仕様をディ ジタル・フィルタ・プログラム作成支援ツール SKDSP に対して指示します . 方法としては , 大きく分けて 3 通りあります . ①テンプレート・フィルタを指定する方法 ひとつは , ディジタル・フィルタ・プログラム作成 支援ツール SKDSP 内にあらかじめ用意されている固 定形式のテンプレート ( ひな形 ) フィルタに対してパラ メータを指定する方法です . その指定画面を図 1 に示 します . 周波数特性は , カットオフ周波数 , 通過域端周波数 , 阻止域端周波数を , モデル 特徴 通過域 , 阻止域ともにリプルなし . 必要次数が多い 通過域において等リプルを持つ . 次数 阻止域においてリプルがない 通過域において最大平坦である . 阻止域において等リプルを持っ 通過域 , 阻止域ともに等リプルを 持つ . 必要次数がもっとも少ない 3 その他には , 固定小数点 Q フォーマット変換 , dB 性を計測することができます . レータを使って , 周波数ドメインや時間ドメインの特 て , TinyDSP のハードウェアを忠実に模したシミュ 完成したディジタル・フィルタのプログラムについ ーション計測できる ・周波数ドメインや時間ドメインの特性をシミュレ 全体プログラムを構築します . たり , TinyDSP の初期化用コードを生成して MD6602 IDE_MD660x に渡して , 命令をシミュレーションし ース・コードを出力します . これを統合化開発環境 最後に , TinyDSP 用プログラムのアセンプル・ソ ム作成支援ツール SKDSP は , 自動的に処理します . ー夂 , ロ 展開 ( 並列積分器の分離用 ) の各ツーールー -- -- -- ーーーーーー - ・一一 - ーフーイー - - ルーター方式どしては ; ーーーーバタワース , を装備しており , ディジタル・フィルタの設計を総合 的にサポートしています . ンシスタ技術 2016 年 10 月号 楕円から選択します . これらのフィルタの性質を表 2 に示します . フィルタ種類としては , ロー・パス , ハイ・パス , 183

6. トランジスタ技術 2016年10月号

固定小数点化設定 システムを択してください デノヾイス種類選択 当 P66 こ ! を 1 p / Ou 印 u 切レジスタを択してください lnput 0 : 材豆」」を」 Output R20 減部・船ー、、 ~ を」 TinyDSP の人力レジスタ ( 人力数値を受け取るレジスタ ) と . 出力レジスタ ( 演算結果を出力するレジスタ ) の指定 入力値の最大範囲を指定 ・ Qn mode=ON の場合 ( 本画面 ) 入力値の Q フォーマット ( Qn ) と入力範囲を指定 ・ Qn mode=OFF の場合 人力値の絶対値の最大値を指定 ( Q フォーマットは . この最大値を固定小数点形式 に変換したときに 1 から一 1 の間となる最小の Qn とする ) ・積分器を並列に付加するオプション選択時 ( 本画面 ) ここで指定した周波数で得られるゲインを 出力最大値として固定小数点化する ・積分器を従属に付加するオプション選択時 積分器出力の Q フォーマット ( Qn ) を指定する . Qn が大きければ低い周波数でオーパフローするが 小数点精度は高い . Qn が小さければオーパフローしにくくなるが 小数点精度は低い . 図 6 ディジタル・フィルタ・プログラム作成支援ツール SKDSP で , ディジタル・フィルタの固定小数点変換指定をする TinyDSP への数値入力レジスタと結果出力レジスタの指定と , 固定小数点イヒ処理では内部演算でオーパフローが発生しないことが最優先条件になるの で , フィルタへの入力値の最大範囲を指定する 2 プログラムメ刊の一部を定数として利用する場合、チ 1 ッりしてください。 0. DD 命令を有効化する ) プログラム・メモリの一部を定数として使用 する LDD 命令を有効化する場合に ON 3 入力の Q 叱、入力び鬚直びを設定してくだ & 、 . 。 ( n = 小数部ビット長 ) 10 8. -0.1 min: 4 このフィルタが保証する最幼周波数を入力してください 固定小数点化した ディジタル・フィルタのポード線図 プロジェクトツール ヘルプ ゲイン コンフィグレーション 画面とフィルタ・デー 群遅延特性 タ画面の切り替えタブ Group DeIay 0.5 ) 10 0.0005 0 工 900 z 平面内の極とゼロ点の位置 P を Z ” 0 円 ot フすイル Bode Plot 5 0 5 0 7 2 4 3 F 「 eq 宿 H 幻 10 OZ 部 0 X 厄 4 2 1 10 10 10 1 位 一 0 一 aspqd ステップ応答 step Response インパルス応答 lse Response 50 50 一 5 0 5 öSUOC 一 52 」 ー 50 三す ! すすおヤすをド丁・「 ! ド第を・ 0.0 25 5.0 7.5 10 12.5 15 .0 1 ア . 5 200 5 P 50 ep 25 1 4 2 「爬叩印 cv 旧 4 FormuIa, Coefficient 1 十 0 】 IZ ・ 10 100 75 0 10 10 Diagram Code # ー - Transfer FurKtiOn ー # 38.78134241020534Z 一 2 ) 83.61027961512922Z ^ ( ー 1 ト ! -0.11328125Z 当ー 2 ) .88671875Z ^ ← 1 ) 十 1.0 DSP シミュレータ R7 : q10 ( 16 , 5 は 0 ) 起動ボタン RO ・ Q8 ( 16 フ , 8 ) # ーー Memories ー RO.output,nonlntegralOutput R1:x MD6602 Tin y DSP 用 R3:defay R4 : 2 な 0 「 プログラム・ソース コード出力 R7:input と + み 012 ・ ! 1 十 001Z a01 = 0.11328125 b00 = 4.759765625 21 = -4.1044921875 kO = 8921875 a11 = -1.0 b10 = 廴 0 b11 = 1.0 kl = 0.10587000767353853 ョ 01 npu 【 a1 ー 固定小数点化した 伝達関数の 数式と係数値 フィルタ構造の ダイアグラム ( 計算順序を示す ) 38M 78M 24 / M 、 hea memo 図 7 ディジタル・フィルタの生成結果を表示したディジタル・フィルタ・プログラム作成支援ツール SKDSP の画面 TinyDSP 用のアセンブラ・ソース・コードも自動生成される . これを統合化開発環境 IDE ー MD660x に渡して , プログラム全体を完成させる トランシスタ技術 2016 年 10 月号 188

7. トランジスタ技術 2016年10月号

表 1 小型 & 軽量 / コイン型電池セレクション ( 1 次電池 ) ( つづき ) 動作温度 厚さ 重さ公称容量標準放電電流最大放電電流パルス放電 直径 公称電圧 型名 [mA] [ ℃ー ] [mAh] [mA] CV] 35 0.03 12.5 2.0 0.8 / 0.7 3.0 BR1220 48 0.03 12.5 2.5 0.8 3.0 BR1225 16.0 32 120 0.03 3.0 1.5 BR1632 3.2 2.5 200 0.03 20.0 BR2032 3.0 23.0 2.5 3.0 165 0.03 3.0 B R2325 23.0 3.0 32 255 0.03 3.0 B R2330 32 0.03 3.0 30.0 5.5 5 開 BR3032 (b) BR 系フッ化黒鉛リチウム電池 動作温度 重さ 公称容量標準放電電流最大放電電流パルス放電 直径 厚さ 公称電圧 [mA] [ ℃ ] [mA] Cmm] 回 CmAh] [mA] 48 0.03 12.5 2.5 0.8 3.0 120 0.03 16.0 32 3.0 0.03 23.0 3.0 32 255 3.0 5.0 5.0 550 0.03 3.0 24.5 8.0 1 開 0 0.03 3.0 24.5 7.7 (c) 耐高温 BR 系耐高温フッ化黒鉛リチウム電池 重さ 公称容量標準放電電流最大放電電流パルス放電 動作温度 直径 厚さ 公称電圧 [mA] [mA] [mA ] [ ℃ ] [mAh] CV] [mm] 45 0.07 7.9 3.6 0.6 110 0.12 11.6 42 1.6 02 11.6 5.4 2.0 120 0.07 2.05 0.8 45 11.6 3.05 1.4 70 0.1 11.6 2.6 0.3 21 (d) LR 系アルカリ電池 重さ 公称容量標準放電電流最大放電電流パルス放電 動作温度 公称電圧 直径 厚さ tmA] [ ℃ ] [mAh] CmA] [mmJ 0.4 5.8 3.6 0.3 85 14 3.6 0.5 155 5.4 0.8 270 1.4 7.9 5.4 220 1.4 7.9 0.7 5.4 620 2 1.4 5.4 1.5 560 3 1.4 (f) PR 系 . ェ。黽 . 冫也 [mA] ー 30 ~ + 80 型名 B R 1225A BR 1632A B R2330A B R2450A B R2477A ー 40 ~ + 125 型名 LR41 LR43 LR44 LRI 120 LRI 130 LR626SW LO 【 0 一 -0 一 0 一 .0 一 0 11 1 ー亠 1- 亠 1 ー亠 11 1 上 2.7 ( 参考値 ) ー 10 ~ + 6.8 型名 P R536 PR41 PR48 P R48 P P R44 P R44P 1 1 7 17.5 ー 10 ~ + 50 1.5 11.6 11.6 マイコン活用シリーズ 好評発売中 / 定番モジュール XBee と RN ー 42XVP をつないで今すぐワイヤレス通信 ZigBee/Wi-Fi/Bluetooth 無線用 Arduino プログラム全集 国野亘著 B5 変型判 416 ページ CD 一日 OM 1 枚付き定価 : 本体 3 , 600 円 + 税 Arduino の無線通信シールドを使うためのプログラム・サンプル集です . 市販の ZigBee, Wi-Fi, Bluetooth の各モジュールを使うための通信プログラムを用途別にサンプル・プ ログラムと共に解説しました . マイコンに Arduino を使って解説していますが , サンプル・スケッチ ( プログラム ) は , すべて C 言語で書いてあるので , 他のマイコンへの移植も容易です . ロ A ′ d ⅶ 0 フグラム全集 定・モジ冖ル XBee と 8 簿 4 以 vp をつないで 寺すくつイス通 cf3 CQ 出行反杠〒 1 12-8619 東京都文京区千石 4-29-14 販売部 TEL. 03-5395-2141 振替 OOIOO -7-10665 トランシスタ技術 2016 年 10 月号 120

8. トランジスタ技術 2016年10月号

学生工ンジニア応援企画 B 旧 et00th 無線もロボット制御も 1 行書いてリターン / 守 園児が組み込み開発 ? 子供向け 1 , 500 円パソコン IchigoJam 誕生 プログラム宮実行 第 5 回 higo ライントレーサの追従走行プログラミング す 3 マシンで開発 ~ 難しいコースもスムーズに / でせ 3 からすぐに 試して動かせ 3 白阪一郎 lchiro Shirasaka BASIC で 電子工作 BAS ℃使うたセルフ開発、、、、、、、 センサ & モータ・ ドライバ拡張ポード 先月号 ( 2016 年 9 月号 ) では , 光センサとモータで 自動走行する「 lchigo ライントレーサ」を製作し , 動 作確認のプログラムを紹介しました、今回は , セン サからの情報量を増やしていくことで , より難しい コースのライントレースに挑戦します . 2 ル制御の 二つのパラメータを変えることで , ライントレース がどのように変化するかを体験することができます . 。 IchigoJam BASIC を使うと , 十数行のプログラ ムで書けてしまうことも驚きです . 工アコンの温度を一定にする 自動制御技術 工アコンで設定した室温に保ったり , 風呂の湯温を 一定に保ったり , 自動車を設定速度に保っオート・ク ルーズなど , 身の回りには便利な機能を持った製品が たくさんあります . このように , 指定した目標値に合 わせて制御する技術を「自動制御」と呼びます . 製作した lchigo ライントレーサ ( 写真 1 ) は , 赤外線 フォトリフレクタ ( 以降 , ライン検出センサ ) を使って ライン上の車体の位置を検知します . 車体がラインの 真上にあることを目標位置として , 常に車体が目標位 置にくるようにステアリングを自動制御します . 自動制御の手法としては , ON/OFF 制御と PID 制 御がよく使われます . 制御対象や制御結果の安定度に 追い焚き よって使い分けます . ON ①ちょっぴり動きが雑だけどプログ ラムが簡単 / ON / OFF 式自動制御 OFF 図 1 風呂の温度調節は ON / OFF 制御 ・ ON / OFF 制御とは 常に設定温度に合わせて制御する 図 1 のように風呂の温度の制御は , 温度センサの情 報を使って , 目標温度より低い場合は追い焚きを開始 ・ライントレースを ON / OFF 制御で実現するプログ し , 目標温度に達したら追い焚きを止めます . また温 ラム 度が下がれば追い焚きをして温度を上げます . ライントレースの手始めに ON/OFF 制御によるラ このようにセンサからの情報で , 目標値を超えたか イントレース・プログラムを作ります . プログラムの 否かだけを判断して制御を行う方式を ON / OFF 制御 構成を考える前に , 三つのライン検出センサの出力が と呼びます . 精度が必要ない用途に使われています . 黒のラインを横切るとき , どのような値を出力するか ■好評発売中 / 関連書のご案内■ (I) 1 行リターンですぐ動く / BASIC レ 0 コンピュータ IchigoJam 入門 196 ンタ技術 2016 年 10 月号 ( 2 ) IchigoJam 用コンピュータ電子工作学習キット CQ 出版 WebSh 叩 (http:〃sh叩.cqpub.co.jp/) まで . 谷 ( 03 ) 5395 ー 2141 ~ 。当れいな 0 0 赤外線フォト lchigoJam ポード リフレクタ 写真 1 先月号で製作したライントレース・ロポット rlchigo ラ イントレーサ」 今月号では , より難しいコースのライントレースに挑戦する . 回路図は 先月号 ( 2016 年 9 月号 ) 参照 目標値を超え 目標値より下 呎るまで追い焚追い焚きを がったら追い きする 止める 焚きする 目標値 ー・時間

9. トランジスタ技術 2016年10月号

表 1 bq2589X - test のオプション指定内容 設定値 設定値 電圧 1 4.0 V 1 4.096 V 2 2 ( デフォルト ) 3 4.208 V (a) -v く設定値〉オプショ ン : 充電電圧の設定 ・ラズベリー・パイ 3 ・ BQ25890EVM ー 664 ・リチウム・イオン蓄電池 P11 ー 18650STD ー D ( セ ・ TPS63 開 0 昇降圧 DC ー DC コンバータモジュール ( ストロべリー・リナックス ) ・ Raspberry Pi 7 ” Touch Screen LCD ・ microSD カード ( 前述の 12C 有効化がなされたもの ) ・ケース $ . / bq2589X test[Zl] ■プログラムの作成 このプログラムは実行時にコマンド・オプションを 指定することにより , 充電電圧と充電電流の上限をッ ・デスクトップ環境で動作するプログラムの一つ「バ 変更できます . -v 1 ~ 3 で充電電圧 , -c 1 ~ 2 で充電 ネル・アプレット」として作成する 電流の上限が変更できます . それぞれの具体的な設定 ラズベリー・パイを起動すると表示されるデスクト 値を表 1 に示します . ップ画面は , LXDE (Lightweight X11 Desktop 充電電圧 4. OV , 充電電流の上限 1.024A を設定する Environment ) と呼ばれるオープンソースのデスクト ときは , 次のようにコマンドを実行します . ップ環境によるものです . 図 6 に示す画面上部のアイ コンなどが並んでいる領域は , LXPanel 呼ばれる ー c 1 ロ . / bq2589X test 、一ー, 一▽ 1 LXDE コンポーネントの一つによって実現されていま す . ここに表示されているアイコンは , パネル・アプ レットと呼ばれる LXPanel のプラグインによって実 プログラム② 現されています . タブレットの操作バネル用 このアイコンは , 画面上部のグレー領域を右クリッ クして表示されるメニューの CAdd/Remove panel ・バッテリ残量が一目でわかるアイコンで表示する ltems] を選択すると , 図 7 のようにどの並びに表示 普段私たちが目にする市販のスマートフォンやタブ するかを選択できます . レットは , 図 5 のようなアイコン・ピクトグラムによ こでは , BQ25890 を 12C 経由で制御し , 電池の状 り , 内蔵バッテリの残量が一目でわかります . 態を取得するソフトウェアを , パネル・アプレットと BQ25890 からバッテリ電圧を取得することで , お して作成します . コンピュータ制御バッテリ・システ およそのバッテリ残量を知ることができます . それを ムのデスクトップ画面上で , 電池の情報を簡単に参照 利用し , コンピュータ制御バッテリ・システムでもバ できるようにします . ッテリ残量表示ができるしくみを作ります . 用意する 物は次の通りです . 電流 1.024 A 2.048 A ( デフォルト ) (b) -c く設定値〉オプショ ン : 充電電流の設定 こ、言薹をメ 年第飾 ( を引 P32 い 5 、 A3282 C し作をⅵ 0 記 ed 内 3 S 0 部 V01uneCont01(ALSA) CPU usage M51 代 0 「 D 回 08k Ba 但 02 9x ) 剛 s ce ロロ S せを : ch 残量ゲージ 00000 NTT DOCOMO 12 : 27 ・ 100 % メッセトジカしシダー カメラ ロ 図 5 今回作成するバッテリ残量表示のイメージ —10 ま第 0 ここに残量ゲージの LXPanel アイコンを表示させる 図 6 ラズベリー・バイのデスクトップ画面上部に表示されて いる領域に残量表示アイコンを表示させる OK 図 7 このメニューでデスクトップ画面上部に表示さ れるアイコンの並びを選択できる 74 ンタ技術 2016 年 10 月号

10. トランジスタ技術 2016年10月号

特集 Li イオン / en 引 00P / コイン厄 T 電池入門 Choose Trigger Channel makerl [ Make 「 ] と書いてある アイコンをクリック 5 ト 0 し 0 「 1 い第 0 ソ第ぐ第鼓い 0 をミ 0 朝を 図 6 旧 TTT で使用で きるサービスの中の Maker ChanneI という チャネルを選択する Maker WeMo 00 升朝第 mak 0 WeMo Maker notificatio ns CIF Notifications] と書いてあるアイ コンをクリ、ソク 図 7 スマホに通知を ル No ⅱ f に 0 石 0n5 ロ CompIete Action Fields Send a notification {{OccurredAt)} 充電状態 : {{Value1}} Charged 現在の Wi - Fi 対応モバイルバッテリー充電状態通知通知日時 : ロ Notification 通知内容を記述する スマートフォンへの 送るサービスには旧 Notifications というチ ャネルを使用する 〇 w 川 - mo 団いせをヴー Arduino 1 , 6. ファイル編集スケッチッールヘルプ の " ロロマイコン←い馳 バッテリー電圧 {{Value2}) [ ⅵ Create Action クリ、ソクして完了 れーく物「 0 上 ) ー 0 S 2 Ⅲ日上 > nc い 0 <WiFiClient.h> 石 nc ー 0 く [ 8266W S ”「上 > 図 9 Arduino IDE の [ マイコンポードに書き込む ] ボタン [ マイコンボード に書き込む ] ボタ ンをクリックする と ESP-WROOM- 02 にプログラムが 書き込まれる 6 6 図 8 スマホに通知する内容を設定する ボード・マネージャのタイプ [ 全て ] の右側のテキ ストボックスに [ eSP8266 ] と入れると表示項目が絞 り込まれ , 見つけやすくなります . ・ステップ 2 : ソースコードの作成 作成したプログラム mobile_battery_ifttt. ino の抜粋 をリスト 1 に示します . 全体の流れは次の通りです . >Wi-FiAP 用 SSID とパスワードの設定 インターネット接続で使用する Wi ー Fi アクセス・ ポイントの SSID 名とパスワードを設定します . クラウド・サービス用 IFTTT キーの設定 IFTTT のキーの設定を行います . IFTTT キーは , IFTTT の Web ページから取得します . トップページ 上部の [ChanneIs] ボタンを押し , 出てきた画面の CSearch channels] に maker と入力し , Maker アイコ ンをクリックします . 画面に出てきた「 Your key is: 」に続く文字列をソ ースコードの define 値 IFTTT_KEY にコピー& ベー ストします . send_ifttt 関数 IFTTT の Maker channel のリクエスト発行には , send_ifttt 関数を使用します . 関数は次のような形式 ・つ void send—ifttt (String event—name, String vl, ンタ技術 2016 年 10 月号 string v2, strin g v3) そのため , 次のような設定を行うと , nel に通知できます . se nd—ifttt ( " BatteryStatus" 充電制御 IC からの満充電通知 ” 30 % ” Maker chan ” 3.5 " 充電制御 IC BQ25890 の REGOB の 3 , 4 ビットを使 用します . このフィールドが 11 になると , Charge Termination Done となります . これを用いて満充電 と判断します . ・ステップ 3 : 書き込み プログラムを Arduino IDE にロードしたら , あら かじめ ESP ー WROOM ー 02 をファームウェア書き換え 状態にしておきます . その後 , 図 9 のように書き込み ボタンをクリックします . コンパイルに成功すると , そのまま USB シリアル変換モジュール経由で ESP ー WROOM ー 02 内のプログラムが書き換わります . 79 く丸石康〉 に応じてスマートフォンに通知メールが飛んできます . あとは , 充電を開始すると , 図 1 のように充電状況 IFTTT のアプリをインストールしておき , アプリ内 スマートフォンで通知を受信するには , あらかじめ