ダイドーブレンドのCM

ダイドーブレンドのCM
どうみてもアオイホノオアンノにしか見えないw

カテゴリー: ひとりごと | コメントする

Z80-MBCのファームウェアをなおしてみた

Z80-MBCでI/Oを使えるようにするため、ファームウェアの修正を行うことにした。
ソースを眺めてどう直すべきかは見当はついているが、まずはその前にArduino IDEの準備を行う。

Arduino IDEでATMEGA32Aを扱えるように準備する。
「ファイル」→「環境設定」で、「追加のボードマネージャのURL」に次のURLを指定。
https://mcudude.github.io/MightyCore/package_MCUdude_MightyCore_index.json

次に「ツール」→「ボード」→「ボードマネージャ」を選択。
ボードマネージャで「MigtyCore」を選んでインストールする。
ちなみに、下のボードマネージャの画面はインストール済みの場合。

インストールが済むと、ATMEGA32が使えるようになるのでATMEGA32を選択して他のパラメータも設定する。
 

設定が済んだら準備完了。
ファームウエアの修正を行う。
「S221116_R100218_Z80.ino」を読み込んで、修正して別名で保存する。
修正内容はI/Oの読み込みの際にATMEGA32Aのポートを出力に設定してデータを出力するところ。
元のプログラムではI/O処理の後に無条件で出力に設定してデータを出力しているので、これをI/Oアドレスが0x0f以下のときのみ出力するように修正。
切りのいいところで0x10からは自由にI/Oが使えるようにした。
修正前

        DDRA = 0xFF;                               // Configure Z80 data bus D0-D7 (PA0-PA7) as output
        PORTA = ioData;                            // Current output on data bus

修正後

        if (ioAddress <= 0x0f)
        {
          DDRA = 0xFF;                               // Configure Z80 data bus D0-D7 (PA0-PA7) as output
          PORTA = ioData;                            // Current output on data bus
        }

修正が終わったらコンパイルしてATMEGA32Aに書き込みをおこなう。
「スケッチ」→「コンパイルしたバイナリを出力」でコンパイルする。

コンパイルが済んだら2つのHEXファイルが作られるので、とりあえず「with_bootloader」と付いたほうのHEXファイルをライターで書き込む。
念のため新品のATMEGA32Aに新しいファームウェア書き込んで、ダメだったら元のATMEGA32Aに取り換えれば済むようにした。
新品なので、ヒューズの設定を忘れないように。
ネットでいろいろ調べて以下のようにした。
HIGH = 0xD6
LOW = 0xE4
LOCKBIT = 0xCF

ATMEGA32Aに書き込んだ後、早速ボードに取り付けて起動してみる。

変更したファームウェアであることがわかるように、修正の際にバージョン情報のところにFJTとつけてみた。
正しく起動できているようなので、早速82C55ボードをつないでMBASICでプログラムを実行してみる。

正しくI/Oデータの読み取りができるようになった。
スイッチで値を変更したらそれに合わせて表示される値も変更されることを確認。
MCP23017のI/Oも試して正しく動くことを確認して、ほかに影響が出ていないことも確認。

これでI/Oを拡張して遊ぶことも可能になった。
さて、どうやって遊ぼうかな。

カテゴリー: Arduino, Z80-MBC, 電子工作 | コメントする

Z80-MBCのI/Oで遊んでみた(MCP23017と82C55)

Z80-MBCのI/Oで遊んでみる前に、I/Oマップを確認して空きアドレスを確認する。
ソースファイル(S221116_R100218_Z80.ino)を眺めてATMEGA32A上にあるI/Oマップを書き起こしてみた。

IOadd WRITE READ
0x00 USER LED USER KEY
0x01 SERIAL TX SERIAL RX
0x02 READ BOOT PHASE 2 PAYLOAD
0x03 GPIOA write GPIOA read
0x04 GPIOB write GPIOB read
0x05 IODIRA write ERRDISK
0x06 IODIRB write READSECT
0x07 GPPUA write SYSFLAGS
0x08 GPPUB write DATETIME
0x09 SELDISK
0x0a SELTRACK
0x0b SELSECT
0x0c WRITESECT

0x0cまで使われているので、それ以降のI/Oは自由に使えそうだ。

まずはMCP23017で遊んでみる。

Aポートは入力で、Bポートは出力として、CP/MのMBASICでプログラムを組んでみる。
ついでに日時の表示も行ってみた。

 
10 PRINT "I/O test"
20 SECONDS = INP(7)
30 SECONDS = INP(8)
40 MINUTES = INP(8)
50 HOURS = INP(8)
60 DAY = INP(8)
70 MONTH = INP(8)
80 YEAR = INP(8)
90 PRINT "THE TIME IS: ";HOURS;":";MINUTES;":";SECONDS
100 PRINT "THE DATE IS: ";DAY;"/";MONTH;"/";YEAR
110 PRINT
120 PRINT "Port A is input"
130 PRINT "Port B is output"
140 PRINT "Poat A => B"
150 PRINT "Port A = 0xFF is end"
160 OUT 5,255
170 OUT 6,0
180 OUT 7,0
190 OUT 8,0
200 PA = INP(3)
210 OUT 4,PA
220 IF PA=255 THEN END
230 GOTO 200

次はポケコン用に作った82C55ボードをつないでみる。
まずは、Z80から直で出ている信号からI/Oに必要な信号を82C55ボードをつなぐための拡張ボードを作成。

リセット信号がZ80ではLでリセットされるのに対し、ポケコンではリセット時にはHが出力されるので、トランジスタを使って信号を反転させてある。

拡張ボードを実装してみたところ。

早速82C55ボードを接続してテストしてみる。
ポートA,Bは出力に、ポートCは入力に設定。
あとはポートA,Bにデータを出力しながら、ポートCの値を読み取って表示するプログラムを組んでみる。

 
10 out &h23,&h89
20 for y=0 to 255
30  out &h21,y
40  for x=0 to 255
50   out &h20,x
60   a=inp(&h22)
70   print a
80  next
90 next


出力については問題ないが、I/Oの読み取りはできないようだ。
ソースファイル(S221116_R100218_Z80.ino)を読んでみると、I/Oの読み取りに関しては、ATMEGA32Aで使用しているI/Oアドレス外を指定した場合ATMEGA32Aから0が出力されるようになっている。


ソースファイルからどう直せばいいかある程度の見当はついているけど、果たしてうまくいくだろうか。
ATMEGA32をArduinoの環境で使うには、若干準備が必要らしいのでまずはその準備をしなければ。

カテゴリー: Z80-MBC, 電子工作 | コメントする

Z80-MBCを作ってみた

先日書いたZ80-MBCの部品セットについて。
セットについているATMEGA32にはすでにファームが書き込み済みで、最大の難問である書き込みは行わずICソケットにZ80やらICを差し込んでしまえばすぐに動作してくれる。(CP/Mはまた別に書き込む必要がある)

ユニバーサルエリアには IOエキスパンダのMCP23017RTCのDS1307+を搭載

特にRTCについてSOPタイプのDS1307ZN+T&RTRにしなかったのは、全体のデザイン的にDIPタイプの物を使ったほうが統一感があったし配線が楽だから。


裏面の様子。

すでにCP/MやMBASICで少し遊んでみたけど、それはまた後日。
ポケコン用に作った82C55ボードが繋がらないか思案中。

カテゴリー: Z80-MBC, 電子工作 | コメントする

ORANGE picoを作ってみた

何気に面白そうだったので、ORANGE picoType Dを作ってみた。

JP6,7と8,9はスライドスイッチに置き換えて切り替えやすくした。
特に、JP6,7はシリアルポートとUSBをつかさどるサブCPUとの切り離しを楽に行えるようにした。
ORANGE picoのほかにIchigoJamも作ってみたけど、Ichigo Jamは正直使い勝手が微妙。グラフィックを扱うにもPanCakeが必要でディスプレイを切り替えながらか2台準備して両方表示させるかしないとならない。
変数も整数しか扱えないし、子供向けなのはわかるけど、逆に取っつきにくくてほとんど放置状態。
ORANGE picoはその辺整数だけでなく実数も使えるようだし、グラフィックも普通に使えるので、そこそこ楽しめそうだ。
ただ、遊んでみて気づいたことだが、PS/2接続のキーボードではカナ入力できるのに、USB接続のキーボードの場合カナ入力ができなかったり、ディスプレイ(テレビ)出力では正しく動く表示できるものが表示先をLCDにした場合に正しく表示できない場合があったり、スクリーンエディタが思った通りに編集できなかったりと難点がないわけでもない。

ついでにプリンタも買ってつないでみた。
プリンタをつなぐ場合、プリンタに付属しているケーブルの色に惑わされてはいけない。
付属の取説は見事にケーブルの色に惑わされていて間違った内容になっているので注意。
プリンタ本体に刻印されている信号が正解で、正しく接続すればプリンタ用電源とORANGE picoのGNDを接続する配線も必要なくなる。
写真だとわかりにくいので、文字を書き足しておいた。

下が印刷した結果。

ナダ電子製AS-289R2プリンタシールドではないので、lptコマンドでは汎用プリンター(101または102)を選択する必要があるが、取説ではlpt 1となっている。
まあどっちでも使えるっぽいけど、プリンタ側とグラフィックを扱う命令が異なるっぽいので注意が必要かも。
また、一度lpt 1を実行した後にlpt 101と打たないと汎用プリンタが使えないのでこちらも注意。
で、文字コードについてデフォルトの状態(写真左)だとカナ文字が印字できないのだが、ダメ元でESC/POSコマンドで文字コードを選択してみたらカナ文字が印刷できるようになった(写真右)。

他にもZ80-MBCの部品セットも買って作ったので、いろいろいじってみる予定。

カテゴリー: 電子工作 | コメントする

オーディオ環境をでっちあげてみた

ラズパイマガジン 2018年4月号の付録を作ってみて、以前作ったアンプや買うだけ買って作ってなかったイコライザなとを組み合わせてみた。
とりあえず全景。

今回は、100円ショップで売っていたアクリル製品を利用している。

普段はアクリルの残材などを使って作っているスタンドですが、ちょうどいい大きさの物があったので、今回はそれを買って利用。
他にもアクリル板をコの字に加工したものがあって、サイズがちょうどだったので2つ使って棚状に組み合わせて使っている。そのまま重ねてもずれたりするので、ここは残材のアクリル板を接着して固定している。

上段の様子。

上からラズパイマガジン 2018年4月号の付録。
次におとなの科学で売られていた真空管アンプ
そしてベビー・アンプ [ PS-3238 ]TELキット 5分割グラフィックイコライザ
その下に電源(12V)と音源の分配ユニット。
スピーカーは以前作った物を塗装した。

中段の様子。

以前作ったローノイズパワーアンプ [AKIT-326]と新たに作ったスピーカー
枠に吊るされるように取り付けてあるのがオーディオ スペクトラムインジケータ
作るだけ作って使ってないものも置いてあるけど。

スペアナ用に単独で電源を用意すれば特に問題ないけど、ACアダプタをこれ以上増やしたくないため分配ユニットから電源を取るとようにしたのだが、そうするとノイズが回ってくるので、間にOPアンプを使ってバッファを設けようと考えた。

そしたらちょうど秋月のNJM4580DD使用ヘッドホンアンプキットというのが目的にぴったりだったので、これを使うことにした。
電源は3端子レギュレータキット 5V DCジャック版(DCJ版)で5Vに降圧している。

背面の様子。

分配ユニットで配線を減らそうとしたけど、やっぱりごちゃごちゃしてしまう。

概要は下の図の通り。

電源は一括でON/OFFできるようにつくってある。
図にはないけど、ユニット前面のジャックに別の音源を差すとそちらが優先されるようになっている。

今回、このオーディオラックを作ってみて、久々にいろんな曲を聴いてみた。
やっぱスペアナついていると、曲を聴いていて面白いよね。
この手のキットって、ほかの面白そうなキットも含めて最近は輸入物ばかりなんだけど、日本のメーカーも数が限られているからなぁ・・・

カテゴリー: RaspberryPi, 電子工作 | コメントする

VPNサーバの自力での構築はあきらめた

何年も前からVPNサーバの構築に挑んでいたが、結局あきらめた。

もともとは仕事の関係でスマホでL2TP/IPsecを使ってVPNのサービスできないものかと検討を始めたことがきっかけで、そのとき自分の家とVPNをつなげたら外出先で自宅のPCいじれるんじゃねってことで、ネットでググりながら構築を始めたのが最初。

どうやらPPTPよりもL2TPの方が制限事項もなくIPsecと組み合わせてセキュアにつなぐことができるらしいとのことだが、そのころはPPTPが使えるブロードバンドルーターはあっても、L2TPに対応しているルーターは皆無だったので、自分で構築するしかなかった。

旧ひとりごとでも何度か書いたような気がするけど、最初はPCでLinuxを動かしてOpenswan等を使って構築。
しかし最初の数分は通信ができるけど、それを過ぎると途端に通信できなくなる。
いろいろ試してみたけどダメだった。

その後引っ越しして、さらに時間が経った頃にRaspberry Piが発売された。
今度はRaspberry Piで同じように構築してみようと思い実行してみたが、やはり通信できるのは初めのうちだけで、そのうちに疎通が途切れる状態。

PC+LinuxでやってもRaspberry Piでやっても全然だめで、どうしたものかと思いながら、amazonでL2TP/IPsecに対応したルーターがないものかと検索したところ、値段的に高いものの対応しているルーターがいくつか見つかった。
数年間やってもうまくいかず、今後も見通しが立たないのであれは2万円ぐらいまで出してもいいかなと思ってたところ、手ごろな値段のルーターを見つけることができた。
PLANEX 10/100Mbps 有線タイプ VPNルータ VPN-41FE IPSec・L2TP・PPTP対応
結局このルーターを購入してVPNを使えるようにした。

VPNサーバを構築・試験するために作ったラック。
100円ショップで買ったパーツを組み合わせて試験ラックを作った。
Raspberry Piが3台あり、元VPNサーバ用、VPN接続確認兼WardPress練習兼プラグイン検証用のWebサーバ、試験用LANと室内LANをつなぐための踏み台サーバ。
さらにLATEPANDAがWindows版の踏み台サーバとしてつながっている。
VPNは試験用LANにつながって、直接室内LANには入れないようにしてある。

結局VPNは製品を使ってしまったので、これらの機器については今後どうしようか悩みどころだ。

カテゴリー: ひとりごと | コメントする

ラズパイマガジン 2018年4月号の付録をいじってみた

ラズパイマガジン 2018年4月号の付録について、筆者のページにて4月4日版の最新ソフトが公開されていたので、導入してみた。
リモコンから、再起動、シャットダウンの機能が追加されていた。
しかし、自分としてはIPアドレスの表示の機能がほしかったので、自力で追加してみた。

システムメニューの空きスペースに無理やりIPアドレスの表示を突っ込んでみた。
eth0はつながっていないので赤で000.000.000.000の表示をしている。

ソフトウエアの変更点だけをdiffで取ってみた。
もう少しうまくできると思うんだけど、Pythonをはじめから勉強する必要ありそうだな。

 
root@superdac:/usr/local/bin# diff superdac.py superdac.py.orig
350,357d349
<                               os.system('ip a show dev eth0 | grep "inet " | sed -e \'s/^ *inet //\' | cut -f1 -d "/" > /usr/local/bin/ip-eth0.txt')
<                               fe=open('/usr/local/bin/ip-eth0.txt')
<                               ipeth=fe.read()
<                               fe.close
<                               os.system('ip a show dev wlan0 | grep "inet " | sed -e \'s/^ *inet //\' | cut -f1 -d "/" > /usr/local/bin/ip-wlan0.txt')
<                               fw=open('/usr/local/bin/ip-wlan0.txt')
<                               ipwlan=fw.read()
<                               fw.close
366,378d357
<                               draw.text((0,58) , 'IPアドレス'      , font=jpfont, fill='#FFCC00')
<                               draw.text((0,72) , 'eth0'            , font=jpfont, fill='#88FFFF')
<                               if ipeth == '':
<                                       draw.text((0,86) , '000.000.000.000' , font=jpfont, fill='#FF0000')
<                               else:
<                                       draw.text((0,86) , ipeth             , font=jpfont, fill='#44FF88')
<
<                               draw.text((0,104), 'wlan0'           , font=jpfont, fill='#88FFFF')
<                               if ipwlan == '':
<                                       draw.text((0,118) , '000.000.000.000' , font=jpfont, fill='#FF0000')
<                               else:
<                                       draw.text((0,118), ipwlan            , font=jpfont, fill='#44FF88')
<
root@superdac:/usr/local/bin#

 

カテゴリー: RaspberryPi | コメントする

スマホ用Bluetoothリモートシャッター

ネットをウオッチしていたところ、ダイソーでBluetoothを使ってスマホのカメラのシャッターが操作できる商品があるとあった。
早速自分でも手に入れて確認してみる。

使い勝手は、まあ悪くない。
三脚を使って写真を撮ろうとすると、ズーム操作やシャッターが押しにくいと感じることがある。
ダイソーでスマホ用Bluetoothリモートシャッターを発見→分解→ちょい改造:ウェブ情報実験室で改造記事を読むと、ボリューム調整ができるように改造しています。
しかし記事のままの改造では、手持ちのスマホの場合、ボリュームの調整はそのままズームの調整だけでシャッターを切ることはできません。
そこで、ボリューム調整(ズーム調整)とシャッターが使えるようにタクトスイッチ3つ使ったものにしてみた。

新規で買ったのはタカチ電機のコイン電池が入れられるCS75Nと専用の基板ぐらい。
後は手持ちのタクトスイッチとスライドスイッチを使用。

実際組んでみたところ。
ポリイミドテープで絶縁して両面テープで固定。
面倒なのはICから直接配線するところぐらいで、あとか既存のスイッチのパターンやチェック用のパターンを利用して配線。

ケースに組んだところ。

ボリューム(V-,V+)でズーム調整で、シャッターボタンでシャッターを切ることができる。
使いやすいようにタクトスイッチは三角に配置してみた。
これで三脚を利用した撮影がやりやすくなった。

ただ、この改造はグレーゾーンでもある。
もとの商品は技適を取ってあるが、改造したことで技適的にどうなのだろうか。
スイッチを追加して外見を変化しているだけで、無線上の特性は変わってないはずだが。
室内だけで使って、あまり多様はしないほうがいいかもしれない。

そういえば以前、携帯電話端末関係の仕事で技適がどうこうってことで苦労したことがあったな。
かなり面倒で落としどころを見つけるまで結構時間がかかったような気がする。

しかし、某店では技適取ってないだろ的な商品や怪しい名称の機器や明らかにコピー品を売ってたりしてるし実際のところどうなんでしょう。

カテゴリー: 電子工作 | コメントする

電車で見かけたヴァカ者ども その2

電車で見かけたヴァカ者どものその第2弾。

1ヶ月か2ヶ月ぐらい前だったと思ったけど、ネタにしようしようと思ってたらこんなに時間が経ってしまった。

それはともかく駅を利用していると、意味不明な行動を行っている奴に出くわすことがある。
一つ目は、まっすぐす進めばすぐに改札機があるのに、なぜか進路を変えて自分の前に割り込んできたバカ女。
磁気カードの定期や切符で対応してないからやむなくというわけでもなく、普通にICカード式の定期を出していた。
なんでわざわざ進路を変える必要があるか理解できない。


そういえば、ICカードをこれでもかってぐらいに改札機にたたきつける奴もいるけど、一体何考えているのか理解できない。

もう一つは、並ぼうとしたところを横から割り込まれた。

横から見てたら並ぼうとしているのがわかるだろうに、自分が合間を詰めようとしている隙に割り込まれてしまった。
ほんとふざけんなって感じだ。

そういえば、先日、電車に乗ってたら出入り口付近の通路のど真ん中に座り込んでベルマークかなんかをハサミで切り出した奴がいた。
邪魔この上なかったので写真でも撮ろうかと思ったが、シャッター音をさせるのもアレなのでやめた。

他にもひゃっくりのように奇声を上げ続ける奴とか、最近見かけないけど電車の中でいきなりでかい声で歌いだす奴も見かけたのだが、そういった連中をどうにか排除できないものか。

カテゴリー: ひとりごと | コメントする