ATOM Matrix

※いじったことをメモしたものの、後で調べたら現時点で国内では大人の事情(まだ技適取れてなかったんだな…)で電源入れてない人も多いので、以下は幻とでも思ってください…。

 

前に届いてたATOM MatrixとATOM Lite、ようやくいじることができた。

付属品が全然ないのでちっちゃい。

自分の机の周りがUSBケーブルとかで飽和状態なので、こんなもんで充分。

バッテリーも内蔵してないから、何かに組み込んで使うのがメインかな。

 

正直なところM5Stackのシリーズは買い過ぎてるんで、これ以上買って何をしたらいいかよくわからなかったんだけど、小さいし安いしでつい購入してしまった。
購入先はいつものAliExpress経由。

AliExpress.com Product - M5Stack Official 2020 New Arrival ATOM Matrix ESP32 PICO Development Kit Arduino IMU Sensor Python

AliExpress.com Product - M5Stack 2020 New Arrivial Official ATOM Lite ESP32 Development Kit Neo LED Arduino Blockly Programmable Kit

 

送料のことを考えると、他のものを買うついでに買ったほうが良さそう。今回自分がそうでした。

何か表示させるのが楽しそうなので、まずはLEDマトリクスをいじる。
最初はやっぱりサンプルスケッチを試す。

 https://github.com/m5stack/M5Atom

上記からダウンロードしなくても、Arduino IDEのライブラリに「M5Atom」というのが増えてました。

 

しかしハードウェアにはAtomがなかったので、ESP32 Dev Moduleを選択。

FastLED.hがないとエラーになったので、ライブラリからFastLEDを検索してインクルード。

ここまではコンパイルできた。

しかしいざ書き込みしようとすると、

 A fatal error occurred: Timed out waiting for packet header

というエラーが出た…。
何度か書き込みすると治るエラーらしいが、結局書き込みスピードを下げて成功。(115200)

これで無事動作しました。

 

自分が今回書き込みしたのは「Buttom」というスケッチで、画面を押すたびにLEDの表示が変わるという単純なもの。

(動画は撮影してないですが)

せっかくなのでいずれLEDで図形や文字出したりとか、もうちょっと遊んでみます。

Sponsered Link

8086のエミュレータ(その3)

さらに続き。
DUMPコマンドを使いたいというより、仮想環境(しかもMS-DOS)とファイルをやり取りするにはどうしたらいいのか?という疑問になってきているので、まずその件をメモる。

 

当初、VurtialBoxで作成したフロッピーディスクをマウントして、その中に必要なファイルを入れればいいと思ったのだが、これがうまくいかない。
FreeDOSからAドライブには入れるし、ファイルもあるので
 A:¥> copy ファイル名 c:¥
にしてみたんだけど、コピーできないって言われる。なんでだ。

 

じゃあいっそFreeDOSのCドライブをマウントしてみたらどうかと考え、以下の方法を参照。
 http://wiki.freedos.org/wiki/index.php/VirtualBox_-_Chapter_6
しかしマウントするのは「VHD image file」になってる…自分の環境でできてるのはvdiファイル。なんでだ。
でも上記のページにちゃんとファイル変換の方法が載っている。
 http://wiki.freedos.org/wiki/index.php/VirtualBox_-_Convert_VDI_to_VHD

が、さっきのサイトを最初から見ると、そもそもインストール時にファイル形式を選択できたんだな。
 http://wiki.freedos.org/wiki/index.php/VirtualBox_-_Chapter_2
…うーん、読んでいると他にも設定を変えたいところが出てきたんで、こっちの手順でもう一回インストールしてみたくなった。
ネットワークとか設定したくなったら、こっちの環境も作ってみることにする。
それにしてもこのサイト、VirtualBox使ったFreeDOSについてなんでも書いてあって助かる。

 

とにかく書かれている情報でvhdファイルに変換して、マウントして中を見たところ…単にハードディスクがいっぱいで、データがこれ以上コピーできないだけだった。

余裕があれば、最初のフロッピーディスクのマウントからのコピーで問題なかった。

なので結局、ハードディスクに余裕を持たせて再度環境を作成。

 

そして当初の目的のDUMPコマンドを使うには、必要なファイルを持ってくればいい。

以下のサイトで必要なコマンドやユーティリティをダウンロードできる。

 https://clasqm.github.io/freedos-repo/

DUMPコマンドはここの、TXTTLSというファイル。

 https://clasqm.github.io/freedos-repo/Commandline.html

リンクをクリックしてtxttle.zipというファイルをダウンロードする。これをFreeDOSのCドライブに置いて、

 unzip txttle.zip -d c:¥

として解凍。これでコマンドが使えるようになる。

ようやくダンプできるようなった。疲れたー。

そういえばこんなに苦労してまでコマンド入れたのって、「はじめて読む8086」の勉強のためだったというのを改めて思い出した。

8086の環境そのままでは全然ないんだけど、苦労したおかげでいろいろ勉強もできたので、これでやっていけそうです。

Sponsered Link

8086のエミュレータ(その2)

続きのメモ。

 

8086tinyの問題が解決しなかったので、今度はFreeDOSというのを使ってみることにした。
参照させていただいた記事は以下。
 https://qiita.com/tmiki/items/06ceac5e34d98ccf8a78
8086tinyの前に見つけていたもののイマイチやる気が出なかったのは、VirtualBoxを使うこと前提としてるため。
個人的にあんまり好きじゃない。(Oracleが)

 

とか言ってられないので、まずはVirtualBoxのインストーラをダウンロード。
今回もWindows環境。
 https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html
よくわからなかったので何も考えず、設定を一切カスタムせずにそのままインストールしてしまいました。

問題はここから、FreeDOS起動の準備。
公式からからFor most usersのStandard CD-ROMをダウンロード。
 http://www.freedos.org/download/
あとはその後最初の記事通りにVirtualBoxで新規の仮想マシンを作り、FreeDOSをCD-ROMのISOファイルからインストールする。

しかしやはり素直にインストールできなかった。


一応公式のマニュアルを参照。
 http://wiki.freedos.org/install/
CD-ROMファイルからの起動はできた。
が、最初の
 Install to harddisk
を選択直後、なんかよくわからない文字列の無限ループになって戻ってこなくなってしまった。

 

原因を探ると、同じような症状の人がいてあっさりと回避方法発見。
「Install to harddisk」を選択してtabキーを押し、一番下に出てきた行に「raw」を追記する。
 .linux /boot/syslinux/memdisk raw initrd=/isolinux/fdboot.img
これでリターンキーを押して、普通のインストールを行うことができた。
(途中でパーティションを作るときにリブートするので、その後も同じように追記する)
再度検索したら、追記は文字列の最後でも良さそうだった…まあちゃんと動いたからいいです。
 https://itsfoss.com/install-freedos/

 

途中のパーティション作成の画面は公式と違って、特に何もしないまま終わっちゃいました。
良かったのかどうかわからないけど、今のとこ問題ないです。
最後はパッケージのインストールで、
 Full installation with sources
を選択。

インストール完了後、VirtualBox上でいったん電源を切ってハードディスクからの起動を優先にする。
最初の画面、自分の環境ではデフォルトで「2」が選択されていて、そのまま起動しました。

あとは最初の記事を再度参照して、
 C:¥> FDIMPLES
でDevelopment等をインストール。
FDIMPLESはインストール時、「Full installation」ではなぜか起動しなかったので、「Full installation with sources」を再度入れ直しました。実際は不要だったかも。
起動もFDIMPLES.COMではダメで、.COMを外して起動できた。

 

多少(かなり…)手間取ったけど、なんとかそれっぽく環境を整えることはできた。
しかしやっぱりDUMPコマンドはないのか…と思ったら、MS-DOSのバージョンが違うのか。
この辺りの詳細を調べても当初の目的から逸れるので、FreeDOSでDUMPを使う方法を探した。
で、もうちょっと続く予定。

Sponsered Link

8086のエミュレータ(その1)

前のメモの続きのような、そうでないような話。

 

「はじめて読む8086」を読んでると、やっぱり実際に動かしてみたくなってくる。
しかしさすがに環境が古すぎて無理、と思ったものの、一応探してみたら、この手のエミュレータは存在してた。

最初に見つけたのは、8086tinyというちっちゃいプログラム。
 https://github.com/andreiw/8086tiny
検索していてなんでRaspberry Piで使ってる人が多いのかと思ったら、Raspbianのレポジトリに追加されてるかららしい。

Raspbian上ならaptでインストールできるようだ。

 

でもC言語で書かれているので、普通にgccでコンパイルできるだろ、と正直甘く見た。
先に結論を言うと、Windows10でのコンパイルはうまくいきませんでした。

(さらにUbuntu上でもうまくいってない…)

 

最初のエラーは

 8086tiny.c:18:10: fatal error: SDL.h: No such file or directory

  #include "SDL.h"

           ^~~~~~~

 compilation terminated.

だったので、調べたらグラフィックなどを動かすために必要な「SDL」というライブラリをインストールする必要があるとわかった。

でもインストールするのがめんどくさかったので、Mkefileを見てグラフィックを使わないコマンドを使うことにした。

が、それでもダメだったので、結局諦めました。今のとこ。

まだ解決策が見つかってないので、もしわかったらいずれメモすることにします。


ちなみにMakefileはLinux用なので使用しないつもりだったが、実はコマンドプロンプトでmakeコマンドを使えるようにもしてみた。
以下を参照させていただきました。
 https://qiita.com/tokikaze0604/items/e13c04192762f8d4ec85
でも結局使いませんでした…せっかくだし無駄ではなさそうなので、アンインストールはしないておこう。

 

その後本家の8086tinyとは別に、既にコンパイル済みの8086tiny plusというのを見つけたんでダウンロードした。

 https://jaybertsoftware.weebly.com/8086-tiny-plus.html

これだと既にexeファイルが出来上がってるので、Windows上で普通に起動できました。

 

ただ、デフォルトで入ってるファイルがどうも従来のものと違うらしい。

debugはできたけど、dumpはできない。

8086tiny plusはゲームとかのエミュレータを動かすことを前提にしているようで、「はじめて読む8086」とかの勉強にはちょっと不向きかも。

自分が全然わかってないので、環境が違いすぎるととっても困る。

 

というわけで、また別の方法を模索しているとこ。

ここで一旦区切る。

Sponsered Link