2010年10月アーカイブ

LPC1114のテスト・ボードXpressoでテストする(9)
 前回、新規にワークスペース、プロジェクトをarm041010の名で作成し保存しました。最初に、前回保存したワークスペースarm04010.ewwを開きます。次に、前々回に作成検討したソース・ファイルを作成します。ソース・プログラムは、

ファイル>新規作成

で無題ドキュメントのウィンドウを開きソース・プログラムを次のように作成します。ソース・プログラムが完成したら、arm04010.cの名を付けてプロジェクトを作成したフォルダに保存します。

IAR4200010.jpg


プログラム
 このシステムではMPPTユニットは独立動作しています。mbedは太陽光発電電圧とバッテリ電圧のモニタの役割を果たします。

■■Publish
 mbedプログラムは下記でPubulishしています。
  http://mbed.org/users/takeuchi/programs/2ak0918_Solar_LCD20X04/5z34h

■■注目のmbed命令
 すべて今までに使った命令です。

12_solar_mppt.jpg
LPCXpresso と USB シリアル変換モジュール 端末エミュレータを準備する

 USB シリアル変換モジュールは, PC からはシリアル・ポートとして認識されます.シリアル・ポートを介してデータを入出力するには, PC に端末エミュレータ・ソフトウェアを用意してやります.

プログラムを作る
 今回は基板上のスイッチを押すと基板上のLEDが点灯し、もう一度押すと消灯する。という簡単なプログラムを作ってみたいと思います。
 簡単なプログラムではありますが、スレッドや割り込みといった、今後も使うであろう処理を入れましたので、ぜひ、一度動かしてみてください。

szu5.jpg

 右の「ソリューションエクスプローラ」から”Program.cs”を選びダブルクリックしてください。そうすると、プログラムの雛形が表示されます。
 例外はありますが、基本的に、“write your code here”とコメントされた場所にコードを書いていくことになります。

 それでは、プログラムを打ち込んでいきましょう。

LPC1114のテスト・ボードXpressoでテストする(8)
 前回、but1、but2の二つのボタン押したときそれぞれLEDを点灯させるプログラムを作成しました。そのソース・プログラムをコンパイルし、実行可能なプログラムを作成するための作業、ビルドを行い実行可能なプログラムを作成します。
 このビルドを行うための条件、デバッグのための設定がメニューの
   プロジェクト>オプション
で設定できます。基本はデフォルトの設定で行いますが、この環境で最低限設定する必要のある項目に絞って確認します。

 前回製作したMPPTチャージ・コントローラで制御する太陽光発電電圧とバッテリ電圧をmbedに取り込み、LCDモジュールに表示します。発電電圧は26V、バッテリ電圧は最大15Vと高い電圧なので、mbedを壊さないように過電圧保護ユニットを装備します。

回路図
 過電圧保護ユニットは mbed入門 ~A-Dコンバータを使いましょう~で紹介した回路と同じです。この回路を二組装備します。バッテリ電圧は最大20Vあれば充分なのですが、太陽光発電パネル出力と合わせて最大30Vとしました。

5_solar_mppt.jpg
5 動作確認

 それでは、動作を確認してみましょう。
 プログラムが完成したらTeraTermを起動した後、mbedにプログラムを書き込み、再起動してください。
 ※TeraTermの表示がずれる場合は、TeraTermのメニューから[設定]=>[端末]で改行コードを図5のように変更すると、正しく表示されます。

s図5_TeraTermの設定.jpg
図5 TeraTermの設定


LPCXpresso と USB シリアル変換モジュール USB シリアル変換モジュールを準備する

 NXPセミコンダクタ社LPCXpresso 基板と PC の間でシリアル通信を行うためには,シリアル・ポート付きの PC が必要です.しかし,最近の PC にはシリアル・ポートが付いていないものが多いのです.

LPC1114のテスト・ボードXpressoでテストする(7)
 前回、Xpresso LPC1114のマイコン・ボードに、IARのCortex M0の評価ボードのボタンとLEDのアドレスと同じアドレスのGPIOポートにボタンとLEDを接続しました。そのLPC1114のボードに、IAR用に作成したプログラムをロードして、Xpresso LPC1114のマイコンボードに接続したボタンを押すとLEDが点灯するようになりました。


                                           Xpresso LPC1114 マイコン

IAR4000030.jpg 今回、IAR用に作成したプログラムを基に、Xpresso LPC1114用のプログラムを作成します。結果としてコピーとなると思いますが、プログラムの全コードの役割を確認することになります。
 

                IAR Cortex M0 評価ボード

IAR000020.jpg
 地球環境のためにCO2削減が急務とされています。解決方法の一つとして太陽光発電に注目が集まっています。

重要:鉛蓄電池は内部抵抗が低いために、ショートすると大電流が流れ、発火・爆発の可能性があります。。常に注意して実験を進めてください。

システム構成
 mbed入門 ~ADC とPWMを使いましょう~のコーナでも太陽光発電パネルを使いました。ここでは、太陽光発電電圧とバッテリ電圧を測定するシステムをmbedで開発し、太陽光発電の特性を理解する手助けにしたいと思います。

 システム構成は下記のとおりです。

20_solar_mppt.GIF
Netduinoとは
 Netduinoとは.NET Micro Frameworkに対応した、マイコン・ボードです。Arduinoと同じピン配列を備え、Arduinoのシールドを流用することができます(ただしNetduinoは5Vトレラントですが、3.3V動作なので5V専用のシールドは利用できない)。
 プロセッサには32ビット・プロセッサであるARM7を搭載し、RAMが60KBと大容量(ArduinoのRAMは2KB)です。
 プログラミングにはVisual C#を利用します。インテリセンスが利用できるので、プログラミングをさくさく行うことができます。
 デバッグについてもソース・コード・レベルでのデバッグが可能で、プログラムが動かなかった場合の原因特定を容易に行えます。
 また、価格が3500円程度と安価であるということも魅力の一つでしょう。現在は、まだパブリック・ベータですが、イーサネットとマイクロSDスロットのついたNetduino Plusも発表・発売されています。両方とも国内では現在、スイッチサイエンス社で購入が可能です。

sp1.jpg


 *.NET Micro Framework : Microsoftが提供している、組み込みシステム向けの開発・実行環境。

LPCXpresso と USB シリアル変換モジュール シリアル通信に必要な結線について考える

 NXPセミコンダクタ社LPCXpresso 基板をブレッドボードに搭載しました.今回は,シリアル通信に必要な配線について考えます.

 StarBoard Orange(スター・ボード・オレンジ 以下☆Board)は,以下の設計コンセプトに基づいて設計をしています。
(1) スタンドアロンである程度の応用ができるようなデバイスを搭載すること。
(2) できるだけコンパクトに設計するが拡張性も考慮すること。
(3) プログラム作成時は、PCからのUSB給電だけでも動作すること。
(4) Cookbookなどのサンプル・アプリケーションができるだけ改造なしに動作すること。
(5) 極力、SMDは使用せず、組み立てが簡単なこと。
(6) 部品は秋葉原または通販などで容易に入手可能なこと。

 (1)、(2)項については、前回、搭載デバイスや拡張性の概要を説明しましたので、今回は、(3)項の『PCからのUSB給電での動作』について解説します。

0sbo0_L.jpg

 ソーラパネルをいじっていると12V系電源でmbedを動かしたくなります。ケータイ充電器改造品を使って別電源でmbedを動かすのも安定して動作しますが、電源は一つに統一するとすっきりします。そこで、探し出したのが・・・”シガーソケット専用DC充電器”です。

シガーソケット専用DC充電器
 100円ショップで”シガーソケット専用DC充電器”を見つけました。

6_mbed_vdd.jpg
4 TCPプログラムの作成

 まず最初にmbed Compilerに新しいプログラム(TCPCtrlServer)を追加し、EthernetNetIfライブラリを追加します。
 図4のようになりましたか? 赤いアンダーラインがプログラム名で、その階層の下に青いアンダーラインのEthernetNetIfライブラリが追加されていれば正常にライブラリが登録されています。

s図4_EthernetNetIfライブラ.jpg
図4 EthernetNetIfライブラリの追加

 今回も通信を制御するいろいろな関数を使用します。それら関数についての情報は、このURL(http://mbed.org/users/donatien/programs/NetServicesSource/5zh9t/docs/annotated.html)のTCPSocketやHostのリンクに記述されています。
 関数についての詳しい説明はしないので、もし必要な場合はこちらの情報を参照ください。
 それでは、準備が整ったのでプログラムを作成していきます。今回はプログラムを四つの処理に分けて説明していきます。

LPCXpresso と USB シリアル変換モジュール ターゲット基板をブレッドボードに載せる

 今回のテーマは, LPCXpresso 基板と PC の間で通信を行うことです.そのためには, LPCXpresso 基板と PC を電気的に接続する必要があります.今回は, LPCXpresso 基板にコネクタをはんだ付けして,ブレッドボードに載せます.


LPC1114のテスト・ボードXpressoでテストする(6)
   ボタンを押すとLEDが点灯するプログラムを、次のXpresso LPC1114のマイコン・ボードで動かしてみます。プログラムは本連載のARMマイコン入門(22)~(29)で検討作成したものです。

IAR4000010.jpg
 mbedは4.5V~9Vの幅広い電源電圧に対応しています。しかも本体のポートは3.3Vで動作する低電圧設計です。
 実際にmbedを使うときは、小型のAC-DCスイッチング変換式電源を使うことが多いのではないでしょうか? 筆者はコードがあると邪魔なことが多いので、ほかに使えそうな電源を探しました。いくつか見つけたので、レポートします。

ケータイ充電器を使おう!
 コンビニでよく見かける携帯電話用乾電池式充電器(以後、ケータイ充電器)です。600円ほどで購入しました。

1_mbed_vdd.jpg

  • main.cpp
  • TextLCD2004cpp
  • TextLCD2004.h
はうまく取り込めましたか? プログラムの内容を簡単に説明します。

■■メイン・プログラム
locate(桁、行)命令が拡張されます。
 前回はUDPを使ってmbedからパソコンにメッセージ(データ)を送信するプログラムを作成しました。ライブラリを使うことで、思っていたよりも簡単にプログラムが作成できたのではないでしょうか。このように、mbedは簡単にネットワークに接続できるので、アイデア次第で楽しいものが作れそうですね。
 そこで、今回もネットワーク・プログラムを作成したいと思います。
 前回はUDP通信だったので、今回はTCP通信を使ってパソコンからmbedの内蔵LEDを遠隔制御するプログラムを作成します。


0sbo0_L.jpg
StarBoard Orange(スター・ボード・オレンジ)

 StarBoard Orange(スター・ボード・オレンジ 以下☆Board)は,mbed NXP LPC1768を使用したアプリケーションやシステムをより簡単に作成・評価するために作られた評価用ベースボードです。ブレッドボードでの配線やはんだ付けがちょっと苦手という方でも、本ボードを使用することにより、mbedの主要機能をすぐに試すことができます。
 また、非常にコンパクトにまとまっており、ケースに入れてスタンドアロンで使用することもできます。

☆Boardはtwitter上のmbedユーザーコミュニティの中から生まれました。ユーザβテストを経て、プリント基板製造・実装メーカーである『きばん本舗』から基板単体、部品セット、完成品として販売されています。きばん本舗サイト:http://kibanhonpo.com/

 組み立ては完了しましたか? では、mbedにプログラミングして表示できるようにしましょう。

mbedプログラミング

■■Publish
 下記のURLにてPublishしています。
  http://mbed.org/users/takeuchi/programs/2ak0905_LCD2004/5z1xm
 mbed Webは自作のライブラリを気軽に公開できる仕様になっていません。
 そこで、上記URLよりインポートにより取り込み後に使います。
=>import program into Compiler =>

6_lcd2004.GIF

LPC1114のテスト・ボードXpressoでテストする(5)
JTAGボードに5V電源を追加

   ExpressoのLPC-LINKからは5Vの電源が供給されています。前回作成した変換ボードには、3.3V出力のスイッチングAC-DCアダプタによる電源しかありません。そのため、今回は3.3V電源から5V電源を供給する回路を追加します。

ステップアップ・コンバータ
  今回使用するICは、共立エレショップで購入したPFMステップアップDC-DCコンバータHT7750A(HOLTEK)単価63円を使用しました。インダクタは同じ共立エレショップで購入した太陽誘電のマイクロインダクタLHL06NB 100μH 単価40円を使用しました。コンデンサは、在庫の47μFと10μFの積層セラミック・コンデンサを使用しました。
 具体的な回路図を次に示します。次に示す写真と同様になるようにGNDを上にしました。

IAR3900005.jpg
 秋月電子で販売しているLCDキャラクタ・ディスプレイ・モジュール 20×4行バックライト付(SC2004CSWB)をmbedに接続して、多行表示を楽しみましょう。この製品にはバックライトなしと、バックライト付きのラインナップがあります。どの製品でも動作可能と思われます。
  秋月電子製品:http://akizukidenshi.com/catalog/g/gP-00036/

0_lcd0420.jpg
==== お願い!! 過電圧保護回路は回路図に記載があっても、撮影の都合により写真では搭載されていない場合があります。必ず搭載し、mbedを過電圧より保護するようにしてください ====

 PWMはうまく動きましたか?

プログラムの考え方
 少しまとまったプログラムを楽しみましょう。
 太陽光発電パネルまたはエコハンドパワーの発電電力は非常に不安定で、常に変動しています。
緩和するためにスーパキャパシタを並列接続していますが、スーパキャパシタの特性として、蓄電量が増えるに従って電圧が上昇します。この結果、列車のモータ回転が増え、スピードがどんどん上がってしまい、脱線の原因になります。
 そこで、mbedプログラミングにより細かく制御し、一定電圧以上に蓄電されても列車の速度が変わらないように考えました。装備したLCDに電圧、デューティ、モードを表示することで、楽しみながらエコパワーの活用について考えることができるようにしています。

1_pwm2_ouyou.jpg

LPC1114のテストボードXpressoでテストする(4)
  前回に続いて、Xpresso LPC1114のボードのテストを行います。

J-TAGリンクの信号線のプルアップについて
  Expressoのカードは4本の信号線の内、RESTXの信号線は基板内で3.3Vの電源に12kΩの抵抗でプルアップしています。
 残りの3本の信号線は、基板内では直接LPC1114の端子に接続されています。USB-Open Linkとの間がコネクタの変換ボードを介して配線も少し長くなっていますので、RESTX以外の3本の信号線を10kΩの抵抗でプルアップしました。次に示すようにあまり見栄えはよくないのですが、端子のはんだ付けしたところに直接はんだ付けしました。

IAR3800002.jpg
==== お願い!! 過電圧保護回路は回路図に記載があっても、撮影の都合により写真では搭載されていない場合があります。必ず搭載し、mbedを過電圧より保護するようにしてください ====

 電源電圧とボリュームの電圧変化を、A-Dコンバータを経由してmbedで読み取ることができるようになりました。
 今回は読み取ったデータを使って、PWM制御に挑戦します。mbedにはPWM出力端子が装備されているので、簡単なプログラミングでPWM出力を実現することができます。FET 2SK2961を追加して、外部電源をPWM出力できる回路を考えました。
 この出力に鉄道模型Nゲージを接続し、速度制御に挑戦します。仕様は次のとおりです。

・ボリュームを回すと接続されている鉄道模型の速度を上下させることができる。
・出力はmbedのPWM出力可能ポートに接続したFETをPWM制御することによりおこなう。
・供給されている外部電源VinとPWMのデューティをLCDモジュールに表示する。

LPC1114のテスト・ボードXpressoでテストする(3)
Blinkyが動く

  IARの評価ボードのLPC1114に接続されているLEDは、PIO3-0とPIO1-9に接続されています。このうち、サンプル・プログラムのSIMPLE DEMOのBlinkyで使用されているLEDが接続されているポートはPIO3-0となっています。

XpressoのLCP1114のボードにLEDを接続する
 XpressoのLPC1114のボードにLEDを接続します。次に示すように、LPC1114のマイコン・ボードのP3.0にLEDと電流制限抵抗を接続します。

IAR3700010.jpg





カテゴリ


Copyright (C) 2006-2015 CQ Publishing Co.,Ltd. All Rights Reserved.