< fantastic_next_gen_msx_001.html < linkdetail01.htm < indextable01.htm < index.html

tack Developers Group Homepage!

<<< grove_creator_kit_on_msx0_mycheck_01_001.html >>>

<<< Grove Creator Kit on MSX0 My Check 01 001 >>>


(KENT-WEB-San Dream Counter... 2024R06-0420-SAT-1720)

LINKS:
Grove Creator Kit | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Creator-Kit-1/
>


2024R06-0625-TUE

2024R06-0625-TUE-1226
Check On MSX0:

Grove - Button, Grove - Switch(P)も、同様のソースコードで実行可能です(Grove - Buzzer。Hub接続)。
実際、Buzzerのトリガーとして、"Grove - Magnetic Switch" or "Grove - Light Sensor v1.2" or "Grove - Vibration Sensor(SW-420)"など全てのGPIO デジタルでデバイスから、MSX0 M5Stack core2へ送信されるもの、つまり_IOTGET("device/analog/in",A)で操作されるものは動作可能。

センサーの値+Buzzerが構成できるようなデバイスはみな可能という事ですね。

① SKU 5696 M5Stack用拡張ハブユニット [U006]
② Grove - Buzzer(Connenct by Cross Cable)
③ Cross Cable
④ "Grove - Button" or "Grove - Switch(P)" or …

500 'SAVE"MAGBUZ3.BAS"
510 'SOURCE IS "ANALOG_G.BAS"
520 CLS:FG=0
530 _IOTGET("device/analog/in",A)
540 LOCATE 0,5:PRINT A;"     "
550 IF A=4095 THEN GOSUB 570 ELSE GOSUB 630
560 GOTO530
570 'Buzzer ON (High)
580 IF FG=1 THEN 620
590 _IOTPUT("device/analog/out",4095):TIME=0
600 IF TIME < 60 THEN 600
610 FG=1
620 RETURN
630 'Buzzer OFF (Low)
640 IF FG=0 THEN 680
650 _IOTPUT("device/analog/out",0):TIME=0
660 IF TIME < 60 THEN 660
670 FG=0
680 RETURN
以上。

12:48
うん?Analog値の操作も可能でしょうか?となると、テストには、Grove - Rotary Angle Sensorがいいでしょうか?まあそうなると、Buzzerではなく、アナログ値をMSX0へ送信するデバイスがいいですね。


2024R06-0601-SAT

2024R06-0601-SAT-0603
Cross Cable2本目:

先ほど念のため、2本目のクロスケーブルを作成。

12:46
GROVE - Creator Kit γ — スイッチサイエンス
https://www.switch-science.com/products/7582
ガンマ(Gamma, γ) デバイスリスト。

13:34
Buzzerは_IOTPUT outなので、これを使うとするともう一つのデバイスは_IOTGET inのセンサーになる。Buzzerの代わりにLEDを使うとしても同じ。
① _IOTGET in: デバイスの値をMSX0 M5Stack core2に取り込む(GETする)
② _IOTPUT out: MSX0 M5Stack core2からデバイスへ値を出力してデバイスに何らかの動作をさせる

・ブザー(Buzzer): デジタル出力だがMSX0では形式上アナログ出力 ② MSX0 M5Stack core2から、デバイスへHIGH(4095)を出力するとブザー(Buzzer)が鳴り続ける。デバイスへLOW(0)を出力するとブザーが止まる。


2024R06-0531-FRI

2024R06-0531-FRI-0923
Multi-Device:
 
① SKU 5696 M5Stack用拡張ハブユニット [U006]
② Grove - Buzzer(Connenct by Cross Cable)
③ Cross Cable
④ Grove - Light Sensor

・M5Stack用拡張ハブユニット [U006] — スイッチサイエンス
https://www.switch-science.com/products/5696
・Grove Creator Kit ~ Grove - Buzzer | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Buzzer/
・クロスケーブル作成方法 →【MSX0】BUZZER.PAS【Turbo Pascal】 #Pascal - Qiita
https://qiita.com/ht_deko/items/8bde669981ab50ffef79
・Grove Creator Kit ~ Grove - Light Sensor | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Light_Sensor/

PortBにHubをつなぎ、Hubに、クロスケーブルでBuzzerを、通常ケーブルで光センサーをつなぎます。

以下は光センサーを覆って値を0にするとブザーが鳴るというMSX-IOTBASIC コードです。

500 'SAVE"LIGTBUZ2.BAS"
510 'SOURCE IS "ANALOG_G.BAS"
520 CLS
530 _IOTGET("device/analog/in",A)
540 LOCATE 0,5:PRINT A;"     "
550 IF A=0 THEN GOSUB 570 ELSE GOSUB 610
560 GOTO530
570 'Buzzer ON
580 _IOTPUT("device/analog/out",4095):TIME=0
590 IF TIME < 60 THEN 590
600 RETURN
610 'Buzzer OFF
620 _IOTPUT("device/analog/out",0):TIME=0
630 IF TIME < 60 THEN 630
640 RETURN

(※停止操作は、リモートコントロールパネルでは、Ctrl+F12で停止。msxtermではCtrl+Cで停止。)

改:
ブザーが鳴っている時は鳴らすルーチンをスキップ。ブザーが止まっている時は止めるルーチンをスキップ。

500 'SAVE"LIGTBUZ3.BAS"
510 'SOURCE IS "ANALOG_G.BAS"
520 CLS:FG=0
530 _IOTGET("device/analog/in",A)
540 LOCATE 0,5:PRINT A;"     "
550 IF A=0 THEN GOSUB 570 ELSE GOSUB 630
560 GOTO530
570 'Buzzer ON
580 IF FG=1 THEN 620
590 _IOTPUT("device/analog/out",4095):TIME=0
600 IF TIME < 60 THEN 600
610 FG=1
620 RETURN
630 'Buzzer OFF
640 IF FG=0 THEN 680
650 _IOTPUT("device/analog/out",0):TIME=0
660 IF TIME < 60 THEN 660
670 FG=0
680 RETURN

うん?_IOTGET("device/analog/in", A)と_IOTPUT("device/analog/out", ?)だったからですね…。

(2024R06-0604-TUE-1643 上記のソースコードで、Vibration Sensor, Magnetic Sensorも使用可能。他にも行けそうです。)


2024R06-0530-THU

2024R06-0530-THU-1528
Buzzerの要領:

この要領で行くと、IOTPUTのout。MSX0の場合、機器(デバイス)に送ったGPIOアナログ/デジタルの数値などで機器(デバイス)に動作をしてもらう。Buzzerの他はLEDしか思い浮かばないですが…。

21:24
Seeedの光センサーはSAMPLE.TXTの中の”ANALOG_G.BAS”で動きます。
Grove - Light Sensor | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Light_Sensor/
使用可能、ANALOG_G.BAS

10 'SAVE"LIGHT01.BAS"
15 'SOURCE IS "ANALOG_G.BAS"
20 CLS
30 _IOTGET("device/analog/in",A)
40 LOCATE 0,5:PRINT A;"     "
50 GOTO30

こちらはアナログ入力の_IOTGET、inなので通常ケーブルでいいです。うん?


2024R06-0528-TUE

2024R06-0528-TUE-1123
クロスケーブル:
Grove - Buzzer::

Grove - Buzzer | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Buzzer/

500 'SAVE "BUZ01.BAS"
510 CLS
520 _IOTPUT("device/analog/out", 4095)
530 FOR I=0 TO 2000:NEXT I
540 _IOTPUT("device/analog/out", 0)
550 FOR I=0 TO 2000:NEXT I
560 END

全く鳴りません。

Ninune-wa師匠に相談しました。ここがクロスケーブルを使うところでした。あと、LOOPのCodeもあらためて教わりました。

【MSX0】BUZZER.PAS【Turbo Pascal】 #Pascal - Qiita
https://qiita.com/ht_deko/items/8bde669981ab50ffef79
クロスケーブルの作り方。「マイナスの精密ドライバー (100 均で買えます) でコネクタのツメを持ち上げながら線を引っ張ると、ピンを抜く事ができます。」

僕はまだよくわかっていませんが、Seeed Technology社製の、センサーなどをMSX0Stack core2およびM5Stack core2のPortBで使用する場合、GPIOアナログ出力(MSX0の場合GPIOデジタル出力でも?)つまり_IOTPUT("device/analog/out",?)を使うとき、クロスケーブルが必要のようです。

・MSX0 M5Stack core2もしくはMSX0Stack core2のPortBにクロスケーブルで接続:
500 'SAVE "BUZ01.BAS"
510 CLS
520 _IOTPUT("device/analog/out", 4095)
530 TIME=0
540 IF TIME < 60 THEN 540
550 _IOTPUT("device/analog/out", 0)
560 TIME=0
570 IF TIME < 60 THEN 570
580 END

・Seeeduino Lotus v1.2のD6(Digital 6番)に接続。Arduino IDEでは:

void setup()
{
  pinMode(6, OUTPUT);
}

void loop()
{
  digitalWrite(6, HIGH);
  delay(1000);
  digitalWrite(6, LOW);
  delay(1000);
}

// digitalWriteですね。


2024R06-0509-THU

2024R06-0509-THU-1705
DHT11をMSX0 M5Stack core2で使用:

SAMPLE.TXTにある通り、DHT_KNJ.BASは、DHT11の場合、PortCを使います。この場合、GPIO通信接続としてポートを使い、UART通信はしていないとの事です。そして、DHT11をPortCに繋ぐとWiFiが使えません。ですので、M5GO Battery Bottom2を装着している場合は、M5 FACESⅡを装着しFACES Keyboardを使ってload/runするようです。


2024R06-0507-TUE

2024R06-0507-TUE-1326
Grove Creator Kit γ(gammaガンマ):

Seeedセンサー/アクチュエータなどには何のセンサー/アクチュエータかわかるように基板に名前が書いてありますね。


2024R06-0429-MON

2024R06-0429-MON-1156
温度センサー on Seeeduino Lotus v1.1:

Grove - Temperature Sensor V1.2 | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Temperature_Sensor_V1.2/
Arduinoで動きました。Analog0端子(A0)に繋ぎました。計算式があります。生数値チェックするのを忘れてしまってしまいました。

まあ、このサンプルコードの数式をIOTBASICに移植すればわかりますが。18:44 LOGのところが『Illegal function call』で動きません。MSXBASICはデフォルトで浮動小数を扱えるそうですが…。生数値をチェックしよう。(2024R06-0526-SUN-0733 それぞれ生数値チェック。Seeeduino Lotus v1.2のArduino IDEでは、”analogread = 487”。MSX0 M5Stack core2のMSX-IOTBASICでは、”A = 2922”。え?おまけに割ったらちょうど6。偶然?)

ところで、FACESⅡのバッテリーが壊れた様子です。(2024R06-0509-THU-0932 FACEⅡを取り外し、背面スイッチを0にして結構な間、放置したところ、直りました。充電できます。ちょっと意味が分かりませんが、直ったようです。)


2024R06-0424-WED

2024R06-0424-WED-0635
MSX0解説:

『MSX0 Stack』の操作方法 - ハードウェア #MSX - Qiita
https://qiita.com/ht_deko/items/cdb1594e9879a5e9e660
ここは凄い。相変わらず読み落としていました。反省。

07:19
調べてみます:

DHT11がUARTなのですか。Arduinoでは?D2と書いてあったような。調べてみます。

温湿度センサDHT11をライブラリなしで使ってみた【Arduino】 #Arduino - Qiita
https://qiita.com/Ko_Kiduchi/items/9eed09e4e24ecb6e5393

うん?Seeeduino LotusのArduino IDEでDHT11をテストしていなかったっけ?覚えていない。ライブラリーをインストールした記憶がないからやっていないんだろう。DHT20がGrove Beginner Kitに、DHT11がGrove Creator Kit γにある。ライブラリーは最新のものをインストール。DHT11の場合はコメントを書き換える必要があるとか。定かでないです。

Grove Beginner Kit for Arduinoの温湿度センサーがアップデート - Seeed K.K. エンジニアブログ
https://lab.seeed.co.jp/entry/2022/12/26/120000
>


2024R06-0423-TUE

2024R06-0423-TUE-1024
MSX0 M5Stack core2のIOTBASICで対応済みかのチェックの簡略化:

アナログセンサーの場合には、センサーの値を照合するといいでしょうか?初めにサンプルが正常動作するSeeeduino Lotusでセンサーの値を調べてから、MSX0 M5Stack core2でセンサーの値を得て照合する。値が違うならばMSX0 M5Stack core2のIOTBASICでは未対応という事になります?ですよね?

21:06
読み落とし:

きちんと読んでいなかったです。pdfも全部読んでいる人は凄い。僕はどこまで読んだか覚えていません。これをこなす人が使いこなせる人なのでしょう。


\DOC\SAMPLE.TXT
DHT_KNJ.BAS :MSX0起動時にPortAにDHT20が接続されていればDHT20を利用します。そうでなければPortCにDHT11が接続されている想定で動作します。(2024R06-0424-WED-0647 MSX0 M5Stack core2でのDHT11の動作確認。ちょっと誤差があるかな?)


2024R06-0422-MON

2024R06-0422-MON-1245
Seeed Studio - Grove Creator Kit gamma (40):

まず、Groveコネクター(グローブコネクター)に取り付けたセンサー/アクチュエータが、MSX0 M5Stack core2のIOTBASICで動くかどうかを試します。

そもそも、MSX0 M5Stack core2はベースがM5Stack社(エムファイブ スタック社)のマイコン製品です。M5Stack社はGrove互換コネクター搭載の自社製マイコンと自社製マイコン用センサー/アクチュエータなどを製造・販売しています。GroveコネクターはSeeed Technology社(シード テクノロジー社)が開発していて、そのSeeed Technology社は自社でも、マイコンボードであるArduinoボード規格遵守のArduino UNO(アルドゥイーノ ウノ)という開発用マイコンボードを製造・販売しています。さらにSeeeduino Lotus(シードゥイーノ ロータス)というUNO互換の廉価版マイコンボードもあります(これは、Grove Beginner Kitに付属しています)。それら用にGroveコネクター規格のセンサー/アクチュエータなどを出していて、そのお徳用キットが今取り上げているGrove Creator Kitです。

・M5Stack社(エムファイブ スタック社)
・Seeed Technology社(シード テクノロジー社)
・Groveコネクター(グローブ コネクター)
・Arduinoボード(アルドゥイーノ ボード)
・Arduino UNO(アルドゥイーノ ウノ)
・Seeeduino Lotus(シードゥイーノ ロータス)

MSX0 M5Stack core2では、Groveコネクターが、3つあります。PortA(赤。I2C)、PortB(黒。GPIO)、PortC(青。UART)です。

・Port A ~ 赤。I2C(アイ スクエアド シー。アイ ツー シー)
・Port B ~ 黒。GPIO(ジー ピー アイ オー)
・Port C ~ 青。UART(ユーアート)

です。(2024R06-0509-THU-1704 MSX0の場合、DHT11などで、PortCをUART通信ではなくGPIO通信で使用する場合があります。どうするのか詳しい方に質問中です。)

I2C | 用語集
https://www.smk.co.jp/products/glossary/i2c/
I2C(Inter-Integrated Circuit) について | 東阪電子機器
https://tohan-denshi.co.jp/technical-information/1835/

Grove Creator Kit | Seeed Studio Wiki
https://wiki.seeedstudio.com/Grove-Creator-Kit-1/
>


2024R06-0420-SAT

2024R06-0420-SAT-1720
Grove Creator Kit γ (40)のデバイスのテスト開始:

・DHT11
msx0 m5stack core2, port bで。device/dht/~はダメだよねー。DHT20用のI2Cだからね。DHT11はアナログだっけ。明日、analog_g.basを改良して試してみます。温度と湿度と2つあるからね。どうするんだろう?(2024R06-0423-TUE-2059 \DOC\SAMPLE.TXTに書かれていました。DHT11はPort C(UART)に接続するのですね。)

・Temperature Sensor
MSX0 M5Stack core2で温度センサー試しました。AIの助けを借りましたが解決したかわかりません。一応近い値が出ていますが、ちょっと意味不明なところがあります。明日朝、ストーブを焚く前の今と気温が違う低いときにテストします。(2024R06-0421-SUN-1155 結局、AIをはしごして新しい式を入手。これは正常値に近い。けど誤差が大きい。今、MSX0 M5Stack core2 充電中ですので充電が終わったらと思いますが、気温に変化がありませんので参考になりませんか。センサーの抵抗値2600オーム?)(2024R06-0423-TUE-0724 Seeeduino LotusのanalogRead(0)もしくはanalogRead(A0)の両方で数値を測ったところ、MSX0 M5Stack core2の_IOTGET("device/analog/in",A)の数値と違います。)


(... 2024R06-0420-SAT-1720)

CC BY tDG.