デジタル鉄道模型フォーラムのご案内:
DCCやメルクリンなどのデジタル鉄道模型を楽しむ方が集まって、様々な話題でコミュニケーションできる場です。ぜひご登録ください!登録・利用は無料です。

2019年01月13日

LGT8F328Pを試す

以前にこのブログで紹介していた、ATMEGA328P互換のマイコン LogicGreen社LGT8F328P搭載のマイコンボード(Arduino nano互換, OCROBOT ALPHAベース?)をAliexpressのBAITE ONLINE STOREで購入し、届いたのでレビューします。

LGT8F328_nano4.jpg

いつも買っているNano互換ボードとの比較です。下側のArduino nano互換ボード(DSmainやDSairで使っているBAITEのコンパチ品)は、CH340GやATMEGA328を使ってます。外付け部品が多いですね。
一方で、LGT8F328Pを使ったボードは、USBシリアルにHetai HT42B534-1を使用しており、発振器などが省略できるチップが多く、コストダウンや基板の小型化に有利です。なお、HT42B534-1はWindows10では自動認識&ドライバ自動インストールでした。CH340より良いですね!

LGT8F328_nano.jpg

裏側には部品実装はありません。これも低コスト化の一環かと。

LGT8F328_nano2.jpg

■チップの概要

いくつかのページで解説されてます。

LogicGreen本家
ElectroDoragon
OCROBOT

元々は、ATMEGA88互換シリーズでLGT8FX8Dというものがあったようですが、強化したLGT8FX8Pというシリーズに今は置き換わっているようです。LGT8F328Pは、後者のシリーズに該当します。X=32(32KB FLASH)という意味です。

32KBと言ってますが、EEPROM分はデータFLASHを使用するので、実質は30KBしか使えません。ここは要注意です。

■導入方法

2種類あります。@OCROBOTのArduinoIDE互換開発環境をダウンロードするか、AArduino IDEに手動でパッケージを追加する(Larduino HSP, LogicGreen社提供の公式パッケージ)の2通りです。

@の場合は、関数や値の意味が、拡張されていて、ソフトを少し調整しないと(たとえばアナログ読み出しが10bitから12bitにされているなど→この仕様からは逃げられない)、動かないケースがあります。
素直に、Arduino IDEにパッケージ追加した方が互換性は維持できると思います。

Aの最新パッケージは、公式のダウンロードページにあります。

OCROBOT_IDE_4.png

■インストール方法

Larduino HSPのパッケージの中にinstall.txtがあるので、これを読んでインストール。と言っても、Arduino IDE 1.6.6以降の環境に、hardwaresとlibrariesフォルダの2つをまるごとコピーするだけなので簡単です。

■Arduino IDEのボード設定

ちゃんと導入できていると、こんな感じで選べます。
ボードの種類は「LGT8F328P-LQFP32 miniEVB」を選びます。

OCROBOT_IDE_3.png

■DSair2ハードで確認

・電源電圧 5V OK
・電源電圧 3.3V OK
・DCCパケット生成 OK
・CV読み出し OK (ただし、閾値は検出値に応じて調整しないといけない。)
・S88入力 OK
SDカードアクセス NGGPS_NMEA様のライブラリにして対応。

SDカードアクセスだけ、そのままのスケッチでは失敗します。ArduinoのSDカードライブラリまんまなので、何かうまく動かないところがあるのだと思います。

LGT8F328_nano3.jpg

■まとめ

・32MHzの威力は不明(DSair2スケッチは無駄時間が多すぎるため・・・)
・特にArduinoとの違いを感じずに使える。
・analogReadが10bitではなく12bit(4倍)で出てくる。つまり精度が良くなっている。
・普通のATMEGA328Pとの切り替えには、__LGT8FX8P__が自動で定義されるので、これをうまく利用すれば良い。以下例。

#ifdef __LGT8FX8P__
#define ADC_SHIFT 2
#else
#define ADC_SHIFT 0
#endif

■テスト版スケッチ一式

r2j TEST版(細かいところまでテストできてません、ATMEGAとLGT8F兼用できます)

DSairFirmware_r2j_TEST.zip

----------------------------------

普通に動くことは分かったのですが、これを活用していろいろやるか!と言われると実は悩ましいところで、ADCの精度が上がったこと、32MHzの高性能化は喜ばしいのですが、他の機能はそれほど大きな違いはないので、どう扱おうかなと言うところです・・・。
仮に、DMACやペリフェラルが強化されていると、一気に話が変わるのですが・・・。S88ラインにUARTとかI2Cを別チャンネルで出せたら、大きなメリットになってきます。

妙案がある方は、ぜひとも教えて頂ければ幸いです。
posted by yaasan at 09:55 | Comment(0) | ガジェッド

2018年12月20日

FlashAirだからできること

Wi-Fi無線モジュールは、色々な会社から出ています。ESPは超有名で、1000円弱で気軽に買えます。u-bloxのモジュールは、産業機器や、はたまた次世代Arduino UNOにも入ってますね。

しかし、どれもこれも、弱点があります。それは、Wi-Fiはとりあえず繋げてくれ、TCP/IPのスタックくらいはあるけど、ちゃんと動かすためのHTTPサーバーとかのWebの処理をホストマイコンに依存していることです。そしてそれらの処理は、非常に重く、ホストマイコンにはそれなりにリッチなものが要求されます。さらに、Webのデータはそれなりに重いので、アクセススピードの速い、フラッシュメモリも大きい物が必須です。普通に考えて、無理です。
やろうとすれば、産業機器なんかだと、PLCとかのコントローラより上の機器でないとコストは全く合わないですし、PLCであってもIPCなどの高級な機種に限定されるでしょう。

なので、まともに設計すると、コストが合わないのが目に見えるので、こういう場合は、Wi-Fiは選択せずに、BLEとかLPWA、Zigbeeとかの軽量な無線通信の方に逃げます。基本的に電力の問題が特になければ、本当はWi-Fiを使いたいはずです。

そこで出てくるのがFlashAirです。Wi-Fi化におけるコスト、性能を全て担保できる唯一の機器向け無線モジュールデバイスです。唯一の条件としては、SDカードスロットさえあれば良いのです。
高機能なWebサーバーをSDカードで実現できる、PLC階層以下の環境の機器におけるIoT対応のオフロードエンジンです。マイコンは貧弱でもOK。使わないときはカードを入れなければコストも掛かりません。

私がメインに採用しているFlashAirは、その点、ホストマイコンのオフロードエンジンの役目をかなり担ってくれており、ホストマイコンが貧弱、もしくは機能がほとんどなくても、FlashAirに機能をLuaスクリプトをファイルとしておいておけば、それだけでかなりリッチなことができます。

さらにWi-Fiでブラウザアクセス(&クラウド通信)すると言うことは、ユーザーが手に持つスマホ(もしくは上位のクラウド)に処理を任せることもできるわけです。これは非常に大きいです。機器内部でコストを掛けて全部やる必要は無いのです。ここがFlashAirのポテンシャルの大きさを実現している最大のポイントです。

FlashAirは、カメラ用のWi-Fi送信用として当初は出ていましたが、今はIoT用に様々な機器のインターネット接続を実現するデバイスという位置づけの方が強くなりつつあります。DSairでも、この部分で大きく助けられています。

多くの技術者は、FlashAirの中身やポテンシャルを理解していないでしょう。既存の機器のIoT化の救世主が、FlashAirであると私は考えます。既に無線IoT化した機器において、あえてFlashAirを使わないことで、実現できなかったことがたくさんあるんじゃないでしょうか。

DSair2では、FlashAirの限界までの機能を使い切ることを目標にしています。鉄道模型のコントローラとして、最高の環境を実現したいと思ってます。それをするには、FlashAirが必須不可欠。
posted by yaasan at 08:31 | Comment(0) | ガジェッド

2018年10月09日

DSair2 チャレンジャーキット フライングが多すぎます!

<<限定数を超えたため、DSair2のキット申し込み受付を終了しました(2018/10/10 7:00)>>

DSair2が、DCC電子工作連合のメンバーを中心に評価して頂いてます。以下は、DSair2向けの、CV読み出し対応ファームウェア&ステータス情報を読み出す機能を足したテストアプリです。

DSshieldFlashAir_r2a.zip

DSair2のチャレンジャーキットですが頒布しようと思ったのですが、残り2枚となっております。フライング多数により、衝突が起きることは目に見えておりますので、いったんチャレンジャーキットは受付しないこととしました。

表面実装部品を取り付け済みの基板(R1c)を、早期に製造できるように準備しますので、今しばらくお待ち下さい。なお表面実装部品版については、予約受付を本日よりいたしますので、予約される方は管理人・DesktopStationの代表メールまでメールをください。準備ができ次第、ご連絡させていただきます。なお、フライングユーザーは、申込み済みとさせていただきます。

頒布予定価格: 6800円(ケース付属、表面実装部品は実装済+DIP部品付属、Arduino nanoボードはスケッチ未書き込みです。ACアダプタ・フィーダ線・USBケーブルは付属しません)
発送予定時期: 11月初旬(中国税関の混み具合と、Elecrowの部品実装完了次第)

申込みのルール:
・デバッグへの協力をしていただける方向けです。電子工作に精通されたから向けであり、一般ユーザー向けではございません。
・この価格にはサポート費用が含まれません。つまり、故障や不具合が発生してもサポートがありません。
・設計上の不具合が発見された場合、急遽、提供を中止する場合があります。
posted by yaasan at 18:51 | Comment(1) | ガジェッド

2018年09月29日

レーザー印字機が欲しい

スマイラーさんの新型スマイルライターの様子を見ると、アクリル板に絵や文字を入れるだけでも十分、価値があるなと思いました。

DSair2のケースを製造していますが、お客さん毎に、シリアル番号や何らかのコードを印字(マーキング)だけでもできればと思いました。

Aliexpressをいろいろ見ると、NEJE製のDK-8-KZ (1Wレーザー切削機)が、75USD弱で、お安く使い勝手も良さそうです。

印字できるのは、以下のような部材とのことです。

・革
・紙
・木材
プラ
基板

基板とプラに使用できるので良いのですが、レーザーの交換が3ヶ月〜1年毎に行う必要はあるようです。
posted by yaasan at 12:19 | Comment(0) | ガジェッド

2018年09月17日

Flashair のクセ

DSair2 向けにflashairの共有メモリを介したソフトを書いています。DSair2からは、かなり密接に通信を実装しているのですが、色々とクセが見えて来ました。
・共有メモリへのアクセス(一回の関数コール)で、どんなデータサイズでも512バイトの書き込みがある。オーバーヘッドが非常にでかい。
・共有メモリへのデータはテキスト(ASCII)しか受け付けない模様。ヘキサで書けそうに見えて書けない。読めない。

書き込みデータサイズがでかいので、SPI通信時間が長くなり、DCCパケットエンジンやその他の管理動作に影響大です。短くできないか、iSDIOの仕様書を見て短縮できないか確認しています。

posted by yaasan at 12:03 | Comment(0) | ガジェッド