散歩師・漫画居士のくだらなクラブ日記

ども、散歩師・漫画居士っす。散歩したり実働模型作ったりが趣味なんで、その時に思いついたこととか書くッス

大きな話を先にするか、小さな話を先にするか

レビュー用の資料を作ってていつも困ることがある。

「大きな話を先」にするか「小さな話を先」にするかだ。

 

 

イメージとしてはこういうこと。

--大きな話が先
def main(){
    sub1();
}


def sub1(){
}

--

 

--小さな話が先
def sub1(){
}

 

def main(){
    sub1();
}
--

 

文章の書き方本では、だいたい「大きな話を先」と書いてあるが、

実際にレビューすると、

「sub1()ってなんだよ?」って、必ずなる。

 

だからといって「小さな話を先」にすれば、

「sub1()は何に使うのかわからん、早く本題に入れ」と言われる。

 

一般的に言って、頭がよくて、物事は単純だと思ってる人は、

「小さな話を先」の方がマシのようだ。

なかなか難しい。

 

 

答えがない

素ボディ byエポック ガシャ

その他はイマイチですが、ガシャは盛況なエポック

素ボディ、なかなかいいですな。

足のジョイントがゆるいのと、手が持たせづらいのを無視すれば、だいたいOKで

 

久しぶりにガシャを回したんだけど

昔みたいに「当たった!」という射幸心よりも

デバグの感覚を感じるようになりました。「うわー、まだバグ落ちねぇ」みたいな。

 

 

写真はそのうち

 

まだレビューがないよ - 模型裏@ふたば

47歳で子供かー

おととい、早くに帰ったので、19:00ころ書楽(書店)によったら、

何年かぶりに小学校時代の友達に出くわした。

3~5年周期になんどもこの店でこの時間位に会ってるきがする。

 

今回は、いつもと状況が変わって、子供と嫁さんと一緒だった。

娘ちゃんは1.5歳だとか。

となると、地震前後に結婚か。

 

 俺も子供は欲しかったけっど、47歳で子供は無いなと思って諦めた。

なんつうか、凄いな。

定年65歳に伸びたから、娘の大学卒業にギリギリ間に合うのか。

 仮にチャンスが有っても、俺はそっちを選ばなかったと思うけど、

子供を見て、正直失敗したかなぁとも思った。

 

 

久々に心が揺らいだ話。

tortoiseGitで特定のcommitのmessageを変更する方法

出来たので、メモ

1.messageを変えたいcommitにbranch

   showlog->blanch->force,   switchで

 

2.messageを変更

 フォルダーに戻ると、そのcommitの状態に戻ってるので

 そこでcommit

 commit→[v]ammend→ message編集→ok

 

3.mastarにcheckoutして、新しいコメントのcomitにHeadを移す

 show_log ->[v]All Branch→checkout mastar

 1.でのカレントのcommitをクリック→reset mastaer w/i◎Hard→OK

 

4. 1.でのカレントcommitへrebaseする

FFじゃないけど、ファイル構成がわ変わってないので、confrictなくrebaseできます。

 

 

これで、messageの書き換えが出来てるハズです。

副作用として、何度も再commitを繰り返すため、repogitoryサイズがでかくなるんですが、しかなたいですかね…

 

 

Gitいいよ。Git

aviosys オペアンプ実験キットを作った

年末に作った大盛況(ファミマチャイム)の音なんですが

「大盛況」をBeMicroMAX10で! - 散歩師・漫画居士のくだらなクラブ日記 避難所

 

ピエゾサウンダーで聞いてるせいで、本物よりも音が固い感じがします。

ダイナミックスピーカーで聞いてみたく、手持ちの386とエミッタフォロアーでどうにか。とか考えつつ、押し入れを漁ると、2008年ころにマルツで買ったこんなキットを見つけました

f:id:mangakoji:20160106233814j:plain

台湾のaviosysってメーカーのキットなんですが、ここのキットは酷くてですね。

わかってる人にしか扱えない系のモンなんですよ。英語と中文取説だけなのはしかたないとしても、回路的にイロイロダメで。面白くはありますが…。

当時はサイトにキットの情報がupされてたんですが、既に影も形もですな。

 

同メーカーのPWMモーターコントローラは、設計通りに4cellでは動かなくて、電源強化する必要がある上に、ベース電流が適正じゃないので、相当熱くなる上に波形も丸まっちくて、値段なりでしたね、

でもこれ、結構部品が入ってて500円ですよ。当時は本当に円高だったんだなぁと。

Operation Amplifier Application オペアンプ実験キット (K29/2PK2900)

 

思ったよりも作例が上がってますな。

http://image01w.seesaawiki.jp/e/2/ewa512/dff98e49.pdf

http://image01w.seesaawiki.jp/e/2/ewa512/f378192d.pdf

 

741使ってる時点で悪い予感がしましたが、スピーカー駆動には386を使ってるのでそこだけ使えればイイやとおもって、作ってみました。シグナルトレーサー/モニターとして使いたいわけで。

さすがに386の回路を間違えることはないだろうと。

741を使った正転アンプは10k抵抗で中点出ししてGNDとして使ってました、他の発信器も各個抵抗で中点出し。インピーダンス高か~

 

386のボリュームを下げると、発信機の発信が止まり、上げるとこんどは386が発振して歪むとか。

006Pスナップがついてますが、006Pではドライブしきれる回路になってないみたいです。んーどう使おうか。

CRもなぜか設計推奨値になってないんですが、006P対応で、いろいろやっちゃったんでしょうね。効いてないみたいですが。

 

386の回路だけを裸にして、件のファミマチャイムにつなぐと、

ボリュームを相当下げないと歪む歪む。

よくわかりませんが、006Pでは電流引ききれないってことなのかなぁと。

入力フルレンジで3.3Vだもんね。

 

とりあえずここまで。

 

 

 

元旦工作でZOZOTOWNのストームトルーパーヘルメット(ダンボール)を作る

元旦に、近所を散歩してると、ゴミ捨て場のダンボールの束のなかに、

ZOZOTOWNの箱が、

何やら印刷してあるので、よく見るとストームトルーパーのヘルメットのキットでした。

なんか、俺に作ってくれ!って言ってるみたいだったので、保護して元旦工作。

 

(私は、大晦日と元旦には締め切りのあることをしないと決めてるです。

得に元旦はPCも封鎖)

f:id:mangakoji:20160102144936j:plain

 

実は天板の部品だけ欠品で、他のダンボールでありあわせたんですが

結構なんとかなるもんですな。

正味2時間なり

 

このキット、折り目の押しまで入ってて、作らせる気満々ですよ。

WEBにもこんなに作例が!

ZOZTOWN ダンボール - Google 検索

 

しかし、これ。

昔だったらTVCM打つくらいの付録だよな。

 

かぶれるよ!

BeMicroMAX10でDVIを出力する話(一応完

BeMicroMAX10でDVI出力出来ました。延べ24H?

廉価FPGAでHDMI(DVI)出力 - sa89a.net をほぼ踏襲してます。

sa89aさんありがとう

f:id:mangakoji:20151231145318p:plain

フォーマットは

以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).

と称されるものです。↓

http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf

 

f:id:mangakoji:20151231143623p:plain

出力はHDMIメスコネクタを介してDVI出力しています。

CK,R,G,Bの各+/-/GNDの3本と、17pin DDCGNDと、ケースGNDのみ接続。

それ以外はNCです。

配線は、今回はじめてポリウレタン線を使いましたが、楽ですね。ちゃんとついてる時はピピっと引っ張ると、リールが回って線が伸びるので、一発でわかるのとか、楽です。

↓ポリウレタン線配線TIPSはこちら。

ELM - プロト基板の配線テクニック

 

sa89aさんの作例通り、各信号線には270Ωのダンピングを入れてあります。

s_osafune氏の作例の様にDCレベル変換もする予定だったんですが、620Ωが手に入らなかったので...

 

 ■■ sa89a版との差は?

1.プラットフォームをBeMicroMAX10に変更

2.LVDSを擬似からpureに変更(ただしVCCIOは3.3V)

3.フォーマットを720x480Pに変更

4.systemCKを135MHzに/CKEでpix ckをctl

5.serilalizer を240Mbpsに/1:10から1:2に

 

■■公開

リポジトリは、こちら↓

https://github.com/mangakoji/DVI_720x480P59_94FPS_BeMicroMAX10

(sa89aさんのソースはご自由にということなので、公開します)

IPはリビルトしてくださいね。 

(いつのまにかHigh effortでないとタイミングメットしなくなってる。ナゼ? pin配置?)

 

晴れて念願のデジタル映像環境を手に入れたわけですが(HDMI映像機器持ってないのね。このために中古DVIモニター買ったのよ)

やっとFPGAからホボ直でデジタル映像を出せたけど、コレって、去年の技術なんよね。

 

何作るかなぁ~

 

「大盛況」をBeMicroMAX10で!

DVIの実装が峠を迎えるにあたり、プラモデル的簡単な作れば必ず動くアイティムを完成させて、気分を楽にすることに。

 名曲「大盛況」をBeMicroMAX10に移植しました!

https://lh3.googleusercontent.com/GM7ILsNv8L1S9orHdIdegmXJdKKvlPobDwtpFIXT9dgacR_JgzvD7LemdXHT0JIXXGEVMKFQPp5xBEGn8C6ozg6BOsX-4UoV56ZBflSeAiLJ7LEZ86znY04yTKbj43C2bLT1WV4r4_cyv53ng8eytn_s9OqhD8KP3xjZAx6jNRb-BIC2GTCusWQJ3WKOok6ItZ6PwJX561UmiAzKdUsCWL8EccSUGt-KvVjK_LuZi9BEocML4T-Gvj8CvZXEbgB2I6NY4Ys68ReTBuboNVQXtUoi1A25LN8sXp4JFBgCpF08jk-RCdx4hCCsHnA482QSHLp_3bhv8qh5MWvSH7tCx87ofvwarM2G9RUtzho7pSNjZElFlK3JGVuHyjKlufvNDryu6HNvseCS82KDZpvEP_5Jy3kZ0uu0JgUPUQ78n00_6xyg80idibHsHLjWCkrLUh40jWexMulId0TQTkUNLfL7rC_1EAF1akXuLtE_FwEeYJmqeCQN2uXRWwZEEumIoHuokEBNQ4B-VVIHsna7RuJAwT0fVF28LbrHHw_5SjgGIhc2bHFMOxglq276Y1I6MjZ66w=w1905-h1071-no

 

(大盛況は某コンビニ入店アラームで有名なナショナル電工のEC522の音声のことですよ『ふぁみふぁみまー♪』)

 

と、偉そうに書きましたが、@s_osafuneさんFPGAマガジン記事の記事の

Terasic DE0版を移植しただけです。

IPを全く使ってない上にマスタckも同じ50MHzだったので、本当にラッパ書いただけのプラモ感覚。

(圧電素子の電圧稼ぎのために、正相の他に逆相出力も追加してました)

 

以下が元記事

1.FPGAマガジンNo.9

2.@s_osafneさんのbLog

j-7system.blog.so-net.ne.jp

 

■■プロジェクト集め

1.まず@s_osafne氏のTerasc DE0版のプロジェクト リポジトリを手に入れます

Githubリポジトリ

→ osafune/CQEXT_melodychime · GitHub

zip版も準備されてるので、Gitをインスコしてない方はそちらをどうぞ。

(Git便利なんで、Gitインスコしましょうぞ)

 

2.BeMicroMAX10用差分

https://drive.google.com/file/d/0Bx4apUeGhJZwQm90ZUJ1Ri1JNWs/view?usp=sharing

これを解凍して、

./CQEXT_melodychime/qsf

に上書きしてください。

3.コンパイル

 あとは、./qsf/*.qpfを開いて、なりにコンパイルすればokです

 

■■操作法

1.BeMicroMAX10にsof or pofを書く

2.U5-1,U5-2に圧電スピーカーを繋いでください

3.SW1~4を押せば、名曲を奏でます。

 

 

■■

GitHub公開のライセンスがイマイチわからないので、

変則的な公開(差分のみ別公開)ですが、

本当は、GitHubレポジトリを公開するべきなんでしょうね...

正直良くわかりません。

 

 

■■006P電源

 ついでに9V電池006Pを使った電源を作りました。

これを使えば、セブン-イレブンに入るときに『大盛況』を流すという野望が達成できるのです!

 9V→5V変換は以下を使いました

→ 006P安定化電源モジュールキット: 組立キット 秋月電子通商

が、電源コネクタ/プラグが曲者で、外形は極性統一#2

→ マル信無線電機 MP-202L DCプラグ 極性統一#2(L型)ブッシュ無し

でイケるのですが、中pinが細すぎで、しかも若干浅いので、アルミ箔をねじ込んでなんとか使える状態。まだ接触不良中。

schに書いてあるpin径じゃないし、一体なんて規格なんだろう。

5Vなんだから普通に統一#1にしてくれればいいのに。

 

BeMicroMax10でDVIを出力する

 とりあえず、第一段階通過。

https://lh3.googleusercontent.com/AEVRiNp-qCR8EZIP_9g43cnMesmAA2ULc0Sc9qE3ZaDrZkHWNLIQQ3pxq7mnYqlzME9i94Fw-G_FXe9MweyywL3WRCgogDJPr7s__oztUoNBGAfLsAQ0wP0kixJqH_IX_c_-z4t319sXwcsicoLFIIts_G28NsW7mVBnga-XR_MvxLhZ-7-LkGYN_E2CXzvgu4nlJ5jo-KHLET_AayYN7tB7ewdNPbFYfNeDmGZmmbOwHzKM9A8NtFnHEuEvCzCG7bO0Bv1AczLTIALkP3KQ17oPbEFwjNmZPbrbhmkXhu8BxionjK_qE2Wvxm5HNCfp5D2HAmGI9PQ2xwZI4Qdg70VLIZ6cJ7FsG1r46Cp3KHMJApOGF3707zZUT_2TDLurOLNOv3Uf8YJ8W5cF4b1H7gKA5JQASMfb60QuVNOq91kNovd97spKy5pWuwMBT9nb27GCQwDM4g3jDHJ8u9m9OhbsytlYzVEsM-qBNUEMNLsFfsEWVAoXF_vHwmLPimmZFrs83myjCRX_tOQW0teefoupKCG_Mt7HVXjcU2o_56LIe36t56gND46YR6oDTgfjU0mmaw=w1920-h1080-no

やったことはといえば、

廉価FPGAでHDMI(DVI)出力 - sa89a.net

をBeMicroMAX10に移植したのと、

コネクタHDMIにしただけです。

抵抗ネットワークも同じ

720x480x59.94FPSモードを使いたいと思ってるんですが、

どうしてもダメでだったので、まずはということで移植。

 

ありがとうございます。> sa89a.netさん。

あと、FPGAマガジンも参考にしてます>osafneさん

 

ラッチミスバリバリですが、RGB全色入ってるので、傷は浅そう。

 

 

先は長いが、第一段階

 

SVNからGitへ移行

ども、DVI、コンパイルまで終わってるんですがコネクタ配線で決めまきゃならんことがあって、迷ってる中です。

気晴らしというか、この正月工作に向けて、バージョン管理をsvnから今、人気絶好調のGiJoeじゃなかったGit に乗り換えようかと画策中です。

クライアントは、TortoiseGitにしました。TortiseSvn使ってるので。

 

■■インスコ

インスコは以下のサイト参考にしたら、シャンシャンでした

TortoiseGitの前にmsysgitをインスコするのをお忘れなく

www.backlog.jp

基本的な使い方もこちらでバッチリです

TortoiseGit の基礎勉強 ~ TortoiseGit によるバージョン管理 ~ — バージョン管理システム入門(初心者向け)

 

 

■■問題

ここで、解決出来た問題と、解決出来ない問題が

■アイコンオーバーレイが表示されない

 TortoiseGitは、Git管理下のファイルか?commit完了してるか?などをMS-Windowsエクスプローラー上で、アイコン部分に記号を表示する機能があります。

この機能は、MS-Windowsのicon-overlay機能を使ってます。

これがないと、TortoiseGitを選択した魅力半減なのですよ。

以下で解決

urashita.com

私の場合は、dropboxのアイコンオーバーレイが過剰だったんですが、

dropboxを捨てられないので、Tortoise側のオーバーレイを削ってみました。

 

SVN リポジトリが読み込めない (解決 2.5H

 TortoiseGit/msysgitには、SVNリポジトリを読み込んだりcommitする機能があるのですが、なぜか「URLパスが見つからない」エラーでダメでした。

command lineでもダメでした。

 ローカルにあるのでfile:///がダメなんでしょうが、ローカルでhttpサーバ立てるしかないんですかね?

以下の記事の svn://経由というテクニックで移転できました。

 

d.hatena.ne.jp

 

むむむ、複数のprojectが一つのレポジトリに入ってて分離できない。

どっちかって言うと、svnの使い方がおかしかった模様。なんとか分離できんかなぁ

 

■log messageの変更が出来ない(未解決

 svnはlogのmessageを後から編集して見やすくできるので、随分助かってます。Gitではなかなか大変みたいで。

TortoiseGitでは結局変更方法がわかりませんでした。直前のコミット分だけは、偶然変更できたのですが、再現方がわからず。

 

■ファイル/dirのmove(解決?

今まで使ってるsvnは、それ以前のcvsに比べて、ファイルのmoveが出来る、さらに履歴を引き継げるのが売りでした。

なんだか、Gitでは不可能になってて、cvs同様del/add扱いらしく、これは多きな問題なので、考え中です。

 --実験してみたら、del and addの場合は、履歴が残るみたいですが

なぜか、管理下フラグが消えてしまう(履歴自体はタグれる)ファイルがあったり

色々不安が残ります

 

 

そんな感じで、不安ながらもGitへ移行しました。

【DVIを】【BeMicroMAX10で】4日目?

以下 EIA/CEA-861-Bの4.5 720x480p @59.94/60 Hz (Formats 2 & 3).

と称されるものに従いました

 

http://read.pudn.com/downloads74/ebook/269248/EIA-CEA-861-B.pdf

 

 だー!!

既にダウンしてあるpdfの出元調べるだけで1時間たってしまった!

 

本文はもう明日!!!

BeMicroMAX10で純正律オルガンを作る(未完

先週末~金曜作った12bit in 12bit outのsinテブルを使い、土日に16時間ほどかけて純正律のオルガンを実装しました。前から作りたかったんですよ。

が、色々問題があって、完成に至りませんでした。

完成しなかったので完成品のプロジェクトは出せないんですが、問題点リストは需要があるかもなので、そちらをupします。

 

■■MAX10はROM推測できないの?

 ALTERAのデバイスは、ピュアHDLで書いても(IPを使わなくても)ROMを実装することができます。(XilinxでもMicroSemiでもLatticeでも多分できますが。)

具体的には、以下の

「6. 推奨される HDL コーディング構文」6-24

https://www.altera.co.jp/ja_JP/pdfs/literature/hb/qts/qts_qii51007_j.pdf

の記述方法でROM推測してくれて、M9Kに展開してくれる筈なんですが、

MAX10 + Quartus Prime v15.1の組み合わせでは旨くゆきませんでした。

入力/出力両方にDFFを入れてみたんですが、それもダメ。

Cyclone I、CycloneVに、同じコードを入れてみましたが、こちらは推測してくれました。

困る。何が困るかというと、IPで設計しちゃうと、他のベンダー移植に労力がかかるし、simも大変になるし、sim実行に時間もかかります。

>>>解決 --160104mo追記

Device オプションで DeviceAndPinOptions->ConfigurationMode:で

~MemoryInitializationを選べば行けるみたいです。

が、MAX10は、FやA classのdual configできるデバイスでないとダメみたいですね?(容量のせいなのか、configデバイスのせいなのかは不明)

 

 

■14bit4入力加算は78MHz

 BeMicroMAX10搭載の10M08DAF484C8GEは、4入力s13bit加算に、78MHzかかりました。

しかたないので、2入力づつ1段叩いたら150MHz以上になりました。

192MHz動作するつもりでしたが、144MHzに妥協することに。

もう少し気にする必要があったみたいですね。

 

■サウンダーは効率悪いし歪むよ

 音出力は3.3VI/Oを逆相2ポート使って、サウンダー(100円ショップの盗難ブザーの圧電素子)を鳴らす予定でしたが、フルスイングでも、300Hzの正弦波はなんとか聞こえるレベル。

8和音とか言うと、1つの音の波高値はフルスイングの1/8になるので、パワーは-18dB(1/64)。結構HiFi?

おまけに、スプリアスがバリバリでるので、音質どころか、和音なんて言えないレベルでした。FFTの波高値で1/3くらいあるスプリアス。少なくともダイナミックスピーカーが必要なレベルなんですが、設計めんどっちーです。

多分100円ショップで探せば32Ω品があるので、それを8パラドライブすれば、聞こえるレベルにはなると思うんですが...

 

■和音用分周回路の比率計算間違い。

 任意周波数のシンセサイザーには、最近はやりのDDSみたいに、任意ステップのカウンタ(ステップ幅を周波数に比例させて大きくする)方法と

ステップは1で、1ステップ上がる時間を周波数の逆数に比例させるカウンタを使う方法がるわけです。

・ステップを変える方法の弱点

ステップ可変の方法は、システムクロック周波数を厳密に考える必要がなく、かなり自由な設計が出来る代わりに、システムクロック幅のジッターを持つ宿命にあります。

 

・周期(時間間隔)を変える方法の弱点

 逆に時間周期を変える方法は、作りたい周波数の波長の最小公倍数をマスタクロックにして、マスタクロックとの公倍数ごとに1カウントアップするような方法を取ります。

普通、マスタクロックの周波数がものすごく大きくなって、計算も大変なので、拒否られる方向です。

でも、ジッタはシステムクロックのスキュー分にとどまります。

 

  f:id:mangakoji:20151220230844p:plain

この表は純正律の各音の周波数(f)と周期(T)の比を通分したものです。

周波数は24、周期は180が分母になります。純正律は波長の比が単純なのが売りで

そのためにキレイな響きを発することができるのですが、それでも最小公約数が180にもなります。

f:id:mangakoji:20151220231314p:plain

 

これを元に、マスタクロックを計算して、48MHzでイイはず、だったんですが、

実装してオシロで周波数を測ってはじめて気が付きました。分母の108いらなかったのね。108だし。

正しくは

 fCKE=440x2^4x108x4096=3.114GHz

マスタークロック3.114GHzじゃん。というわけでした。

とりあえず、マスタークロックを144MHzにすればC7が200Hz前後になるため、今日は、この音を聴いて終わりということに。

残念!

sin tableの 精度向上

日曜のsin tableですが、

あれ、精度がたりませんね。区間代表値を無視して、足切りしてたッス。

tableを

y(n)=int(SWEEP * sin(n/pi/2))

でなく

y(n) = int(SWEEP * sin(n/pi/2)+.5)

で作るべきでした。

縦に0.5潰れてる格好。

 

 

あの回路そのままだと90°付近で(-)に折り返しちゃうんで、

そこは、直前の加算の結果のMSB(carry)で判定して、クリップしました。

 

というわけで、明日からはいよいよ音源作成。