SH-2A使用実験



>>動画フォーマットは?
>>mmv?
動画フォーマットは独自規格です。My Media Videoといったところでしょうか。
ヘッダ無しの無圧縮生データで、OpenCVの助けを借りて生成しています。
おかげさまで1分間のファイルサイズが320(pixel)*240(pixel)*2(byte)*15(fps)*60(s)=138MBととんでもなくでかくなってます。
余りメモリを消費せずに高速展開できるオススメの形式があったら教えていただけると幸せです。
一応フォトフレーム用bny, nokia3300動画再生用のmv8, mv9なんて規格も作ってるんですが正直どーでもいいですね
ちなみにフォントはFONTXのアスキー形式、音楽はリニアPCMの量子化8ビット48KHz, モノラルのwav形式を再生しています。
詳しくはこちら。
FONTX
wav

>>あのマイコンこんなにすごいのか
最近だとSTM32が人気ですけど、SHもまだまだ捨てたものじゃないと思ってます。

>>Arduinoしか使えない俺には難しい
Arduino使えれば十分だと思います。少なくとも自分はArduino使えないので、使ってる人見るとすごいなーと思います。

>>おおー
>>おおお
こういう反応見たくて投稿してみました^^

>>なるほど、全然分からん
自分も視聴者には分かってもらえないだろーなと思いながらも解説文書いてました。。。申し訳ございません。
簡単に言うと、通常DAコンバータで電圧を出力するところを、電源ON,OFFの時間比率で電圧を表現して出力している(例えば、3.3[V]の出力のピンに対し、ON時間0.1sec,OFF時間0.2secだった時、平均電圧=3.3*(0.1/(0.1+0.2))=1.1[V]と計算)という事なのですが、あまり分かっては貰えませんよね。。。またどこかで上手く解説させてもらおうと思ってます。

7月号のinterfaceにPWMで正弦波を表現する項(99ページ)がありますね。
あまり目を通してはいませんが、それもこちらと同じことをしてるんだと思います。


>>何気にTrevaに接続して、更に何かしようとしているw
そこに気がつく人がいるとは思ってもみませんでした。かなり感激です。
おっしゃる通り、カメラモジュールのTrevaを接続しています。
一応nokia3300で画像を表示させることはできるのですが、解像度も低くあまりきれいじゃないと思ったので今回は見せませんでした。
次回(があれば)はDMR-C1をタッチパネルに表示させようかなとも思ってるのですが、それよりもビデオコントローラ使った方が良いんじゃないかとちょっと悩んでます。

>>このボード3枚買ったよw
では自分のと合わせて2人で12冊も買ってるんですね。そもそもCQ出版はこんな価格でこの雑誌売って元取れてるのだろうか。

>>全体のブロック図があるとわかりやすい
そうですね。とりあえずテストということで何でもかんでもつけちゃおうと考えていたら、回路図やフローチャートすら描かずに適当に作り始めてしまったので、何とかそろそろまとめ始めたいと思います。

>>俺も6月号買っちまったよ…。
結構自分は他の人のブログとか巡回してるので、LED点滅だろうがなんだろうが使ってみたらぜひご連絡を!とんでいきますよ〜

>>追記:Treva通信と同時表示はfps厳しい。頭出しと8ビット分割を別マイコンにすると動画は吉
ご意見ありがとうございます。確かに頭出しに時間がかかっている感じです。
計測はしていませんが、スペック上では最大7fpsらしいですね。
少しでも早くするために頭出しを別マイコンで行うというのは面白そうですね!ちょっと検討してみます。

>>すまんでちまった。経験が知恵になるからがんばれ!リアルタイム描画はみてみたいぞw
使用者の意見というのはなかなか聞けないので、こういう場でも聞けるのは凄くありがたいなと思ってます。頑張ります!
ただ、実は既にリアルタイム描画やられてる方いるんですよね。。。しかもメチャクチャ滑らかです。
【youtube】SH-2Aマイコンでカメラ動画表示
自分はちょっと趣向を変えてリアルタイム画像処理の実験をしてみたいと思います!

>>ホホウ
このマイコンの性能に関心を向けられたのであれば何よりです^^

>>20us毎に割り込み処理?144MHzもあれば余裕か…
ですねー。しかも1クロックで同時に複数の命令を実行するスーパスカラ方式のプロセッサなので、CPUには一応345.6MIPSの処理能力があるみたいですよ。本当かどうか測定はしていませんが。
今回SDカードやLCD表示に専用コントローラを用いていないので、実はこの程度の処理を行うには2009年5月号のARMマイコンのほうがおそらく高速だと思います(あちらはSDホストコントローラが公開されている&汎用ポートのクロックも早い)。
このマイコンは普通のマイコンにはできそうもない大規模高速演算をするのによさげです。
基板サイズは大きめですが、豊富なPWM端子や位相計数モードがついていたり、ブラシレスモータを制御できたりもするので、大きめなロボットの製作に今後多くの場面で使われていくんじゃないかなと個人的にはちょっと期待してます。

>>ところでOSは?
入出力装置やファイルシステムをそれなりに作っているためOS使っているように見えるかもしれませんが、OSは使っていません。カーソル点滅処理とかガリガリ書いてます。
ちょっと変な所に気合入れすぎかなーという気もしますが、一応書体やフォントサイズも簡単に変更できるようになってたりします。
いつか自分もマイコンにOS入れてみたいですね。

>>同じことがしたいです!ソースと回路図教えてください!
回路図はまだ書いてないので、とりあえず現時点でのソースは公開しておきますね。
ファームウェア
回路図・動画形式変換プログラムはもう少しお待ちください。一応EncoderSistem.cppの170行目あたりに配線についてのコメント書いてありますが、、、分からないと思いますので後日ちゃんと用意します。

一応デバイスの購入先も書いておきますね。ニコ動に公開してあるような事をするのに最低限必要な部品は以下のようなものです。ちなみにaitendoは現在決算セール中でいろいろお買い得です。
携帯液晶nokia3300(400円)
2.4インチTFT液晶(キャリーボード付き)[YHY024006A-PCB](1584円)
【追記】もうちょっと大きい画面の方が好みの方はこちらの方が良いかもしれません。コントローラが同じなので基本プログラムを変更せずに使えます。 2.8インチTFT液晶(キャリーボード付き)
18MHzクリスタル
SDカードソケット
RS-232 Drivers/ReceiversのADM3202,あるいはMAX232互換品

注:これ以外にも実際はプルアップ抵抗やコンデンサ、32.768kHzクリスタル、タクトスイッチ、適当なコネクタ、ケーブル等お持ちである事を前提としています。

参考:
nokia6100を使ってみる
MMCの使い方
FAT FS フォーマットの実装についての覚え書き
超重要:ソースコードはかなり最適化をかけているため、プログラムを改変したり、自分以外の他の環境では動かないかもしれません。
特に、動かないときの原因には以下のような事が考えられます。
1.SDカードがFAT32である。
FATライブラリがFAT32には未対応であるため。使うならFAT16, FAT12
2.SDカードがclass4以下の通信速度である。
36Mbps(4.5MByte/sec)で転送しているため、最低保証が4MByteのSDカードでは読む事が出来ない。
3.RSPI転送速度を落としてみたら動かない
最適化をかけており、受信確認を行っていないため。
通信速度の遅いSDカード等を使って転送するためには、
RSPI_AD.SPDR.BYTE = txData;
receiveData = RSPI_AD.SPDR.BYTE;
の間に
do{
if(RSPI_AD.SPSR.BIT.OVRF == 1){//受信時のオーバーランエラー
RSPI_AD.SPSR.BIT.OVRF = 0;
return 0xFF;
}
}while(RSPI_AD.SPSR.BIT.SPRF == 0);//受信バッファフルフラグ
が必要。36Mbpsで動かすと待ち無しに読み取れてしまうので必要ないのですが、他の速度の場合必要になります。36MbpsではDMAすら使う必要無し。
4. 現在は真面目にクラスタチェーンを辿っていないので、ファイルが連結していないと上手く動作をしない。
一応fread関数を用いることでクラスタチェーンをたどる事が出来ますが、速度的に効率が良くありません。
やるならクラスタチェーンを保存しておくバッファをあらかじめ作っておくと高速アクセスする事が出来るようになると思いますが、それはまだ実装していません。
【2011/1/30追記】
5.基板からSDカードまでの配線が長い。
ルネサスSPIの36Mbpsを利用してSDカードと通信を行う場合、マイコン基板からSDカードまでのケーブルは極力短くしたほうがいいです。
20cmのケーブルと10cmのケーブルを使って通信実験を行ってみたところ、自分の環境では通信エラーが発生しました。
そこで5cmにしてみたところうまく動きました。
安全を考えて配線の長さは5cm未満に設計したほうがよさそうです。


【7/23追記】
>>ちんぷんかんぷん
分かりづらいですよね。。。すいません。いわゆるD級アンプの基となる、D級信号(というのかな?)をSHに生成させてるだけです。
普通D級アンプ自作というと、D級アンプ用ICを買ってきて配線するだけなのですが、この方式を使えばFETを使って自分で高効率のアンプを設計する事も出来て楽しいです。

>>ほほう
どもです^^前々から思っていたのですが、やっぱりnokia3300のデモに白黒を使っているのは見栄えが良くない気もしてきました。せっかくなのでカラー再生できるところもお見せできればよいのですが…

>>へぇ
ただ再生するだけならRAMは使わなくてもよいのですが、当然色々処理させようとするとそれなりにRAMが必要になる事に注意してください。
センターボーカルキャンセラー程度の処理ならRAMは必要無いと思いますが。

>>このSH-2Aは面白いよ
自分もそう思います。

>>この周波数だとPWMでここまで鳴るのか!
実は96kHzでも試してみたんですが、鳴らすことはできませんでした。。。スペック的にはいけると思ってたんですけどね。ちょいとプログラム見直してみようと思います。それでも無理なようならあらかじめデータをRAMに転送しておく必要があるかもしれません。

>>もっと上手にプレゼンして
ごもっともです。申し訳ありません。

>>なるほど、わからん
ごもっともです。申し訳(ry

>>この液晶、HSYNC信号とかはあるんでしょうか?
自分の場合は液晶単体というより、ILI9325搭載のキャリーボード付き液晶として購入したので液晶自体の事は調べていませんが、キャリーボードを用いるとHSYNC信号は隠されてしまうようです。このキャリーボードを介してSH-2Aのハードウェア機能を利用することは難しいと思います。

>>HSYNCと非同期でVRAM書き換えですか?
コントローラのVRAMは、WR(ライトストローブシグナル)と同期して書き換えているため、HSYNCと同期させている訳ではありません。

【7/31追記】
気晴らしにSH-2Aの開発にたまに役立つメモ的なもの置いておきます。
よろしかったらどうぞ。主に最適化関係ネタですが。
(しかもアプリケーションノート読めばわかるって言う。)
memo.txt

【8/21追記】
需要があるかは知りませんが、nokia 3300の動作をyoutubeに投稿しました。
こちらもお値段以上に面白いデバイスなので遊んでみると楽しいですよ。
雑誌付録SH-2A + SD Card + Nokia 3300

【9/22追記】
>>こんな動画を待ってたわ
どもです^^関心を向けられているのはあの楽器のグラフィック表示でしょうか?
あの楽器とはかなり趣旨の異なるデバイスになるのですが、実は現在、
リアルタイムかつスタンドアロン動作が可能な、MIDIキーボードとMIDI音源間の信号を解析してあの楽器のグラフィックを表示する、あの楽器ビジュアライザというものの製作を勝手に企画しています。
まだ構想段階ではありますが、最低でも来年の4月頃までには試作機の動画を投稿するつもりですので、よろしかったらまた見に来ていただけると嬉しいです!
また、実用可能なデバイスにするために、グラフィック表示以外の付加機能も随時募集します。
(と言ってもこんなページ見てる人も少ないと思いますし、第一自分の考えがちゃんと伝わって無い気もしますが・・・)

>>電源貧弱だな9Vでもつのか?
9V電池はnokia3300のバックライト用電源としてのみ利用しています。
nokia3300のバックライト用電流は20-40mA程度ですので、9V電池でも十分持ちます。
マイコン・YHY024006液晶等への電力供給は、USB端子(5V,500mA)から供給しています。
実際に本デバイスに対しUSB端子が何A出力しているのか計測はしていませんが、windowsさんは警告を発していないので大丈夫そうです^^;
余談になりますが、aitendoのnokia3300のバックライト電源電圧が7-9Vと書いてありますが、7Vでは点灯しませんでした。
回路スペースに余裕があるのであれば、個人的には少し大きめの電圧をかけて、可変抵抗を挟んで光量を調整できるように設計した方が良いと思っています。

>>圧縮してないから菜
ですね^^mp3再生なんかは間違いなく作業用メモリが必要になります。
でもmp3を再生したいのなら外付けのハードウェア音源デコーダを搭載した方が賢明だと個人的には思うのですが…
圧縮形式でも、log-PCMやDPCMなんかはメモリを消費せずに高速展開できるかと思うので、暇な時に試してみようかと思います。



【2011/2/22追記
遅くなりましたが、動画ファイルから独自形式に変換するプログラムを公開します。
AVI2MMV
binフォルダに実行ファイルが入っています。
sourceフォルダにOpenCVを使った変換プログラムが入っています。
開発はVisual Studio 2010のC/C++を使っていますが、main.cppだけ移植すればほかの開発環境でも使えると思います。
使い方は書いてありますが、上手く動作しないようでしたらご連絡ください。
フォトフレーム用の独自形式作成プログラムは含んでいませんが、もしこちらを欲しい方がいたらご連絡ください。
あと、どーでもいいかもしれませんが動画と音声を同時に再生することができるようになってきました!
雑誌付録SH-2Aマイコンで動画・音声同時再生


【2011/8/11追記】
報告するのをすっかり忘れていましたが、前にちょっと書いた「あの楽器ビジュアライザ」という機能を自作デバイスに実装して公開してみました。
(「4月ごろまでには投稿できる」、というのは無かったことにしてください^^;)
SHマイコンで作るエンタメ機器:機能1「あの楽器ビジュアライザ」

それと、この「SH-2A使用実験」ページはこっそり残しつつ、新たにSH-2Aの使い方を紹介するページを作っていこうかなと思っています。
SH-2A講座
まだ準備段階ですが、ぼちぼち作っていくので長い目で見てやってください。



催促・分からない事はpokemonkenkyuujo@hotmail.comまでメールしていただくか、twitterのアカウントの方へメッセージ送ってくれるとスムーズに連絡取れると思いますので、よろしくお願いします。


戻る