ESP32でJupyter notebookを使う。

ESP32のMicroPythonでJupyter notebookを使えるようにしてみます。macOSの環境を前提に記しますが、WindowsやLinuxでもほぼ同様の操作で設定できると思います。 Step0: 前提 作業用PCにPython3がインストールされていること。 Step1: MicroPythonをESP32にインストールする。 まず作業用のディレクトリを作ります。以下の説明では/workspace/micropythonをカレントディレクトリとして説明します。 $ cd /workspace $ mkdir micropython $ cd /workspace/microp … “ESP32でJupyter notebookを使う。” の続きを読む

STM32CubeMXで生成したコードがコンパイルエラーとなる

STM32CubeMXで生成したコードをEclipseに取り込んでコンパイルするとエラーとなった。 arm-none-eabi-gcc -mcpu=cortex-m7 -mthumb -mfloat-abi=hard -mfpu=fpv5-d16 ‘-D__weak=__attribute__((weak))’ ‘-D__packed=”__attribute__((__packed__))”‘ -DUSE_HAL_DRIVER -DSTM32F769xx -I”/Volumes/Extreme900/workspace/eclipse/hello_stm32f7-disco/Inc” -I” … “STM32CubeMXで生成したコードがコンパイルエラーとなる” の続きを読む

macOS Mojave+Eclipse+gdbでハングする現象を解消

macOS MojavaにインストールしたEclipseでC/C++のデバッグをしようとするとハングしてしまう現象に悩まされました。gdbに署名すれば解消するという情報をよく見かけるのですが、Mojavaだとなぜかうまくいかず。 しかしようやく動くようになったので、備忘録として記録に残しておきます。元になった情報はこちらです。 前提環境 macOS Mojave Eclipse 2019-03 やったこと Step1: 証明書の作成 ターミナルからキーチェーンAppを起動します。 open -a “Keychain Access.app” キーチェーンアクセス > 証明書アシスタント & … “macOS Mojave+Eclipse+gdbでハングする現象を解消” の続きを読む

AWS IoTボタンでTwitter APIを呼び出してみる

AWS IoTボタンを入手してみました。Amazonダッシュボタンが特定の製品を1-clickで注文できるのに対して、こちらのボタンは任意のアクションを設定できる優れものです。その分値段もちょっとお高めでamazonで2500円です。 ボタンアクションにはシングルクリック、ダブルクリック、長押しの3種類があり、プログラム側でクリック種別毎に異なる動作をさせることができます。 ネット上で使い道を調べてみると、トイレボタンというのが多くみつかりました。トイレにボタンを設置しておいて、用を足すたびにボタンを押すと、Googleスプレッドシートなどに日時と種別を記録するというような感じのものです。 せ … “AWS IoTボタンでTwitter APIを呼び出してみる” の続きを読む

micro:bitで5-queen問題を解く

micro:bitの5×5のLEDディスプレイがマス目に見えてきて、そういえばN-queen問題もマス目にクイーンを置く問題だよな、と思い至りました。そこでmicro:bitで5-queen問題を解いてみようと思います。せっかくなのでmicro:bitでどれだけの計算性能を出せるのか見てみることにし、ついでにPythonとC++で同じプログラムを作ってどれだけ差がでるのかを見てみます。計算性能の測定が目的なので、バックトラック法のようなロジカルな解法ではなく、ニューラルネットを使った数値計算型の解法を使って試してみることにします。 5-queen問題とニューラルネットについて 一般的にはN-q … “micro:bitで5-queen問題を解く” の続きを読む

JR-100のビデオ出力のカラーNTSC化(4) S-Video出力完成、しかし……

前回の同期ずれ問題を解消すべく、そもそもビデオキャプチャ側で同期分離する必要がなくなるようS-Videoでの出力化をすることにしました。S-Videoでは輝度信号(Y)と色信号(C)を分離して出力すれば良いです。JR-100からのコンポジットビデオ信号はS-VideoでのY信号そのものなので、JR-100の出力をそのままYに流してやり、適当なタイミングでC信号を出力すればよいはずです。 回路図 回路図の基本は前回のものを踏襲します。ただし次の2点を組み合わせて合計4パターンで実験してみることにします。 水平同期信号の幅 JR-100の水平同期信号の幅は9.05μsと規格よりだいぶ長くなっている … “JR-100のビデオ出力のカラーNTSC化(4) S-Video出力完成、しかし……” の続きを読む

JR100:エミュレータv2でゲームパッドに対応

JR-100エミュレータver2で、ゲームパッドに対応しました。さすがにゲームパッド対応用のマルチプラットフォームなライブラリを自作するのは手間がかかりすぎるので、JavaではメジャーなJinputを使っています。JInputはJavaのゲームエンジンlibgdxでも内部で使われているみたいです。 Jinputの使い方は別投稿に譲るとして、まずは設定画面はこんな感じです。 以下のゲームパッドでテストしていますが、他のでうまく動作するのか分かりません。もし動かない場合は連絡いただければ幸いです。 サンワサプライ アーケードスティックII  (JY-A46UCBL) エレコム Xinput対応ゲー … “JR100:エミュレータv2でゲームパッドに対応” の続きを読む

JR-100:エミュレータv2にCPU速度設定機能を追加

長らく放置していたJR-100エミュレータver2に新機能を追加しました。CPU速度を設定する機能です。コメントでいただいていた機能をいつか実装しようと思いながらずっと手を着けられずにいましたがようやくできました。ついでにR6522の実装も強化しています(外見はよく分からないと思いますが)。 ダウンロードはこちらよりお願いします。 JR-100エミュレータ こんな設定画面です。ほぼ10倍速となる10MHzまで指定できます。 JR-100のBEEP音の周波数はクロック周波数に直結しているため、例えば実機でクロックを2倍に修正するとBEEP音の周波数も2倍になるはずですが、エミュレータではクロック … “JR-100:エミュレータv2にCPU速度設定機能を追加” の続きを読む

R6522:DDRBが入力モードでも矩形波出力がされる。

JR-100ではR6522のPB7に生成される矩形波をスピーカーに接続し、音声出力として用いています。このR6522のPB7に矩形波を出力するための条件として、データシートには以下の記載があります。 A precaution to take in the use of PB7 as the timer output concerns the Data Direction Register contents for PB7.  Both DDRB bit 7 and ACR bit 7 must be 1 for PB7 to function as the timer output.  If … “R6522:DDRBが入力モードでも矩形波出力がされる。” の続きを読む

6802アセンブラで逆アセンブラ形式の出力に対応

6802アセンブラで逆アセンブラ形式の出力に対応した。こんな感じで出力する。とりあえず相対分岐命令の時にラベル名を出すようにした。理想的にはアドレッシングモードがdirectとextendedのときもラベル名を出すべきな気もするけどまだできていない。まあいいか。だいぶ完成形に近づいてきた気がするな。 START: 3000 CE C8 00 LDX 0xC800 3003 A6 0B LDAA [X+0x0B] 3005 8A D0 ORAA 0xD0 3007 A7 0B STAA [X+0x0B] 3009 CE 31 00 LDX 0x3100 300C FF 31 82 STX [0x … “6802アセンブラで逆アセンブラ形式の出力に対応” の続きを読む