2020年2月29日土曜日

透明アクリル8セグメントLED (サポートページ)


概要

このページは「透明アクリル8セグメントLED」のサポートページです。
内容は、取扱説明書と同じです。


「透明アクリル8セグメントLED]とはアクリル板に筋目を入れ、下部からLEDで照らすことで筋目を浮かび上がらせ、複数のアクリル板を組み合わせることで数字を表現する表示部品です。

 LEDドライバIC(MY9221)を使用しています。LEDの制御はdata, clock, 電源, GNDの4線(通信線は2本)で行います。ドライバICには通信線の出力があるので、信号線を直列に接続して複数個(桁)の制御が可能です。

サポートの範囲は、このページ・取扱説明書にある情報のみとなります。ドライバIC(MY9221)の制御方法や、マイコンのプログラミングに関しては受け付けておりません。
これらについては、各自で対応してください。

製品そのものにかかわる問い合わせは、このページのコメント欄に記載してください。
(対応は公開で行います。)


LEDの制御にはLEDドライバICMY9221SSを使用しています。これにより、制御はシリアル2線(data, clock)で行うことができ、MY9221SS同士をシリアル線で連結することにより多桁表示ができます。





多桁使用例(デジタル時計) 販売: minneサイト  

サンプル回路としてmbed(LPC1768)を使った回路、プログラム例を用意しています。

寸法


回路図






電子部品一覧

記号
部品名
購入先(すべて秋月電子通商)
IC1
MY9221SS
通販コード: I-09677
LED1LED8
白色:OSWT1608
緑色:OSTG1608C1A
青色:OSBL1608
橙色:OSOR1608C1A
ウォームホワイト:OSMW1608C1A
通販コード
白色:I-03986
緑色:I-06417
青色:I-03982
黄色:I-03984
橙色:I-06416
ウォームホワイト:I-09640
R1R3
3kΩ 0603チップ抵抗
通販コード: R-06302
CONN1,CONN2
5Pinピンヘッダ
通販コード: C-06631
5Pin ピンソケット
通販コード: C-10073

部品のデータシートは秋月電子通商のサイトにあります。

サンプル回路・プログラム

mbed(LPC1768)で、2桁の表示をさせるプログラムを用意しましました。

最新のmbedライブラリでは動作しません。(デジタル出力に関する動作がプログラム作成時とは異なっているようです)このソースプログラムに同梱されているmbedライブラリを使用してください。最新のmbedライブラリへの対応は行いません。このプログラムは動作確認用としてのみ提供します。

binファイルをmbed(LPC1768)にコピーすればそのまま動作します。

実体配線図

以上

ESP32でのシリアル受信処理が最後まで完了しない対応


fix for "realtime uart" in esp32-hal-uart.c #1674

に対応方法があった。


 1.シリアル受信で受信データが途中までしか取り出せない
 これは、ESP32の受信関数の設定の問題
 ....\Arduino\hardware\espressif\esp32\cores\esp32\esp32-hal-uart.c
 のファイル内の
 void uartEnableInterrupt(uart_t* uart)
{
    UART_MUTEX_LOCK();
    uart->dev->conf1.rxfifo_full_thrhd = 1;  //112;   ←ここ!
    uart->dev->conf1.rx_tout_thrhd = 2;
    uart->dev->conf1.rx_tout_en = 1;
    uart->dev->int_ena.rxfifo_full = 1;
    uart->dev->int_ena.frm_err = 1;
    uart->dev->int_ena.rxfifo_tout = 1;
    uart->dev->int_clr.val = 0xffffffff;

    esp_intr_alloc(UART_INTR_SOURCE(uart->num), (int)ESP_INTR_FLAG_IRAM, _uart_isr, NULL, &uart->intr_handle);
    UART_MUTEX_UNLOCK();
}

uart->dev->conf1.rxfifo_full_thrhd = 1;  //112;   ←ここ!
を1にすればよい。ここに設定した数字までデータがたまらないとSerial.available()の戻り値が応答しない

2018年11月24日土曜日

MDX-20 controler(mbed LPC1114)設計データ

ひとつ前のblogでmbed(LPC1768)でコントローラを作りましたが、マイコンが7000円と高いので、LPC1114で作り直しました。マイコンは200円なのでだいぶ下がります。

ただし、処理能力が低いので、SDカードからMDX-20への転送速度が遅く、ぎりぎり使い物になる程度です。
転送速度が遅いので、ブレットボードでの動作確認までして、開発を止めました。

ここでは設計データを残すために資料をまとめました。

LPC1114と各部品の接続とprogram はここに置いておきます。

190102 UARTの配線ミスの修正をおこないました。Programにも、MDX-20へのデータ送信で、MDX-20からの停止指示(CTS)が来ても送信する不具合がありますが、これは修正していません。


2018年11月23日金曜日

MDX-20 controler(mbed LPC1768) 設計データ


設計、プログラムのデータをまとめました

回路図は作らず、mbedと部品間の接続関係の資料を作りました。(PCBは作らずユニバーサル基板でつくったので)
190102 UARTの配線の間違いと、Programの修正を行い、データを更新しました。
回路データ、mbedProgramのリンク

このコントローラはfusion360で作成したRMLデータをMDX-20に流し込むために作りました。
MDX-20では、ユーザー原点の設定ができませんでしたが、このコントローラでそれを可能にしました。
RMLデータはUSBメモリでコントローラに供給します。
コントローラがMDX-20を制御するので、パソコンは不要です。

MDX-20の通信コネクタの情報と、Fusion360でのRMLデータ出力設定については、下記のblogを参照してください。

これまでのMDX-20コントローラ作成のblog

MDX-20を使う


mbed LPC1768で作るMDX-15/20 controler

(経過報告)MDX-15/20のコントローラをmbedLPC1768でつくる

Fusion360の設定

fusion360のCAMデータをMDX-15/20で使用する

2018年11月11日日曜日

M5Stackシリーズの機能一覧

性能の違いが判らなかったので一覧表を作成した。

データ元はこちら


FIREが特殊。
BASICとM5GOが同じ。
GRAYはBASIC,M5GOにMEMSを追加
といった感じ。

2018年11月10日土曜日

M5stack GrayでMLX90640(サーマルカメラ)のサンプルプログラムを動かす。

MLX90640(M5Stak用ミニサーマルカメラユニット)M5Stack Grayを使うための手順をまとめました。

販売元のwebには、
M5BurnerでM5GO / M5Stack FIREにファームウェアを書き込むとモジュールが動作可能となり、Arduino IDEでプログラムできるようになります。」

とあり、M5Burner付属のM5GO, M5Stack FIREのfirmwareを書き込み、arduino sample programを書き込み試してみましたが、i2c driverで "nat ack read"が出て動きませんでした。
ここまではarduinoIDEのボード選択は"M5Stack-Core-ESP32"

この後で、arduinoIDE Borads Managerで、"M5Stack-FIRE"のボードデータがあったのでこれに入れ替えて、再度上記のM5Burnerでのfirmwareを書き込んでやっていましたが駄目でした。

(M5BurnerでのfirmwareとarduinoIDEのボード選択の違いは理解していません)

販売元のwebには、
「・・・M5BurnerでM5GO / M5Stack FIREにファームウェアを書き込むとモジュールが動作可能・・・」
の意味ですが、新しいfirmwareでは Wire.endTransmission()の戻り値が拡張されており、既存のfirmwareではエラーになることの対応です。

ですが、上記の動作確認では対応できませんでした。

M5Stack Grayでは、Wire.endTransmission()の戻り値の判定を旧のものにあわせれば動くようになります。

MLX90640_I2C_Driver.cpp 

42行目
if (Wire.endTransmission(false) != 7) //Do not release bus
if (Wire.endTransmission(false) != 0) //Do not release bus

にするとエラーが出なくなります。


あと、M5StackのLCD表示が無駄に回転しているようなので、
MLX90640.cpp 119行目(setup()内)
M5.Lcd.setRotation(1);
をコメントアウトします。

これで、firmwareを入れ替えなくても、M5Stack Grayで動くようになります。


備考:
M5Stack にはBasic, Gray, FIRE, GO がありますが、この違いがよくわかりません。

M5Burnerでfiwmwareを書き込めますが、これにはBasci, Gray名義のfirmwareがないので、どれを選択すべきか変わりません。

arduinoIDEのボード選択と、M5Burnerのfirmwareの関係が分かりません。

M5BUrenerには"UNIT_THERMAL_V0.1"というfirmwareがあります。これを書き込むとサンプルプログラムなしでサーマルカメラの動作確認ができます。