0

moxaでバイオメタルを動かした

バイオメタルをmoxaで動かすために0V~3V程度を出せる回路とプログラムを作った。

色々試した結果、最終的にPCからシリアル通信でmoxaのanalogWrite(PWM出力)を制御できるようにして、analogWriteをトランジスタ(2SC1815)に突っ込む。トランジスタは三端子レギュレータ7805から得た5Vを出すが、トランジスタを通る事で3.7V程度に落ちて、バイオメタルにちょうど良い電圧になった。

バイオメタルは「3Vで駆動」と書いてあったけど3.7Vでも大丈夫だった。5Vそのまま入れると変な臭いがしてきてヤバイ(すぐ止めました)

AVRマイコンのGPIO出力は3Vだけど40mAと電流が足りなかった。
バイオメタルを動かすには200mA程度必要で、秋月の3.3Vの三端子レギュレータを使っても動いたけどマイコンから制御するためにトランジスタをかますと2V程度に落ちてしまうので5V電源でやったらちょうど良くなった。アクチュエータ系は試行錯誤が必要だなー



パソコンでアナログ値を制御している動画


回路。基盤で隠れて見えないけど、moxaの左下のGNDはブレッドボードのGNDと接続されている
moxaでバイオメタル動かす
moxaでバイオメタル動かす


今回のtalkticコード
xtel technical information > learning> Analog Read & Writeを参考にした

serialInit(9600);
pinMode(1,true);
pinMode(0,true);
power = 0.0;

function onSerialReceive(){ // シリアル受信イベント
    while(serialAvailable()){ // 受信データがある時
        var recvData = serialRead(); // 読み出し
        power = recvData*0.01;
        analogWrite(0, power);
        analogWrite(1, power)
        serialSend(recvData); // 受信した文字列をそのままエコーする
    }
}

while(true){
}

0

OpenCVの勉強リポジトリ

巨大なaviやbmpもcommitしたいけどbitbucket.orgの容量を使いたくないので、さくらにhgweb.cgiで置くことにした

http://shokai.org/projects/opencv-study/


.hg/hgrc に

[web]
#style = gitweb
allow_archive = gz,zip

と書いてzipでくれ機能を出した。styleはgitwebにしようと思ったけどやっぱりデフォルトにした


1

C#でWord2007のOCR機能を使う

wordのOCR機能がCOM APIから使えるとの事だったので試した。

まちみのな::C#で文字認識を行うCodeProject: OCR with Microsoft? Office. Free source code and programming helpを参考にした、というかほぼそのままで、UIを付けただけ。

日本語OCRは商用の物しか見つからなくて、クセロReaderに入ってるとかどうやってか自分で作ってる人もいるけど、高嶺の花だった。英語はオープンソースプロジェクトがいくつかあるのになあ・・・


できたもの。
画像をドラッグアンドドロップするとOCR発動、文字を読み取る。この画質の写真でも相当間違える。
word2007のOCR機能をC#から使う



■作ったサンプル
shokai / OCR C# Sample / overview — bitbucket.org (VS2008 C#.NET用)
右上のDownloadからzipでもダウンロードできます
wordについてるDocument Image Writerがインストールされているマシンなら動くと思う。





■Microsoft Office Document Image Writerのセットアップ
Word2007には入っていたのでCDからインストールしなおした。普通にインストールするとチェックが外れててインストールされない。
word2007

Read more

3

OpenCVをはじめた

openFrameworksをやっていて詰まったのでとりあえずOpenCVをやってみることにした。

openFrameworksはOpenCV・OpenGL・シリアルポート関連・音声関連のC++ライブラリをまとめたWin/Mac/Ubuntuで動作するクロスプラットフォームラッパーで、processingの影響を受けているらしいのだが、その中のOpenCVとOpenGL自体がまず巨大なライブラリなのでこいつらを扱う作法を知っていないとopenFrameworksが使いこなせない。


今回はOpenCVを単体で扱ってみてどんなもんか探ってみた。


■OpenCVのセットアップ、サンプル実行、コンパイル環境と対応カメラの確認

マシンに3つOSが入っているので実行環境も3つ揃えてみた。
MacとUbuntuはgccで、WinはVS2008でコンパイル。Ubuntuは色々ためしたけどiSightを認識しなかったが古い外付けUSBカメラを認識して使えた。
この内Macだけが駄目。描画が異常に重い。ググったらhighguiとCarbonの組み合わせが悪さしている?ような情報もあったがよくわからなかった。でもちゃんと動いていると報告してる人がたくさんいる。悔しい。

最近は全部パッケージ管理システムから入るんですね


本当はMacかUbuntuで動かしたかったけど、WindowsでVS2008でやる事にした。
俺が電車で移動中プログラムを書く事が多いので、Windowsからは内蔵i-Sightを使えて一番都合が良い。

cvWaitKey(msec)の待ち時間を短くしすぎなければ(30ぐらいなら大丈夫)どの環境でも動く事が確認できたので、後述するプログラムはどの環境でも動くと思う。少なくともWindowsとUbuntuでは動いている。



■画像処理の勉強

この本でやった。プログラムの途中重要な定数宣言部分が省略されまくったりしていて困ったけど、理論的な所は詳しく解説してくれているのでこの本と翻訳版ドキュメントサンプル集を見ればなんとかなった。


OpenCV プログラミングブック
奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム
毎日コミュニケーションズ
売り上げランキング: 58513
おすすめ度の平均: 3.0
3 とっかかりとしてはよい本
4 OpenCVを日本語でまとまって解説した初めての本
2 肩すかし


OpenCVというとまっさきに「顔認識」を思い浮かべるけど、機械学習を用いた分類器については巻末のリファレンスに少し書かれている程度で、この本では基本的なOpenCVの組み込み関数を使った2値化やノイズ除去や表色系の変換、輪郭、エッジ抽出、テンプレートマッチング、物体追跡、背景差分法などが書かれている。書かれている内容はbuilt with processingディジタル画像処理の基礎と応用なんかに書かれている内容と被っている部分が多いけど、OpenCVの関数を使っているから滅茶苦茶処理が速い。やばい。もっと早くOpenCVに移れば良かった。


Read more

0

openFrameworksでサンプルプロジェクトのコンパイル

WindowsでVisualStudio2008 Professional C++で、openFrameworks v0.05のサンプルをコンパイルする所まで。
今のところDirectX SDKは必要ないみたいだ。

openFrameworks: downloadの「visual studio FAT」をダウンロード。ライブラリと、サンプルプロジェクトのソースコードが入っている。

同じ場所にある「win32 example apps」にはコンパイル済みの実行ファイルが入っている。動的に波形を生成して音を出したり、3Dを回したりカメラの画像にエフェクトをかけるサンプルがたくさん入っている。


まず適当なソリューション(.slnファイル)を開いてビルドする。
エラーがでる。GLaux.libが見つからないらしい。
OpenGL関係のライブラリらしくて、

C:\Program Files\Microsoft SDKs\Windows\v5.0\Lib\IA64

で発見したので

\libs\glu

にコピーして置いた。
VS2003の頃はPlatform SDKの下にあるらしいけど、俺はMicrosoft SDKの下にあった。無いと言っている人もいる。
VS2005も過去にこのマシンにインストールしていたから、この位置にあるのかな?
どうしても見つからない人は連絡ください。


再びビルド。今度はrtAudioD.libでエラーが起こる。
libs\rtAudio\rtAudioD.libのバージョンが古いらしい。
http://www.openframeworks.cc/files/rtaudio-vs2008.zip
をダウンロードしてきて
Release\rtAudio.libをrtAudioD.libにリネームして

\libs\rtAudio

に置く。

これでコンパイル通って動く。
文字コードがCP932だよというwarningが出るので、後で文字コードは後でUTF-8に統一しよう


openCVのサンプルを動かしてみた。背景差分とblob判定してる。
openFrameworks


ofVideoGrabberのサンプル。processing並にカメラの画像取得のコードが短い。
openFrameworks