■ホビーロボット部品の製造・販売 
  モータコントローラ、センサ、音声、画像、無線モジュールなど、
■ホビーロボット制作記事のページ (各種マイコン、PCとの接続事例)
■特殊メイク、特殊材料の販売 ※特殊メイクのコーナーはこちらに移りました。
Top(お知らせ) 製品紹介 使い方とサンプルプログラム 通信販売 リンク ロボット掲示板 会社案内
 Easy Robotics for all enthusiastic people!!!  ---HOBBY ROBOT PARTS SHOP ASAKUSAGIKEN---   Since 2003...
スタンプと電圧出力型センサー
BASICスタンプはBASICで記述でき、シリアル通信やパルス幅測定などのデジタル入力も1つの命令で実現でき、初心者向けのマイコンといえます。浅草ギ研で販売しているセンサーはシリアルデータ出力かパルス幅出力のものが多く、外部回路無し(または非常に少ない外部回路)でスタンプに直接接続でき、部品点数や実装面積が少ないので簡単なロボットの作成に向いていると言えるでしょう。

しかし、スタンプではアナログ入力が無いので電圧出力型センサーを使用した場合にはADコンバータが必要になります。ここではスタンプとADコンバータを使用して電圧出力型センサーの使用方法を紹介致します。


ADコンバータチップ ADC0803

AD変換を行うには専用のチップを使用するのが手っ取り早いので今回は専用チップを使用します。AD変換チップにはいろいろな種類がありますが、電子部品店で入手しやすい ADC0803 を使用することにしました。


RH24-1
上の写真がADC0803です。20ピンDIPタイプで、入力した電圧を8本のIOからデジタル出力します。
ADC08xxシリーズはこの他にデータを同期型のシリアル通信で出力するタイプもあります。シリアル通信の方がスタンプにつなぐ場合のIOの数を減らせますので良いのですが、同期通信のためのクロックの生成などがあり難しくなります。



ADC0803のピン配列です。

メーカーからダウンロードした仕様書を要約すると下記の通りとなります。(ビギナー向けに意訳しています。)

CS:LowにするとADCが有効になる。(今回はGNDにつないで常に有効にしておく)
RD:Lowにすると変換した値を読み込めるモードになる。
WR:LowからHighにした瞬間に変換を開始する
CLKIN、CLKR:変換にはADC内で数ステップの処理段階が必要。このためのクロックを入力
INTR:変換が終わったらここがLowになる。WRに接続すると順次変換モードになる。
Vin(+):センサーの出力をつなぐ
Vin(−):センサーのGNDをつなぐ(正確にはVin+と−の電圧差を測定するものです。)
Vref/2:入力電圧の基準となる電圧を入れる(今回は使いません。)
DGND、AGND:GNDにつなぎます。
Vcc:ADCへの供給電源の+をつなぎます。(スタンプの5V出力を使います。)
DB0〜DB7:デジタル出力

スタンプとの接続

ということで、BASICスタンプ開発キットに付属しているキャリアボードとブレッドボードを使って簡単に下記のような回路をつくりました。


センサーにはシャープのGP2D12を使用しています。これも電子部品店やロボット専門店などで入手可能です。
スタンプは9V乾電池で動作させますが、スタンプのVdd端子からは50mAぐらいまでなら取り出せる5V電圧が出ていますのでこれをADCとセンサーの電源として使用しています。
CLKの回路はADCの仕様書に書いてあったサンプル回路をそのまま使用しています。抵抗は10kΩ、コンデンサは150pFです。
ADCのデジタル出力はスタンプのP0〜P7につながっています。番号を同じポートに接続することで、あとでスタンプで値を判定するときに簡単にできます。


RH24-2
実験風景。


プログラムは以下の通りです。



'{$STAMP BS2}

rd CON 10 'RDをスタンプのP10へ接続
wr CON 11 'WRをスタンプのP11へ接続

'ADCをリセット
HIGH rd
HIGH wr
LOW rd

'0.1秒置きに距離を測定するルーチン
LOOP:
LOW wr
HIGH wr
DEBUG DEC INL,CR
PAUSE 100
GOTO LOOP


ADCの仕様の通りにRDとWRのHigh/Lowを切り替えるだけなので特に難しくは無いかと思われます。
取得した値ですが、スタンプのポートは1,4,8ビット単位でグループ化されています。(詳しくは開発キットマニュアルを参照)
P0〜P7の8本のIOは「INL」という名前のレジスタとして判定できますので数値を取得するには単にINLの中身を読めばよいことになります。上のプログラムのDEBUG命令の行のINLの前のDECは10進数に直すという記号で、これにより距離に応じた数値が10進数でPCにデバック出力されます。



今回はAD変換チップを使って距離センサーを動かしましたが、浅草ギ研ではシリアルデータ出力型やパルス出力型の距離センサーもありますのでそちらの方がスタンプのポート数を使わない(今回10ポート−>1〜3ポート)で済みます。またADCチップを使わなくても済みますので実装面積を小さくできるでしょう。


2004年6月20日


※このページはユーザーからの要望が多いために作成しました。浅草ギ研では(BASICスタンプを使う場合は)ADCチップを使う必要の無いセンサーを販売しておりますのでADCチップについてのご質問はご遠慮下さい。とくにシリアル出力型のADCチップの問い合わせが多いのですが、電子部品店などで聞いてください。
(C)Copylight 2003. 有限会社浅草ギ研 | 通信販売の法規(訪問販売法第8条)に基づく通信販売業者の表示