[[labs.beatcraft.com]]
[[ANT]]

* BC-ANT-SERIAL 使用例 - データディスプレイ [#u845c6dd]

BC-ANT-SERIAL を使ったサンプルです。 LCD表示ユニットを備え、ANTモジュールの通信状態を表示します。

BC-ANT-SERIALは わずか 5ピンでマイコン等に接続することができます。 1.9〜3.3Vの電源とグランドのほかに シングルエンドの TXD, RXD, RTS という3本のラインのみです。(ほかに リセット、スリープ、サスペンドを追加することもできます)
この 5ピンは広く使われている 2.54mm (0.1インチ)ピッチのピンヘッダを使うことができます。

この使用例では、CPUに Microchip Tecnology社さんの PIC24FJ64GA002 (28ピン、300mil幅のDIP品) を利用したものです。

回路図: &ref(maker-2012-0005a.pdf);~
実装例: &ref(DSCF8198.JPG,,25%);

使用部品一覧
|No|数量|リファレンス|品名|スペック等|備考|
| 1|   2|C1, C2      |積層セラミックコンデンサ|  0.1uF|汎用品でOK|
| 2|   1|C3          |タンタルコンデンサ      |   10uF|電解コンデンサ等、極性に注意|
| 3|   1|C4          |積層セラミックコンデンサ|   10uF|積層セラミックのこと。電解コンデンサ等は不可|
| 4|   4|D1, D2, D3, D4|LED                   |       |チップタイプでも リード付 φ3〜5mmでも OK|
| 5|   1|J2          |ピンヘッダ用ソケット    |1列 x 5ピン|2.54mmピッチ BC-ANT-SERIALモジュールに合わせる|
| 6|   1|J3          |ピンヘッダ              |1列 x 6ピン|2.54mmピッチ PICKit等プログラマ接続用|
| 7|   1|R1          |抵抗 1/16〜1/4W         |10kΩ  |   |
| 8|   4|R2,R3,R4,R5 |抵抗 1/16〜1/4W         |1.5kΩ |330〜3.9kΩ程度。使用するLEDに応じて値を選択してください。リード付 外形5mmのLEDの場合は 330〜510Ω程度。チップLEDの場合は高い値でもOK   |
| 9|   1|R6          |抵抗 1/16〜1/4W         |10kΩ  |半固定抵抗   |
|10|   4|S1, S2, S3, S4|プッシュスイッチ      |モーメンタリタイプ|押すと ONになるタイプ|
|11|   1|U1          |CPU                     |PIC24FJ64GA002|秋月電子、マルツなどで購入可能|
|12|   1|U4          |LCD                     |SC1602BS-B(-XA-GB-K)|他のモデルにも差し替え可能ですが、一部にピン非互換があるようです。秋月電子で購入可能|
|13|   1|U5          |DCDCコンバータ          |昇圧型DC-DCコンバータ 5V0.2A出力 StepUP・DIP-Ver.2|秋月電子で購入可能。3.3Vから5Vへ昇圧可能なもの 3.3V対応のLCDパネルの場合は不要です|
|14|   1|            |BC-ANT-SERIAL           | ||
|15|   1|            |ピンヘッダ              |1列 x 5ピン|2.54mmピッチのものを BC-ANT-SERIALに半田付けし、J2に接続します|

LED、抵抗、コンデンサ、スイッチ、ピンヘッダ、CPUなどは 秋葉原等で購入できます。 通信販売を利用するときは、秋月電子通商さん、千石電子さん、マルツさんなどの通信販売でそろえることができると思います。

実際に、組み立てるときの注意事項については、回路図にも記載しましたが、この回路図に対する補足説明を記述します。~

C3は、電源ラインが不安定な場合に、追加します。だいたい 1〜10uF程度のタンタルコンデンサが良いでしょう。
一部を除き極性があります。 コンデンサの+端子を Vdd 側に -端子を GND側に接続します。

LEDは、出力ポートに 0 を書き込むと点灯し、 1 を書き込むと消灯します。実装するLEDのタイプによって、R2 〜 R5 に使う
抵抗の値を調整する必要があります。~
1608サイズのチップLEDの場合、少ない電流(500μA弱)でも LEDが発光しているのを見ることができますので 回路図では 1.5kΩを
指定しています。。しかし リード線のあり、外形が 5mm程度あるLEDの場合、2〜3mA程度の電流を流さないと、発光していることが
見えませんので 抵抗値を小さくする必要があります。チップLEDでも 2〜3mA流しても問題ありませんから、抵抗の値は 330〜510Ω
でも特に問題ありません。(消費電流が増加した分、明るく光りますが、明るすぎると感じているのでチップLEDを使うときは
2kΩ前後にしています)~

プッシュスイッチは CPU内蔵のプルアップ抵抗を有効にしながら、GNDに接続します。スイッチを離している状態では 1 が読み込まれ、
押している状態では 0 が読み込まれます。~
プログラムのミス等により、プルアップ抵抗を無効にしたまま動作させると、入力端子が不安定になります。多くの場合は、
1が読み込まれるようですが、動作は保証されなくなります。また、最悪の場合は CPUを熱暴走により、破壊してしまいます。
もし、プルアップ抵抗が無効になって、CPUが不安定になるのを避けたい場合は、電源に向かってプルアップ抵抗を追加してください。


開発環境には MPLAB IDE を利用しました。~
新しいプロジェクトを作成し CPUに PIC24FJ64GA002 を選択してください。プログラマには PICKit2やPICKit3 が使えます。また、ソースコードデバッガも使うことができます。
単独で、電源を供給する場合は、3.3Vの電源を J3 の 2番ピンに +極を、 3番ピンに -極を接続します。


* サンプルプログラム [#o4def6a2]
サンプルプログラムは 下記の通りです。 それぞれを 作成したプロジェクトに追加してコンパイル/プログラム(PICへダウンロード)してください。~

- ANT API
-- &ref(ant.c);
- LCD ディスプレイ
-- &ref(C_LCD.c);
- Delay 関数
-- &ref(delay.c);
- 本体
-- &ref(main.c);
- UART
-- &ref(uart.c);

- ANT APIヘッダ
-- &ref(ant.h);
- LCD ディスプレイ ヘッダ
-- &ref(C_LCD.h);
- Delay 関数 ヘッダ
-- &ref(delay.h);
- UART ヘッダ
-- &ref(uart.h);

** 説明 [#ufec8120]
このサンプルプログラムを実行すると、最初にタイトルを表示します。 SW4 を押すと、実行を始めます。~
LCDパネルの 1行目には ANTモジュールから受信したデータのうち、コマンドとペイロードの一部を 16進数表記で表示します。 2行目には、受信したデータの数を表示します。~
SW1 を押すと、チャンネルを送信モードでオープンし、データをブロードキャストします。 LED1 が点灯します~
SW2 を押すと、チャンネルを受信モードでオープンし、データを受信します。LED2 が点灯します。 ANTの電波を受信できずに タイムアウトすると、チャンネルを閉じて LED2 を消灯します。~
SW3 を押すと、ANTモジュールにソフトウェアリセットを送信し、LED1 および LED2 を消灯し、待機します。

主な処理は main() 関数の中に書かれています。

----
2012.11.29 初版: サンプル回路図掲載等~

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS