電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

M5StickCで軽く遊んでみました2 UIFlow編

前回紹介したM5StickCですが、今回はUIFlowで遊んでみました。

UIFlowはWEB版とデスクトップ版があるのですが、今回は手軽そうなWEB版を使いました。
WEB版を使用するには、ネットにつながったWifi環境が必要です

準備

ダウンロードページ

Download – m5stack-store
https://m5stack.com/pages/download

ここから M5Burner をダウンロードします。
デスクトップ版(UIFlow-Desktop-IDE)もここでダウンロードします。

M5Bunner

ダウンロードした M5Bunner でファームウェアM5StickCに書き込みます。
2020年5月14日の時点でM5StickCに対応しているファームウェアはUIFlow-v1.4.5.1です。

UIFlow-v1.4.5.1でを押してファームウェアをダウンロードした後で各設定をして[Burn]ボタンを押すとファームウェアM5StickCへ書き込まれます。

COM: M5StickCが接続されたCOMポートを選択
Baudrate: Series設定時に変更されたデフォルトの値のままでOK
Series: StickCを選択
SSID: WifiアクセスポイントのSSID
Password: Wifiアクセスポイントのパスワード

ファームウェアが書き込まれると、M5StickCに下の画像のような画面が表示されます。
f:id:uosoft:20200302165016j:plain
丸いマークが緑ならネット接続に成功しています。それ以外の場合はSSID等のネットの設定を見直してください。
で隠してある部分にAPIキーが表示されます。

UIFlow

ブラウザでUIFlowのページを開きます。

設定

起動時に下のような画面が表示されるので、APIキー等の設定をします。

Api key M5StickCに表示されたAPIキー
Language 日本語も選択できます
Device Stick-c

遊んでみる

前回 と同じように簡単なカウンターを作ってみました。

ソース?
f:id:uosoft:20200514111814p:plain
表示の部分は本来テキストを表示するブロックがあるのですが、数値の0埋め表示が無かった(わからなかった)ので、コード実行ブロックを使用して直接Pythonのコードを書きました。
内部的にはMicroPythonで動かしているようで、Pyhonに置き換えられたコードも見ることができます。
f:id:uosoft:20200514112836p:plain

プログラムできる人はArduinoIDEで普通にコードを書くのが圧倒的にやりやすいと思いますが。
ちょっと遊んだりプログラムの勉強をするのには面白いと思います。

M5StickCで軽く遊んでみました

結構前に買って放置していたM5StickCを見つけたので軽く遊んでみました。

開発環境

開発環境はいくつかあるのですが、とりあえず使い慣れたArduino IDEで行います。
セットアップ方法は公式ページに書いてあります。
M5Stack Docs-The reference docs for M5Stack products.
https://docs.m5stack.com/#/en/arduino/arduino_development
解説は英語で書かれてますが、設定個所は同じなのでわかると思います。

サンプルプログラム

簡単なカウンターを作ってみました。

M5ボタン(ホームボタン)を押すとカウントアップして、リセットボタンを押すとカウントが0になります。

// M5StickCのライブラリをインクルード
#include <M5StickC.h>

// カウントを0で初期設定
int count = 0;

void setup() {

  // M5StickC初期化
  M5.begin();
  
  // 背景色を黒で塗りつぶし
  M5.Lcd.fillScreen(TFT_BLACK);
  // 文字色を白、背景色を黒に設定
  M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);

  // M5StickCの向きを設定(M5ボタンが左)
  M5.Lcd.setRotation(1);
  // 文字サイズを設定
  M5.Lcd.setTextSize(6);

  // カウント表示
  print_count();
}

void loop() {

  // M5ボタンが押された時の処理
  if (digitalRead(M5_BUTTON_HOME) == LOW) {
    // ボタンを離すまで待つ
    while (digitalRead(M5_BUTTON_HOME) == LOW) ;
    // カウントアップ
    count++;
    // 9999以上は9999にする
    if (count > 9999) {
      count = 9999;
    }
    // カウント表示
    print_count();
  }

  // リセットが押された時の処理
  if (digitalRead(M5_BUTTON_RST) == LOW) {
    // ボタンを離すまで待つ
    while (digitalRead(M5_BUTTON_RST) == LOW) ;
    // カウントを0に
    count = 0;
    // カウント表示
    print_count();
  }

}

void print_count() {
  // カーソル位置をセット
  M5.Lcd.setCursor(10, 20);
  // カウントを4桁0埋めで表示
  M5.Lcd.printf("%04d", count);
}

Hallo world を少し発展させたようなプログラムですが、基本の文字の表示とボタンの状態取得はわかると思います。

SHARP PC-G850VSへスピーカを取り付けました。(PC-G850Vでも可)

2年ほど前に最後のポケコンが欲しいと思い中古でSHARPPC-G850VSを入手しました。

f:id:uosoft:20200430101008j:plain
この機種はスピーカが無く、ビープ音でさえ鳴らないので、スピーカを取り付けました。

別基板で作って拡張ピンに接続するのが本来の方法だと思うのですが、今回は内蔵したくて、直接ピンにスピーカを接続しました。

また、拡張ピンの内側に直接接続して内蔵させる方法も良くありますが、どうやらBZ+,BZ-端子があり、そこに繋げると良いみたいなので、こちらの方法で試してみました。

f:id:uosoft:20181008232456j:plainf:id:uosoft:20181008232505j:plain

 試しにBASICで"BEEP 1"を実行すると、無事に音が鳴りました。

同じ方法がG850Vでも行えるようです。

簡単な改造なのでぜひ試してみてください。

 

 

シャープ G850VS Pocket Computer 【関数電卓】
 

 

メガドライブ開発環境メモ

メガドライブの開発環境を試してみたのでメモ

開発環境

SGDK (A small, open and free development kit for the Sega Megadrive)を使用する
SGDK URL : https://github.com/Stephane-D/SGDK/wiki
download : https://github.com/Stephane-D/SGDK/wiki/Download

ダウンロードしたアーカイブファイルを解凍して適当なところに配置

テスト

SGDKを "C:\sgdk" に配置したとして書きます

適当なフォルダで開発 (今回は C:\workspace とします)

ソースファイル配置(今回は test.c とします)

#include <genesis.h>

int main()
{
	VDP_drawText("TEST", 18, 13);
	VDP_waitVSync();
	
	return (0);
}

ソースファイルと同じ場所にメイクバッチを作成(今回は make.bat とします)
環境変数のSGDKは、SGDKを配置したフォルダに変更してください

set SGDK=c:\sgdk
%SGDK%\bin\make.exe -f %SGDK%\makefile.gen

ファイル配置後、make.batを実行するとコンパイルされます。

テスト実行

コンパイルが正常に完了すると、make.batを実行したフォルダの下に out フォルダが作成されます。
この out フォルダにある rom.bin をエミュレータで実行するなり、ROMに焼くなりしてください。

rom.bin をGens/GS(https://segaretro.org/Gens/GS)で実行してみました。

メガドライブパーフェクトカタログ (G-MOOK)

メガドライブパーフェクトカタログ (G-MOOK)

1つあれば便利!低価格小型オシロスコープ DS213

過去のエントリーで紹介したDSO203ですが、バッテリーが故障したせいか起動しなくなってしまいました。
使い勝手が良かったので、また同じものを買おうと思ってましたが、新型のDS213が発売されていたのでこちを選択しました。

アナログ帯域幅が旧型のほぼ倍の15MHzに、最大サンプル・レートが100MSa / sになっています。

仕様
モデル:DS213
MCU:STM32F103VC
ADC:HWD9288
チャンネル:2アナログ・チャンネル+ 2デジタル・チャンネル
アナログ帯域幅:15MHz
最大サンプル・レート:100MSa / s
最大サンプルメモリ長:4K
水平感度:100nS / Div〜1S / Div(1-2-5シーケンス・ステップ)
垂直感度:10mV / Div〜10V / Div(1-2-5シーケンス・ステップ)
アナログ入力インピーダンス:1MΩ
カップリング:DC / AC
ストレージ:8MB USBフラッシュディスクメモリ
USBポート:ミニUSB
バッテリー:1000mAh
画面サイズ:3 "
画面の解像度:400×240
寸法:99×59×13mm
重量(電池付):129グラム
オープン・ソース:アプリケーション層オープンソース
認証:CE / FCC

現在の用途ではスペックアップの恩恵はうけてませんが、使い勝手は変わっておらず、使いやすいです。

レトロPCコレクション 2020年4月

去年も同じエントリーを書きましたが、それから結構売ったり買ったりを繰り返してました。
色々試しましたが、各用途で満足な機種が入手できたので、オークションやフリマで物色しても他の機種が欲しいと思わなくなりました。(所有している同機種の予備は欲しいかも)

X68000 Compact XVI

https://blog-e.uosoft.net/entry/20200318/1584463840 参照
2020年入手
やっと手に入れたX68000
コンデンサ交換等の整備品を約10万円で購入
X68000は発売以来約30年ずっと憧れのPCをやっと入手しました。
各解像度を表示させるため、モニタ設定をいろいろ苦労しましたが、結局XPC-4を使用して安定しました。
結構金がかかってます。

PC-9821Xa16/R12

https://blog-e.uosoft.net/entry/20200124/1579804390 参照
2018年入手
PC98のメインマシン。
コンデンサ交換等の整備品を約2万円で購入
色々追加して結構フル装備になりました。
80286以前にしか対応していないゲームや速すぎて遊びにくいゲームはPC-286Cで遊ぶとして、それ以外のことはDOS環境では大抵できるようになってます。

PC-286C

http://blog-e.uosoft.net/entry/20190612/1560265878 参照
2019年入手
80286搭載で古いゲーム用。
動作品で約8000円。
MSXと同等の手軽さでPC98のゲームができることは自分のなかでポイントが高く、実は名機種だと思っています。
SC-98IIIPに50ピンの内蔵用コネクタを追加して変換番長でHDD(CF)内蔵にしましたが、用途が古いFDベースのゲームのため使用することが無くあまり意味がありませんでした。

PC-486note au

https://blog-e.uosoft.net/entry/20200421/1587449084 参照
2020年入手
動作品で約25000円。
FDドライブが2台でPC-9801-26互換FM音源搭載のノート。640x480のTFT液晶
PC-9821Nxから乗り換えたノート環境です。FDドライブが2台なので、遊べるゲームが増えました。
DOS環境保存用のノートでは最適な機種だと思います。

PC-9801NA/C

2020年入手
ジャンク品で約5000円。
マザーボードコンデンサLCDのインバータのコンデンサを交換して復活
単純にPC-9801ノートが欲しいと思い購入しました。
音も鳴らしたいと思い、FM音源ユニットのFMU-98Nも使用しています。

FS-A1ST

2014年頃入手
当時約4万円
2010年頃にHB-F1XVを入手しましたが、MSXは上位互換がしっかりしていて、turboRがあればテープ以外のゲームはほぼすべて動くので、現在はturboRのみ所有しています。
FS-A1GTはディスプレイケーブルが専用なので、普通のケーブルが使用できるFS-A1STを選択しました。
現役当時はMSX2だったので、約5年前に入手したときは最高の機種がやっと手に入った気持ちでした。
音声にノイズが乗る様になったのを機に電解コンデンサを全部交換しています。その他に2年ほど前にメモリ512KBに増設、ベルトレスFDドライブに換装をしました。
その後将来入手できなくなる可能性も考え、予備機としてもう1台初回より高い値段で入手しました。

Libretto 70

2005年頃入手
MS-DOSが手に入るうちにと思いPC-DOS2000を購入してMS-DOS専用環境にした機種。
昔所有してたLibretto SS1000が欲しかったが、結構高かったので、手ごろな値段で入手できた旧デザインのLibretto 70を選択したような記憶があります。

Vaio type W

2009年頃入手
当時流行したネットブック。他のネットブックが軒並み解像度が1024x600でしたが、その中で1366x768だったのでこれにしました。ネットブックの中では少々高価でしたが、それでも購入時5万円以下だったと思います。
これは現在も持ち続けてWindowsXP保存環境として使用しています。
Windows95時代のゲームは大抵WindowsXPでも動作するので、古いWindowsゲームでは重宝しています。

EPSON PC-486note au 入手しました PC98用DOSゲームに最適なノートPC

2010年頃に入手して長年使ってたPC-9821Nxですが、今回FDDが故障したのを機に手放してしまいました。
FDDは液晶が無い予備機から持ってきたのですが、先のことを考えてまた予備機をと思い探してたところいつの間にか相場が上がっていて、2万円以上になってました。
この価格帯だとずっとに気にっていたPC-486note au(av)が手に入る価格帯で、つい約3万円で落札してしまいました。
その後PC-9821Nxは動くうちに売ってしまおうと思い出品し、2万円台中盤で売れました。

f:id:uosoft:20121223162330j:plain

入手したPC-486note auの特徴です。
CPUはi486SX 33MHz (速すぎず程よいスピード)
メモリは3.6MB (メモリが多いと起動時のメモリチェックが遅くなる。DOSのみで使用するので、そんなにいらない。でもちょっと欲しいのでちょうど良い)
HDDは専用パック内でIDE接続 (IDE-CF変換基板でコンパクトフラッシュが使えます)
モニタはTFT液晶モデル 640x480 256色 (400ラインのモデルは無いので、無難な大きさ)
FDドライブが2台 (ここが最重要ポイント!)
FM音源内蔵 (YM2203のPC-9801-26互換、欲を言えば86互換音源が欲しいが、DOSゲームのほとんどは26互換音源対応で、86互換音源専用はほとんど無いと思う)
クイックポインタ搭載 (そのまま本体のみでマウス対応ソフトの操作ができる。思ったよりレスポンスも良く使いやすい)
110ピン拡張用コネクタ搭載 (PC-9821Nxは198ピンなのでPC98ノート用の周辺機器がそのままでは使えない)

PC-486note avはCPUやHDD容量の違い程度で、本体の仕様的に差は無いようです。筐体デザインも同じです。なので、探すときはauとavを一緒に探すと良いです。

PC-9821Nxと比較して、FDドライブが2台なのはポイントが高いです。HDD対応ゲームが出回る前のゲームは2ドライブ前提の物が多く、PC-9821Nxでは遊べませんでした。(仮想ドライブは使いにくい)また、拡張用コネクタが110ピンなので、そのまま5インチFDDドライブも使用できます。本体の音源を無効にして拡張用コネクタに接続するFM音源FMU-98Nを試しましたが、問題なく動作しました。

1つ不便な点があります。内蔵電池があくまでもサブ的な一時保存用の物なので、メインバッテリーが無いとすぐに切れます。新品に交換してもメモリスイッチや時計が1日持ちません。これはPC-486note全般的な仕様のようです。新品のメインバッテリーが入手できない現在はセル交換等しない限りはあきらめるしかないです。

元々PC-9821NxもDOSゲーム目的に、86(26)互換FM音源付きで640x480(400に近い)という理由で選んだのですが、やはりPC98のDOSゲーム目的でFDドライブが1台では不便でした。当時はPC-486noteのことを知らなかったのですが、知ってれば初めからこちらを選んだと思います。