研究ブログ

研究ブログ

遅延

 必要なデータ Verilog
 遅延情報ファイル _v.sdo
 配置配線後のネットリストファイル .vo
 遅延ライブラリ _atmos.v
0

情報系の資格(検定)試験について

 1年次ITパスポート試験
 2年次情報セキュリティマネジメント試験
 3年次基本情報技術者試験
 4年次応用情報情報技術者試験
  • 受験料が必要なので、受けるかどうかは本人次第。
  • 利点は、履歴書の資格の欄を空欄にすることなく、記載できる。
  • 車の免許などとは異なり、上記資格を持っていないと出来ない業務は無い。要は、実力を証明するため。
0

赤外線式マルチタッチパネル


使用Webカメラ

テスト風景
  • 動画1 … Φ10cmアクリル円盤
  • 動画2 … Φ40cmアクリル円盤
  • 動画3 … Φ40cmアクリル半球
ソフトウェア
  • Community Core Vision … Win, Mac, Linuxで動くらしい。WinとMacは動作確認した.
  • TouchLib
  • DagikTouchController … Javaで書いたので,どの機種でも動くはず.WinおよびMacにて動作確認した。ビルドする必要あり。バイナリーはちょっと待ってください。

  • optgeo … 光線のシミュレーションに用いる.

赤外LED
  • 使用した赤外LEDの最大定格以内の順方向電流100mAにて使用することとした。
  • 順方向電流100mA流した際の電圧降下は,1.6V.
  • ACアダプタや006P電池にて電源供給しやすいように,回路全体に与える電源電圧は9Vとする.
  • この条件下で電流制限用の抵抗は,〇Ωとなる。
  • なお,電力P=I^2 Rのため,1/?Wの抵抗を選ぶ必要がある。
0

農工連携に向けた取り組み:温度センサー, A/Dコンバーター, FPGAの連携



概要

  • 外部のセンサーから出力されるアナログデータを、同じく外部のADコンバータを用いてデジタルデータに変換し、FPGAボードに入力する。さらには、FPGA上において信号処理を行う。
  • 本演習では、温度センサーを事例として取り上げる。
    • 本演習と同様にして、湿度センサー、土壌センサー、風向風速センサー、などの様々なセンサーを接続することによって、農業用データ取得が可能となる。

詳細

  • 温度センサ → A/Dコンバータ ーー(DE0のGPIO端子)ーー> FPGA -->7セグ表示、を作成する。
  • 温度センサーの出力は、温度に対応したアナログ電圧である。
  • このアナログ電圧が、A/Dコンバーターによってデジタル電圧に変換される。
  • このデジタル電圧がDE0に入力される。そこでDE0では、電圧-温度の対応表を用いて、電圧から温度に換算する。(MCP9701のデータシートのFigure 2-16参照。)
    • MCP9701のデータシートのEQUATION4-1を変形すると、TA=(VOUT-V0C)/TCとなる。これに、データシート上の値を代入すると、TA=(VOUT-400mV)/19.5mV/degree celsiusとなる。
    • ADCのMCP3002は10bitである。1bitの分解能はVREF(=VDD)/1024であるので、VDD=5Vであれば分解能は5/1024=4.88mVとなる。これは前出の1°C当たりの電圧19.5mVの4分の1の値である。言い換えれば、1bit=0.25°Cである。
    • 出力は7セグ表示する。

手順

  • Qualtus II上で、DigitalThermometerプロジェクトを作成し、下記ファイルを作成する。
  1. SpiIf.v
  2. TimingGenerator.v
  3. PLatch.v
  4. HexSegDec.v
  5. rom.qip以下は後述の手順にて自動生成される。
  6. Timer2.v


Memory Initialization File (MIF)の作成

  • ADCのデジタル出力に対応する温度を計算してファイルに出力する。
  • Python 2.6.6にて動作するcreate_mif_for_digital_thermometer.pyを用いることによって、MIFファイルが作成できる。別バージョンのPythonにて動かすときは、ほんの少しソースを改変する必要があります。各自工夫してプログラムを動作させ、mifファイルを生成する。上手く動かせなかった人用->rom.mif

温度変換ROMモジュールの作成

  • Quartus IIの[Tools]-[Mega Wizard Plug-In Manager]
    • page 1 of 7: Create a new custom megafunction variationを選択。
    • page 2 of 7: Memory Compiler-ROM:1-PORTを選択する。Cyclone IIIを選択する。Verilog HDLを選択する。ファイル名をromとする。
    • page 3 of 7: 16bits, 1024wordsを選択する。
    • page 4 of 7: デフォルトのまま。
    • page 5 of 7: Pythonスクリプトによって作成したrom.mifを選択する。
    • page 6 of 7: デフォルトのまま。
    • page 7 of 7: デフォルトのまま。













外部回路の作成


  • テスターを用いて、どことどこが導通しているのかブレッドボード自体の配線確認を行う。
  • 下記の実体配線図を見ながら、配線を行う。ブレッドボードとDE0をつなぐのは最後に!
    • DE0のデータシートMCP9701のデータシートMCP3002のデータシートを確認し、どのピンとどのピンを接続しているのかひとつづつ確認しながら進めること。
    • 配線後,MCP9701AのVDD-GND間の端子間電圧を,テスターを用いて計測して記録する.
    • MCP3002のデータシートより,f_{CLK, MAX}は3.2MHz(VDD=5V)/1.2MHz(VDD=2.7V)である.Terasic DE-0の水晶発振器の周波数は50MHzであるため,分周が必要である.ソースコードを確認せよ。


  • [Processing]-[Start]-[Start Analysis & Elaboration]を行う。
  • [Assignments]-[Pin Planner]でピンを確認する。
  • [Processing]-[Start Compilation]を実行する。
  • [Tools]-[Programmer]を選択し、[Start]を押して、プログラムをDE0に書き込む。
  • 一見、室温とは思えない数字を指し示すが、キャリブレーション(較正:測定値の読みとセンサー入力の値を調整する)を行っていないためである。
0