goo blog サービス終了のお知らせ 
「PIC AVR 工作室」サイトの日記的なブログです。
サイトに挙げなかった他愛ないことを日記的に書き残してます。
PIC AVR 工作室 ブログ



ふとやってみたいことがあって、Aliexで注文してた
ブツが届いた。



NES用の、いわゆる7ピンのジョイパッド。国内だと、
NEWファミコンとかAVファミコンとか言われているやつ
でも使われている、あの特徴的な形状の端子のやつ。



これね。7ピンの、2つの角が直角の台形形状の端子。
(D-SUB9ピンとはその辺がちょっと違う)

で、だいぶ前にちょっと調べてみたら、この端子の信号って、
ものすごい単純だったのと、そもそもまだこの手の互換品って、
MD用のD-SUB9ピン端子(なのかな?)のジョイパッドとかと
同様に、まだまだ新品がいくらでも入手可能っぽいので、
MD用とか、AVファミコン用のジョイパッドなんかを使って、
MSX・P6、88SR以降、68k、ウンズあたりでも使えるように、
信号の変換が比較的簡単に行えるんじゃないかなぁ?と。

Aliexで、MSX用のジョイパッドを検索してもヒットしない
のと、ATARIのジョイパッドを検索すると、素のATARI仕様の
ものになっちゃって、ボタンが片方使えなかったりとか、
もう片方のボタン押すと自爆ボタンとしてコンピュータ自体
を壊しかねない動作になっちゃうかもしれないので、やっぱ、
この手の信号が単純なジョイパッドを使って変換した方が
安全かなと。
あと、AVファミコン用とかって、最初から連射機能が搭載
されているものがあったりするので、その辺も便利なんだ
よねぇ。

ヤフオクとかで、時々思い出してはMSX用ジョイパッドを
検索してみたりするんだけど、やっぱ高いのよね。しかも、
いつまで入手できるのかわからんし。
(新品が製造されてないから)

というわけで、作戦としては2つあって、こういった単純な
信号の制御だけで扱えつつ、新品が潤沢に入手できるものを
使う方法か、もしくは、USBジョイパッド(ジョイスティック)
を使って、マイコンでUSB信号を読み取って、MSX用に変換
するっていう方法の、どちらかじゃないかなと。

当然、前者の方が楽ちんなんだけど、後者は、ファームを
旨い事書き換えることによって、ジョイパッドだけじゃなく、
MSX用パラレルマウスの信号生成にも使えたりするんじゃ
ないかなとか思っていたりもする…。

その辺はちょっと悩ましさもあるんだけど、まぁ、ちょっと
いじってみたかったんだよな。このAVファミコンの端子。


で、ジョイパッドだけだと実験に使うには根本的に足りない
ものが…。それはオス側の端子。



ってことで、とりあえず3つ入手しておいた。多分、これ
自体はかなり汎用的に使われているっぽい感じなので、
これのパーツデータを作ってやれば、基板を起こすのも
簡単にできるんじゃないかなと。

まぁ、気になるところもいくつかあるんだけど…



この、金属端子じゃない突起の部分。二股ピンみたいに
なってるプラのところ。
この位置って、規格化されているのかなぁ?っていうの
が1点。
もう1点は、挿したあとに抜け防止になってるくさび形状
のところまでの長さ。言い換えれば、基板に挿して抜け
防止にするわけだから、基板の厚みとあってないと
意味がないわけ。

基板の厚みは、基板発注するときに指定できるだろうけど、
そもそも、この端子の加工精度…大丈夫なんだろうか?
みたいな心配があったりする。(あと、寸法データがない)

下手にこのあたりの精度が合わないと、基板を発注しても
この二股ピンが挿さらなかったり、逆にガバガバになって
しまったりしかねない。

で、そもそもこういうパーツなんて、パーツデータが
世界中で作られて公開されてたりするんじゃないの?とか
思って検索。

残念ながら、オイラが愛用しているFritzing用のパーツデータ
は見つからなかった。
まぁ、ないものは作るの原則なのかな、と。Fritzingのパーツ
データは、ここんところしばらく作ってないけど、まぁ、
なんとかなるだろう。(寸法さえ判れば)



基板とかパーツデータとかを作るのはまたあとでじっくり
進めるとして、とりあえず直近でやらないといけないなぁ
と思っているのは、このジョイパッドがちゃんと動くのか
どうかの動作確認。

こいつを実際にマイコン使って制御するっていうのは、
当然ながら初めてなので、自分が理解している内容が
それなりに正しいのかどうかは気になっているところ。
(AVファミコンが手元にあればサクッと確認できるん
だけど、あれはだいぶ前にヤフオクで売ってしまったん
だよなぁ)


そもそもこの配線を流れる信号は、4021(シフトレジスタ)
の制御そのものなので、そんなに難しいものではないはず。

ラッチ信号(出力)、クロック信号(出力)を制御して
やれば、データ(入力)端子から順番に8個の入力内容を
読み取ることができるはず。


というわけで、この4021の制御周りの理解が正しいのか
どうかを検証したいなぁ、と。

すごい単純なしくみだから、とりあえずブレッドボード
使って、ラッチとクロックの信号を、配線のオンオフで
制御して、LEDの点灯/消灯で確認してやろうかとか
思ったりしたんだけど、そもそもブレッドボードでそう
いうことすると、信号がチャタリングしちゃって、
まともに動くはずないだろと。
(特にクロック信号がある場合は)

で、なんかいい方法無いの?って思っちゃったんだけど、
そもそも、そういうときのために、Arduinoのfirmataが
あるんじゃないの?ってところに至るまでに数分を要して
しまった。
(そもそも、そのためだけに何らかのプログラムを書こう
とかいう発想は、オイラの頭の中にはないらしい)

やっぱ、最近ちょっとマイコン周りをいじってないって
いうことを改めて実感してしまったよねぇ。いかんねぇ。


というわけで、ひとまず、firmataを使いながら、この
ジョイパッドの動作確認から始めようかな…という方針が
頭に浮かんできたところ。

とりあえず、MSX互換のジョイパッドを無限増産する
っていう方向性はめどがついた気がする。
けど、MSXマウス(パラレルマウス)の互換品を無限増産
するためには、やっぱUSBマウスの信号をハックするって
いうのが一番現実的だと思うんだよなぁ。

まぁ、ちょっとずつ進めよう。お遊びの一環だしな。


コメント ( 0 )




こないだ買ったArduino Uno R4 Minimaを、Lチカだけ
じゃなく、少しだけ動かしてみようかなと。

で、以前作ったOLED用シールドとか、G-LCDシールド
とかを動かせれば、R4 Minimaの大容量で、仮想VRAMも
FFTライブラリも問題なく動いちゃうだろうなと目論んで。

増産

https://tonarinoyj.jp/episode/13933686331674665135すっごい久しぶりにワンパンマン来てた。2か月半くらいあいてたなぁ。Arduino用のI2COLEDシールドをもう1枚増産。パオ...

goo blog

 


F12864G25412P1701シールド組み立てる

こないだPCBWayから届いた、F12864G25412P1701と4方向+2ボタンのArduinoシールド。ようやく組み立ててみる。4方向+2ボタンの入力を、デジタルじゃなくアナログ入力の1ピン...

goo blog

 


で、とりあえず以前作った、画面表示だけのテスト用
スケッチArduino-IDEで開いてサクッと動かしてみよう
と思って、コンパイル…。

エラー。なんだこれ?と思ったら、よく考えたら、
GPIOのオンオフを高速に行いたいからと、自作の
OLEDライブラリ・G-LCDライブラリ内では、SFRを
直接いじるコードを書いてあるので、その辺でエラー
になってた。すっかり忘れてた。
(というか、正確にはSFRにアクセスするための
PORTDとかの変数)

CPUが変わったわけだから、当然その手のコードは
エラーになっちゃうんだよな。

で、作戦としては2方向あるんだよな。GPIOのアクセス
を、DigitalWriteとかに書き換える方法。もしくはルネサス
の新しいCPUに合わせてタグを書き換える方法。

いろいろ考えてみたんだけど、やっぱ、今後のことを
考えると、高速にGPIO読み書きできないと困るよね、
と。
なので、後者を。新しいCPUのGPIOアクセス方法周り
を調べてみる。

『Arduino UNO R4でポートレジスタ直接制御』

Arduino UNO R4でポートレジスタ直接制御  前回おざなりになってしまったポートレジスタ直接制御の解説の続き。   Arduino UNO R4マイ…

Arduinoマイコンボードでの実験忘備録

 


『Arduino UNO R4 MINIMA でLチカ』

Arduino UNO R4 MINIMA でLチカ  入手したArduino UNO R4でさっそくLチカをやってみたいと思う。 ↓ソースコードはこちら。v…

Arduinoマイコンボードでの実験忘備録

 


こんな情報を発見。
なるほど、ルネサスは日本メーカーだから、日本語版の
データシート
もあるのか。これはよい。

とりあえずじっくり読んでみて、アクセス方法を理解して
から、実際のコードに落とし込んでみよう。


そうそう。なんにしても、はやいところこのルネサスの新しい
CPUを使った、Arduino Nanoサイズのマイコンボードが出て
来ないかなぁ?と思って待機中。早く出てくれー!




Aliexを物色。

なかなかよさげなD級アンプを発見。

429.0¥ 2% OFF|ハイパワーステレオオーディオアンプ,デジタルオーディオパワー,パネル,オーディオ,XH M567 tp3116d2| | - AliExpress

Smarter Shopping, Better Living! Aliexpress.com

aliexpress.com

 


ステレオD級アンプで、ボリュームだけじゃなく、2つの
トーンコントローラもついてる。しかも、80Wって書いてある
んだけど、ほんとか?ものすごい安いんだけど。
(約3ドル+送料1ドル程度)

これ1個あったら、いろいろ実験が捗りそうだよなぁ。
実験以外にもいろいろ使えそうでよい。安くて多機能。




Amazon.co.jp: 令和版『Oh!X』 : 復刻Oh!X編集部: 本

なんと!来年、令和版のOh!Xが出るらしい!

結構なお値段だけど、これ読みたいなぁ。すっごい読みたい。
友達のうちにあった68kでいろいろゲームやって遊んだり
したけど、中身はよく知らないんだよな。MS-DOSみたいな
OSが入ってるのはいじったことがあるんだけど、プログラム
を書いたりしたことはないし、開発環境なんかもよく知らない
んだよなぁ。
注文しちゃおうかどうしようか迷い中。


コメント ( 0 )




とりあえず、ArduinoをPCに繋いでごにょごにょできる
環境を作ったので、ようやく、Arduino Uno R4 Minima
のdouble型がどういう実装になっているのかを試して
みることに。

とりあえず、double型で変数2個ほど作って、片方に
割られる数、もう片方を商にして、そいつをSerial.
printlnで出力すればいいんだろうとか思ってスケッチを
サクッと書いてみると…

いくつか落とし穴。

まずは、Selial.beginの後に、
while (!Serial) {
;
}
を入れないと、どうやらうまく表示できないみたいだった。

あとSerial.println関数では、直接double型を出力する
ことはできないっぽいな。
調べてみたら、

Arduinoでsprintfの書式とfloatの扱い方、0埋めとか

Arduinoで文字列に変換する関数sprintfを使用する場合のフォーマット指定子一覧の解説と浮動小数点の扱い方(Arduinoでは浮動小数点の指定子が使えません)の紹介記事です。そ...

くろべこblog

 


dtostrf関数っていうのを使って、double型を一旦文字列
(Stringオブジェクトではなく、char配列でいいみたい)
に変換してやる必要があるみたい。

で、出来上がったスケッチがこれ。



void setup() {
Serial.begin(9600);
while (!Serial) {
;
}
double a = 1.0;
double b = a / 3.0;
char buf[20];

Serial.println("start!");
dtostrf(b, 20, 15, buf);
Serial.println(buf);

}

(あぁ、最近のArduino IDEって、html形式でコピー
するっていう編集機能がなくなってしまったみたい。
あれ、何気に便利で愛用していたのに…テキストとして
ブログ記事に貼り付けちゃうと、インデントがなくなって
全部左寄せになっちゃうんだよな。なにかいい方法は
ないかな)

とりあえず、小数点以下15桁表示させてみたんだけど、
ちゃんとでてるみたい。
(実装が、float型だと約7桁。double型だと約15桁)

というわけで、およそ倍の桁が使えるようになった
ので、まぁ精度不足で困ることはないってことだろう。



あとは、R4 Minimaに実装されているクロック源なんだ
けど、IC内蔵のRC発振だろうと思うので、多分精度が低い。

調べてみると、




NJU6319AEっていうのがあるみたい。

水晶発振器用IC(クォーツクリスタル発振器) NJU6319AE (4個入): 半導体(モジュール) 秋月電子通商-電子部品・ネット通販

秋月でも売ってるし、Aliexでも売ってる。結構汎用に
使われているものみたいだな。入手性は悪くなさそう。
しかも、3段までの1/2倍分周期も入ってるやつもある
みたい。(秋月で扱ってるのは「A」なので分収なしの
やつみたい)

このICの出力バッファをトライステートにする端子
(/CONT)って、オープンでいいのかな?これ。内部で
プルアップされてるし。
それにしても、上記のtwitterの使用例の基板。なかなかに
便利そうで欲しいなこれ。

最大で50MHzまでってなってるんだけど、遅い方はどこまで
行けるんだろう?時計用の遅いクロックとかもいけちゃう
のかな?
まぁ、16MHzとかで発振させて、割り込み入力ピンからの
入力を、Arduino側で分周してから割込み掛けさせればいい
んだろうけどな。

とりあえず、Arduino Uno R4 Minimaを使って、double型
で割り算の結果を扱ったり、水晶発振子の精度(50ppm)
で正確な割込みを発生させることが比較的簡単にできる
ことはわかった。

ちょっとブレッドボードで、テスト動作させられる回路
を作って動かしたいところだな。
(その前に、そもそも素のR4 Minimaの発振精度がどの程度
なのかがわかるといいんだけど、計測器持ってないからな)


なんにしても、ちょっと実験してて、R4 Minimaはやっぱり
32ビットコアのおかげか、double型がちゃんとdoubleで計算
されているのでよかった、よかった。
(公式のリファレンスページが古くて、dueではdoubleとして
実装されているよ、っていうことしか書いてないんだよな)





【速報】ホンダが「モトコンパクト」を発表! 電動でモトコンポが再来、価格は1000ドル(約15万円)以下!【東京モーターショー2023】 | Webikeプラス

ホンダがアメリカで「Motocompacto(モトコンパクト)」を発表した。1981年のMOTOCOMPO(モトコンポ)と同じように折り畳み式のボディを採用した電動バイクは、キャリーケー...

Webikeプラス

 


ホンダ・モトコンパクト。

これ、軽くていいんだけど、航続距離が短いな。
車載用としての用途を考えた結果なんだろうけど、できれば
普段使いもできるように、もうちょっと航続距離を長く
できるオプションでも欲しいところなんだよなぁ。

それにしても、かなり軽量に作られているな。これなら、
一人でクルマに載せられそう。


コメント ( 0 )




こないだスイッチサイエンスで注文してたArduino Uno
R4 Minimaが届いた。



あれこれ弄り回す前に、いくつか調べ事とかしておかないと
いけないなと思ってるんだけど、まずはArduino IDEの
アップデートしておかないとなと。

どうやら6月に今のWindows環境をごにょごにょしてた時に
Arduino IDEをインストールして以来だと思うので、当然
アップデート来てるはず。…来てた。



IDEをアップデートして、ファイルメニューからボード
マネージャで、Arduino Uno R4 Minimaをインストール。

アップデートしたのはいいんだけど、最近Arduino IDEを
久しくいじってなかったので、浦島状態になってる。
画面左側に並んでるアイコンなんだろう?と思って1個1個
クリックしていく。ほほう。上から2個目がボードマネジャ
なんだな。アクセスしやすくなっているんだな。ほほう。

で、気になったのは上から4つ目の虫さんマーク。
開いてみると、



変数とかブレークポイントとかコールスタックとか、いろいろ
出てくる。ほほう。
もしかして、R4 Minimaって、USBケーブル1本でデバッガまで
使えるようになっちゃったの?とか期待してたら、さすがに
そうではなかったみたい。

https://docs.arduino.cc/tutorials/uno-r4-minima/debugger

「Segger J-Link」「Ozone」を用意して、SWD経由でデバッガ
の機能を使うみたい。そうなのか。

「Segger J-Link」は結構高いみたいなので、なにか汎用の
ものが使えないものかなぁ?とか思ってるところ。

https://garretlab.web.fc2.com/arduino.cc/docs/software/ide-v2/tutorials/ide-v2-debugger/

まだちゃんと調べきれてないけど、ほかのものを使っても
デバッグができそうな感じはある。

そういえば、

https://www.switch-science.com/products/8708

Raspberry Pi Picoデバッグプローブとかは使えないのかな?




で、まぁデバッグ環境もできれば整えて使えるようにしたい
ところではあるんだけど、今やりたいのはそういうことでは
なく、R4 Minimaが32ビットコアになっているので、これなら
もしかしたらfloat型とdouble型がちゃんと違う実装になって
いたりして、doubleが倍精度で計算してくれているんでは
ないのかなぁ?ってとこ。

ちゃんと倍精度で実装されているなら、いろいろと捗る
ことになりそうなので。

あとでちょこっとテスト用のスケッチ書いてみて、
計算結果を表示させて眺めてみよう。

これまでの8ビット版Arduino Unoとかって、なんでfloat型
しか実装されてなかったんだろうね?

処理速度云々であれば、単に処理が終わるまで待つだけ
だからあまり実装から外す意味はないだろうと思うん
だよな。
Serial.print関数とかキャスト演算子とかが重たくなりすぎ
たりするのをなんとかしたかったのかな?

まぁ、容量もほかの32ビットArduinoボードのように大きく
なったし、処理速度も上がったし、double型が実装されない
理由は見つからないので、多分実装されているんじゃないか
なぁというのが予想。
はたして…

コメント ( 0 )




Arduino Uno R4には興味はあるものの、Arduino環境は
mbedと違ってタイマ割込みライブラリが標準のものが
ないのがいつもネックになりがちなので、ちょっと手を
出せずにいたところ。

でも、そろそろタイマ割込みを作っちゃう人が出てくる
ころじゃないのかな?と思って検索。

【Arduino UNO R4】タイマーライブラリ作りました - WASHIYAMA GIKEN

Arduino UNO R4 で タイマー割り込みを処理するだけのライブラリを作りました。 あれこれ調べた結果は別エントリーにまとめます(多分) github.com 覚え書き init(period, ...

WASHIYAMA GIKEN

 


あぁ、やっぱり発見。

あまり詳しい情報まではわかんないんだけど、mbedのタイマ
割り込みなんかと似たような感じに見える。

もう一つの課題としては、割り込みの周期だなと思っていた
んだけど、この人の別の記事を眺めてみると、

【Arduino UNO R4】エフェクター的なものを作る試み(リバーブ) - WASHIYAMA GIKEN

いつものようにまずはリバーブから。 youtu.be 割込みでADしている関係でサンプリング周波数は22,050Hz。DMAでごにょごにょできればもう少し周波数をあげられるのではないか...

WASHIYAMA GIKEN

 


サンプリング周波数が22050Hz(22050sps?)らしいので、
10kHzくらいまでのアナログ信号は使えるみたいだなぁ。

(そもそもR4のADCの変換時間って、どのくらいなんだろ?)


まぁ、音声信号はそこそこ扱えそうなので、だいぶ興味が
わいてきた。大きいメモリも使い勝手よさそうだし、
クロックも少し速くなってるし。
(あまり速いCPU積んじゃうと、消費電力もあるから、
そこそこのスペックのを載せているんだろうな、と思う)

で、じゃぁR4はいま簡単に手に入るの?と思ってスイッチ
サイエンスとか眺めてみると…売り切れだなぁ。当面は入手
が難しいかな…

タイマ割込み以外はあまり気にしなくても、これまで通りの
感じで使えるだろうと思うので、タイマ割込みライブラリが
出回り始めたとなれば、あとは在庫が復活するのを待つばかり
だなぁ。




共立エレショップのメールに載ってたこれがなかなかよさげ。

モーターマウント130/140 (Φ20mm)

共立エレショップ

 


130モータ、140モータで使えるモータマウント。
モータ使った工作が捗りそう。






「あたらないカキ」

これはいいものだ!
マガキ用かなぁ?岩ガキなんかもいけるのかな?
なんといっても、カキは生食が一番うまいもんなぁ。

まぁ、これまでの養殖カキに比べれば、機材も手間暇も
多いだろうから、高くはなっちゃうだろうけどな。でも
安心して食べられるのはいいよなこれ。

いくらくらいになるんだろう?






3Dプリンタ住宅。この社長さんの考えているビジョンは
とてもいいものだと思うなぁ。

3Dプリンタで作るコンクリの建物って、やっぱ一番気に
なるのは、ただのコンクリだとヒビが入ったらそのまま
ぽっきり欠けたり、天井崩れたり…ってことになりかねない
ことなんだよな。

多分、単なるコンクリだけで積層するんじゃないんだろう
けど、鉄筋コンクリに近い強度と耐久性、加えて断熱性
なんかも備えないと、住宅にはなかなか厳しい気がする
んだよな。

面白そうだったので、さらに調べていく。



メリットデメリットをちゃんと述べられていて好感。
やっぱり鉄筋の話は含まれていた。

旧来式の鉄筋と同じものを作るのは難しいかもしれないけど、
短くて細い針金みたいなのを大量にまぜたコンクリを使うって
いうのはすでに考えられているらしい。
(それがどのくらいの強度や耐久性を持つのかはよくわからない
ところだけど)

なんにしても、こういう形で建築のコストが激変していくのは、
住宅建築の業界に入ってくるお金が減ることにもなるわけなん
だけど、一方で他のことに使えるお金が増えるということだから、
多分経済学的にみても、世の中をいい方に変えていくチカラに
なるんじゃないのかなぁ?

宇宙開発とかで先に広く使われることになるんじゃないかと
思っていたけど、まさか一般住宅用にこういう技術が使われる
日が来るとは。なんか、この先が楽しみな技術分野だな。


コメント ( 0 )



« 前ページ 次ページ »