液晶付きデータロガー †
液晶付きデータロガーとは †
- 野田篤司と水城徹が、自作した携帯型デジタルオーディオプレーヤー。
- 主に野田が回路設計とプログラミングを担当し、水城がプリント基板のパターン設計および配線を行った。ケースへ入れるなど最終組立は、個々が行なっている。
- 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のピン番号 | 他の機能 |
JP1 | 1 | USART1_TX | 42 | PA9 TIM1_CH2 I2C3_SMBA OTG_FS_VBUS |
2 | USART1_RX | 43 | PA10 TIM1_CH3 OTG_FS_ID |
3 | GND | | |
JP2 | 1 | GND | | BOOT切り替えSW用 |
2 | BOOT0 | 60 |
3 | 10kΩでプルアップ | |
JP3 | 1 | GND | | バッテリー接続用 |
2 | 電池プラス | |
JP4 | 1 | JP2-2 | | 電源SW用 |
2 | BOOT0 | |
3 | USBの5V側 | |
JP5 | 1 | VCC | | |
2 | I2C1 SCL | 61 | PB8 TIM4_CH3 TIM10_CH1 OTG_FS_SCL |
3 | I2C1 SDA | 62 | PB9 SPI2_NSS I2S2_WS TIM4_CH4 TIM11_CH1 OTG_FS_SDA I2C1_SDA |
4 | GND | | |
JP6 | 1 | DIN1 | 11 | PC3 SPI2_MOSI I2S2_SD OTG_HS_ULPI_NXT ADC123_IN13 |
2 | DIN2 | 14 | PA0 USART2_CTS USART4_TX TIM2_CH1_ETR TIM5_CH1 TIM8_ETR ADC123_IN0 WKUP |
3 | DIN3 | 15 | PA1 USART2_RTS USART4_RX TIM5_CH2 TIMM2_CH2 ADC123_IN1 |
4 | DIN4 | 16 | PA2 USART2_TX TIM5_CH3 TIM9_CH1 TIM2_CH3 ADC123_IN2 |
5 | DIN5 | 17 | PA3 USART2_RX TIM5_CH4 TIM9_CH2 TIM2_CH4 OTG_HS_ULPI_D0 ADC123_IN3 |
6 | DIN6 | 22 | PA6 SPI1_MISO TIM8_BKIN TIM13_CH1 TIM3_CH1 TIM1_BKIN ADC12_IN6 |
7 | DIN7 | 23 | PA7 SPI1_MOSI TIM8_CH1N TIM14_CH1 TIM3_CH2 TIM1_CH1N RMII_CRS_DV ADC12_IN7 |
8 | DIN8 | 24 | PC4 ADC12_IN14 |
9 | GND | | |
10 | GND | | |
JP7 | 1 | ADC3 | 10 | PC2 SPI2_MISO OTG_HS_ULPI_DIR I2S2ext_SD ADC123_IN12 |
2 | AGND | | |
JP8 | 1 | ADC2 | 9 | PC1 ADC123_IN11 |
2 | AGND | | |
JP9 | 1 | ADC1 | 8 | PC0 TG_HS_ULPI_STP ADC123_IN10 |
2 | AGND | | |
JP10 | 1 | DAC1 | 20 | PA4 SPI1_NSS SPI3_NSS USART2_CK OTG_HS_SOF I2S3_WS ADC12_IN4 DAC1_OUT |
2 | DAC2 | 21 | PA5 SPI1_SCK OTG_HS_ULPI_CK TIM2_CH1_ETR TIM8_CHIN ADC12_IN5 DAC2_OUT |
3 | GND | | |
SW | 1 | S1 | 37 | PB7 I2S2_MCK TIM8_CH1 SDIO_D6 USART6_TX TIM3_CH1 |
2 | S2 | 38 | PB6 I2S3_MCK TIM8_CH2 SDIO_D7 USART6_RX TIM3_CH2 |
3 | S3 | 41 | PB5 MCO1 USART1_CK TIM1_CH1 I2C3_SCL OTG_FS_SOF |
4 | S4 | 49 | PA15 JTCK-SWCLK |
5 | S5 | 50 | PA14 JTDI SPI3_NSS I2S3_WS TIM2_CH1_ETR SPI1_NSS |
6 | S6 | 57 | PA8 I2C1_SMBA CAN2_RX OTG_HS_ULPI_D7 TIM3_CH2 SPI1_MOSI SPI3_MOSI I2S3_SD |
7 | S8 | 59 | PC6 I2C1_SDA FSMC_NL USART1_RX TIM4_CH2 |
8 | S7 | 58 | PC7 I2C1_SCL TIM4_CH1 CAN2_TX OTG_FS_INTN USART1_TX |
GLCD | 1 | SPI2_SCK | 34 | PB13 |
2 | SPI2_MOSI | 36 | PB15 |
3 | LCD_SCS | 33 | PB12 |
microSD | 1 | SD2 | 51 | PC10 |
2 | SD3 | 52 | PC11 |
3 | SDCMD | 54 | PD2 |
5 | SDCLK | 53 | PC12 |
7 | SD0 | 39 | PC8 |
8 | SD1 | 40 | PC9 |
USB | | DM | 44 | PA11 |
| DP | 45 | PA12 |
回路CAD Eagleのデータ †
- この回路はEagleCAD Standard版で作成しました。
- STM32F4LOGGER0_sch.zip回路図データとアートワークデータ。
- このデータは両面二層基板で、Eagle light版で編集可能です。
- このデータはFusionPCBに発注するために作成しました。FusionPCBにはEagle用のDRCファイルがあり、これを実行してエラーの無いことを確認したデータとなっています。このデータでP版等に発注される場合は、例えばP版で配布しているDRCを実行して、エラー箇所を修正してください。
- このデータは下に書かれた問題点の修正がなされていません。
- mizdevice.lbr.zipEagle用自作部品ライブラリ。
プリント基板発注の仕方 †
FusionPCBは、中国の電子工作ショップSeeed Studioのホビー向けプリント基板製作サービスです。FusionPCBは桁違いの安さで有名になりました。品質のほうは、私の場合盛大にシルクがずれたりもした事もありましたが、価格を考えれば問題とはならないでしょう。
問題だと思う方は他にも良いPCB基板製作サービスがありますので、そちらを使うことをお勧めします。
使い方
- 下記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上で作業
- 以下の順に作業を進める。
- STM32プログラム開発環境 を見て、gcc などのコンパイル環境を整える。
- GitHubからプログラムダウンロード
- プログラムのコンパイル main.binが作られる。
- STM32プログラム書き込み main.binを書き込む。
プログラムのコンパイル †
必要なファイル †
- STM32F4のライブラリ
- 漢字・英字フォント
- 漢字変換 JIS SJIS EUCJP UTF の相互変換を行うライブラリ
- libnkf
から、libnkf-1.0.0.tar.gz をダウンロード。
- ねむいさんのブログよりダウンロードしたライブラリー
- STM32F4x7xxT6_FatFs_DISP_20130710.7z
準備 †
作業 †
- ここにあるように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
プログラムを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