マイコン工作実験日記

Microcontroller を用いての工作、実験記録

音だけなんだけど

2016-12-11 18:52:13 | Weblog
UVCでの画像送信に挫折して、すっかりやる気をなくしています。アプローチの仕方を変えて、再挑戦すべく画策中です。

そんな中、YouTubeを眺めていたら、Silabsの動画につられて同社のブログを訪れました。



動画から想像すると、ライトセーバーを振り回すのに合わせて音を出すのかと思ったのですが、記事内容はSDに保存した効果音を再生してDACから出力するという内容でした。でも、Silabsがこんな電子工作ブログ記事を出しているとは知らなかったので、これからは時折チェックしてみることにしましょう。

それにしても、SilabsのYourTube動画はインスタと共通にしているためか、15秒ものばかりなのが気に入りません。一連のThunderbord Sense関連動画なんか、ひとつにまとめて充実した内容にしてもらいたいものです。
コメント
この記事をはてなブックマークに追加

UVCでJPEGを送ってみる

2016-11-28 12:41:30 | Weblog
UVCによる無圧縮での画像転送は、Macでうまく表示させることができずに断念したので、こんどはMJPEGで送るのを試してみました。最終的にはカメラからのJPEG画像を転送することが目標なのですが、まずはMJPEGでの転送動作を確認するために試験用の画像データをあらかじめ用意しておき、これを繰り返し送ってみることにします。

MJPEGへの対応作業は、基本的にはUSBのConfiguration Descriptorを変更するだけです。あとは、UVCのVideo StreamとしてJPEGデータをそのまま送りつけてやればいいだけです。

まずはMac OSで試験してみたものの、無圧縮の時とおなじようにカメラとしては認識されるものの、まったく画像を取得しようとする気配なし。

続いてUbuntuで動作確認してみると...



こちらはメデタク画像を表示できました。

そしてWindows 10も試してみたのですが...



なんと! カメラとして認識してくれません。Config descriptorはちゃんと読んでいるので、Mac OSとおなじようにその内容が気に入らずにカメラとして扱ってくれないように思われます。

けっきょく、MJPEGでつながるのはUbuntuだけという悲しい結果。なんか、大きくやる気を無くしました。
コメント
この記事をはてなブックマークに追加

Mac対応はおあずけ

2016-11-18 21:05:57 | Weblog

気がつくと、1ヶ月近く記事書いてませんでした。

STM32L4を使ったUVC表示ですが、WindowsやLinuxで文字表示できるようになったものの、MacOSのPhotoBoothだと表示できない問題で足踏み状態です。Photo Boothでカメラを選択するとクラッシュしてしまう問題があったのですが、MacOSを 10.12.1にバージョンアップしたらクラッシュはしなくなりました。しかしながら、カメラのメニューには現れるものの、選択してもちっとも機能してくれません。USBの動きを調べてみると、Mac側からは何のUVCクラスのリクエストも出ていないようです。

想像するに、Device DescriptorとConfig Descriptorからカメラデバイスとしては認識してくれているものの、Config Descriptorの内容からPhoto Boothアプリで使用するには機能的に不十分とみなされているのではないでしょうか? そこで、Config Descriptorの内容を変更して画面サイズを変更してみたりとかしてみたのですが、一向に動いてくれません。うーん、どうしてだろう。いつまでもハマっていてもしょうがないので、Mac対応はしばらくオアズケということにします。

コメント
この記事をはてなブックマークに追加

Cortex-M33/23

2016-10-26 22:45:56 | Weblog
開催中のARM Tech ConnでCortex-M33とCortex-M23が発表になったようです。来年には実物が出てくるんでしょうか?いくつかのブログ記事で、その概要が紹介されています。

https://community.arm.com/groups/processors/blog/2016/10/25/cortex-m23-and-cortex-m33-security-foundation-for-billions-of-devices
https://community.arm.com/groups/processors/blog/2016/10/25/five-key-features-of-the-arm-cortex-m23-processor
https://community.arm.com/groups/processors/blog/2016/10/25/five-key-features-of-the-arm-cortex-m33-processor

そして、ARMを買収したあの方も"IoT"を連発しています。

コメント
この記事をはてなブックマークに追加

UVCで文字表示してみる

2016-10-23 19:09:21 | Weblog
UVCでのカラーバー表示ができたので、今度は文字を表示してみることにしました。カメラに送る画像情報はYUV422と呼ばれる形式で送るのですが、この形式では輝度情報は各画素についているものの、色差情報は2画素をペアとして扱ってつけています。そのため、1画素毎に輝度は変えられても、色を変えることができません。そのため、文字フォントを描画した時に2画素ペアにまたがっていればきちんと色がつきますが、ペアの片側にしか描画しないと文字の輪郭の色がおかしくなってしまいます。そこで、必ず文字のグリフを描画する際には横に2倍に引き伸ばして、必ず2画素ペアにまたがるようにして表示してやりました。



もともとの画面サイズが160×120のところ、文字を横に2倍にしていますので、実質的には80×60ドット相当の画面となってしまっています。ここでは、STM32CubeL4に含まれていた Font12という7×12ドットのフォントを使っています。文字情報量が少ないうえに画面の更新レートも少ないので、表示装置として使うには制約が大きいわけですが、時計とか気温/気圧表示のような用途には充分に使えるのではないでしょうか。

YUV表示でもUVは常に同じで輝度(Y)しか変化させないということにしてやれば、文字幅を2倍にしなくても1画素ごとに輝度を変えて文字表示することができますので、こちらも試してみました。背景色は (Y, U, V) = (0, 0, 0), 文字色は (Y, U, V) = (255, 0, 0)として描画してやると...



文字色のYの値を変化させてやれば、こうなります...



なんか、昔のグリーンモニタ表示を彷彿させますなぁ。
コメント
この記事をはてなブックマークに追加