液晶付きデータロガー


液晶付きデータロガー

液晶付きデータロガーとは

添付ファイルの画像
添付ファイルの画像
  • 野田篤司水城徹が、自作した携帯型デジタルオーディオプレーヤー。
    • 主に野田が回路設計とプログラミングを担当し、水城がプリント基板のパターン設計および配線を行った。ケースへ入れるなど最終組立は、個々が行なっている。
  • 2013年8月12日のコミケで販売予定。
  • デジタル8チャンネル、アナログ3チャンネル、シリアル1チャンネルのデータを液晶に表示すると共にmicroSDに記録するというもの。
    • なお、I2Cに関しては、入力端子は出しているものの、まだプログラムを作り込んでないので、動作は未確認だ。
    • シリアル入力は、英数字だけではなく、漢字も表示可能。UTF8やShift-JIS、EucJPからの変換ができる。
  • このロガー、デジタルとアナログ入力はサンプリングレートが10kHzと低速だ。
    • しかし、50mAしか消費しないので、例えば、単三電池4本だと、39時間連続で記録できる計算になる。
    • データ量だけで単純計算するなら、4GBのmicroSDで20万時間100時間以上記録できることになる。
    • 私自身が、この様な低速だけど長時間記録できるロガーが欲しかったので作ってしまった。
  • 5V単一電源
    • ところが、なぜか、3.7V 1セルのリチウムポリマー電池でも動作する。

簡単に作れるのか?

  • 自作は、上級者向け。
    • 『最上級者』ではなく、上級の中間レベル。
      • まあ、私の『最上級者』って、自作したものが音速を超えるくらいのものを言うんだけど。
    • ハンダ付けは、0.5mmピッチの表面実装部品をハンダ付けできるレベル。

将来計画

  • FETドライバを付けて、DCモーターの制御
  • 超音波風向風速計のベースにもなるんじゃないかと思っている。

ハードウエア


ピン配置

JPピン番号内容STM32F405のピン番号他の機能
JP11USART1_TX42PA9 TIM1_CH2 I2C3_SMBA OTG_FS_VBUS
2USART1_RX43PA10 TIM1_CH3 OTG_FS_ID
3GND
JP21GNDBOOT切り替えSW用
2BOOT060
310kΩでプルアップ
JP31GNDバッテリー接続用
2電池プラス
JP41JP2-2電源SW用
2BOOT0
3USBの5V側
JP51VCC
2I2C1 SCL61PB8 TIM4_CH3 TIM10_CH1 OTG_FS_SCL
3I2C1 SDA62PB9 SPI2_NSS I2S2_WS TIM4_CH4 TIM11_CH1 OTG_FS_SDA I2C1_SDA
4GND
JP61DIN111PC3 SPI2_MOSI I2S2_SD OTG_HS_ULPI_NXT ADC123_IN13
2DIN214PA0 USART2_CTS USART4_TX TIM2_CH1_ETR TIM5_CH1 TIM8_ETR ADC123_IN0 WKUP
3DIN315PA1 USART2_RTS USART4_RX TIM5_CH2 TIMM2_CH2 ADC123_IN1
4DIN416PA2 USART2_TX TIM5_CH3 TIM9_CH1 TIM2_CH3 ADC123_IN2
5DIN517PA3 USART2_RX TIM5_CH4 TIM9_CH2 TIM2_CH4 OTG_HS_ULPI_D0 ADC123_IN3
6DIN622PA6 SPI1_MISO TIM8_BKIN TIM13_CH1 TIM3_CH1 TIM1_BKIN ADC12_IN6
7DIN723PA7 SPI1_MOSI TIM8_CH1N TIM14_CH1 TIM3_CH2 TIM1_CH1N RMII_CRS_DV ADC12_IN7
8DIN824PC4 ADC12_IN14
9GND
10GND
JP71ADC310PC2 SPI2_MISO OTG_HS_ULPI_DIR I2S2ext_SD ADC123_IN12
2AGND
JP81ADC29PC1 ADC123_IN11
2AGND
JP91ADC18PC0 TG_HS_ULPI_STP ADC123_IN10
2AGND
JP101DAC120PA4 SPI1_NSS SPI3_NSS USART2_CK OTG_HS_SOF I2S3_WS ADC12_IN4 DAC1_OUT
2DAC221PA5 SPI1_SCK OTG_HS_ULPI_CK TIM2_CH1_ETR TIM8_CHIN ADC12_IN5 DAC2_OUT
3GND
SW1S137PB7 I2S2_MCK TIM8_CH1 SDIO_D6 USART6_TX TIM3_CH1
2S238PB6 I2S3_MCK TIM8_CH2 SDIO_D7 USART6_RX TIM3_CH2
3S341PB5 MCO1 USART1_CK TIM1_CH1 I2C3_SCL OTG_FS_SOF
4S449PA15 JTCK-SWCLK
5S550PA14 JTDI SPI3_NSS I2S3_WS TIM2_CH1_ETR SPI1_NSS
6S657PA8 I2C1_SMBA CAN2_RX OTG_HS_ULPI_D7 TIM3_CH2 SPI1_MOSI SPI3_MOSI I2S3_SD
7S859PC6 I2C1_SDA FSMC_NL USART1_RX TIM4_CH2
8S758PC7 I2C1_SCL TIM4_CH1 CAN2_TX OTG_FS_INTN USART1_TX
GLCD1SPI2_SCK34PB13
2SPI2_MOSI36PB15
3LCD_SCS33PB12
microSD1SD251PC10
2SD352PC11
3SDCMD54PD2
5SDCLK53PC12
7SD039PC8
8SD140PC9
USBDM44PA11
DP45PA12

回路CAD Eagleのデータ

  • この回路はEagleCAD Standard版で作成しました。
  • fileSTM32F4LOGGER0_sch.zip回路図データとアートワークデータ。
    • このデータは両面二層基板で、Eagle light版で編集可能です。
    • このデータはFusionPCBに発注するために作成しました。FusionPCBにはEagle用のDRCファイルがあり、これを実行してエラーの無いことを確認したデータとなっています。このデータでP版等に発注される場合は、例えばP版で配布しているDRCを実行して、エラー箇所を修正してください。
    • このデータは下に書かれた問題点の修正がなされていません。
  • filemizdevice.lbr.zipEagle用自作部品ライブラリ。
    • 自由にご利用ください。

プリント基板発注の仕方

 FusionPCBは、中国の電子工作ショップSeeed Studioのホビー向けプリント基板製作サービスです。FusionPCBは桁違いの安さで有名になりました。品質のほうは、私の場合盛大にシルクがずれたりもした事もありましたが、価格を考えれば問題とはならないでしょう。 問題だと思う方は他にも良いPCB基板製作サービスがありますので、そちらを使うことをお勧めします。

使い方

  • 料金決済にはpaypalを使うと便利です。paypalアカウントを予め作っておきましょう。
  • Seeed Studioのアカウントも予め作っておく必要があります。
  • https://www.seeedstudio.com/depot/index.php?main_page=login
  • 上記URLでアカウントを作成します。
  • facebookアカウントもあると便利になるようです。
  • 下記URLでガーバーデータをアップロードし、テキストボックスを埋めてADD TO CARTボタンを押して、決済へと移行します。
  • http://www.seeedstudio.com/depot/fusion-pcb-service-p-835.html
  • テキストボックスの内容については、変更無しで9.9ドル、変更するのは主に基板サイズになると思います。送料は別になります。国際郵便で7ドルからになると思います。
  • 基板サイズはオーダー時の基板サイズ内なら自由ですが、最も狭いところでも20ミリ以上の幅が有ることが望ましいようです。
  • FusionPCBのシルクは裏表両面に入ります。面付けは対応していません。こちらで切断するなら話は別ですが。
  • データはFusionPCB用のDRCをエラー無しで通過する必要があります。DRCは上掲URLのページの下部からダウンロードできます。
  • 必要なガーバデータは拡張子GTL,GBL,GTS,GBS,GTO,GBO,TXTの7つです。これをzipで圧縮して、上掲URLからアップロードします。
  • 作業進捗は頻繁にメールで送られてきます。出荷された基板は国際郵便の追跡サービスで逐次追うことが出来ます。季節によっては、例えば春節にぶつかれば香港の郵便局で一週間以上足止めを食らうこともありえます。

ソフトウエア

  • WindowsやLinux上で作業
    • MACでのやり方が判ったら、情報提供求む。
  • 以下の順に作業を進める。
  1. STM32プログラム開発環境 を見て、gcc などのコンパイル環境を整える。
  2. GitHubからプログラムダウンロード
  3. プログラムのコンパイル main.binが作られる。
  4. STM32プログラム書き込み main.binを書き込む。

プログラムのコンパイル


必要なファイル

準備

作業

  • ここにあるようにstm32f4_dsp_stdperiph_lib.zip と shinonome-0.9.11p1.tar.bz2 と libnkf-1.0.0.tar.gz とSTM32F4x7xxT6_FatFs_DISP_20130710.7z をダウンロードしておく。
  • また、ruby が必要なので、ruby も別途、インストしておくこと。
$ mkdir ~/STM32F4  << これは何処でも良いけど、この後の作業エリアになる
$ cd ~/STM32F4
$ unzip stm32f4_dsp_stdperiph_lib.zip
$ mkdir fonts
$ cd fotnts
$ tar jxvf shinonome-0.9.11p1.tar.bz2
$ cd ~/STM32F4
$ tar zxvf libnkf-1.0.0.tar.gz 
$ 7z x STM32F4x7xxT6_FatFs_DISP_20130710.7z
$ git clone https://github.com/madnoda/stm32f4-glcd-logger.git
$ cd stm32f4-glcd-logger
$ make
  • main.bin が作られる。

プログラムをSTM32F4に書き込む

データの記録

  • ロガーにデジタル・アナログデータのSD記録機能を追加しました。
  • 「(デジタル+アナログ)記録」と「シリアル記録」は排他。
  • 三枚目の画面で設定
  • 起動時は、何の記録もしない。
  • シリアル記録は、いままで通り。
  • 「(デジタル+アナログ)記録」の場合、
    • 20分の1秒毎に512バイト記録
    • 512バイトの内訳は、
      • 1バイト目:西暦の下二桁
      • 2バイト目:月
      • 3バイト目:日
      • 4バイト目:時
      • 5バイト目:分
      • 6バイト目:秒
      • 7〜12バイト目:ゼロ
      • 13バイト目:デジタルデータ  1つ目
      • 14バイト目:アナログデータ1ch 1つ目
      • 15バイト目:アナログデータ2ch 1つ目
      • 16バイト目:アナログデータ3ch 1つ目
      • 17バイト目:デジタルデータ  2つ目
      • 18バイト目:アナログデータ1ch 2つ目
      • 19バイト目:アナログデータ2ch 2つ目
      • 20バイト目:アナログデータ3ch 2つ目
      • 以下繰り返し

プロジェクト


共通



最新の20件

2020-11-14 2014-11-10 2014-08-17 2013-12-23 2013-09-29
  • 液晶付きデータロガー
2013-08-09 2013-08-07 2013-08-03 2012-11-28 2012-08-25 2012-07-05 2012-07-03 2012-07-01

今日の15件

  • counter: 3604
  • today: 1
  • yesterday: 0
  • online: 1