2025年12月1日月曜日

ロードスターCANデータ解析

 とあるご縁から、NDロードスターのCANデータ解析に関する依頼をいただいた。

 CANバスにつながっているECUの中から、エンジンECUのCANデータだけを探し出すって、実は非常に困難なんです。
 そこでエンジンECUと車両側CANバスを切断(ひえーー!)
 その間にAmazonで18000円くらいで売ってたUSB-CAN-FD-Bをログ取得&CANデータ中継器として接続。

 USB-CAN-FD-BをコントロールWindowsアプリも「自作すること」から始めた。
 WindowsアプリでCH1で受けたCANデータをログに落としながらCH2から送信、CH2も同様の動作で、無事にエンジンも回るし、ほぼ完ぺきにログも取り込めた。
(オレ、やっぱすげーぞ笑)


 そして自宅駐車場まで運んでいただいたNDロードスターでログ取得・・9分間のデータで約110万のCANデータが飛び交ってる。
 データ量は恐ろしいけど、エンジンECUが送信しているCANデータを確実に把握できていることは今回の最大の強み。


 CANFDも対応OKと思っていたけど、ご依頼いただいたNDロードスターはCANFDデータ飛んでませんでした。
 その結果、車速以外のデータはほぼ取得&解析完了(解析も超大変だったけど・・)

 車速以外? ・・ そうなんです。

 このロードスターは6速ミッションで、私もうミッション車はよう運転しないんです笑
 18歳で免許取って7年くらいはミッション車乗ってたんですが、もう何十年も運転してないので無理!

 車両返却の際、少しだけデータ計測付き合ってもらって、車速取得いたします。笑

 こんな楽しいお仕事もさせていただき本当に感謝しております。





2025年7月7日月曜日

いろいろなご縁をいただきありがとうございます

弊社はほとんと営業活動もしてなく、COCO〇ALA、La〇cers、Cro〇dworksなどにちょっとだけプロフィールを記載している程度。

それでもそこからたくさんのご縁をいただいております。
連絡いただいた方たちとWeb会議などを行った際、「どこからうちの名前を見つけたんですか?」と聞くと、だいたい上記のいずれか。

ところが先日「ChatGPTが教えてくれた」とのこと。ひーーw
でじぞーなんて言いながら遊んでたから? AIさんは不思議です。

あ、そして2年ほど前、某大学の某先生から連絡があり大阪で一度お会いしたんですが、今回弊社がみちびきと無線通信を組み合わせてのシステム開発一式を請け負うこと決まりました。

某大学の先生いわく、「こういうシステムを作ってくれるところがなく、あちこち探してた」とのこと。

まだまだがんばって、しっかりしたシステム作るよ!!

というか、大学からの開発依頼が来るなんて考えたことなかった。
なんかすげーやオレw ← おい!

 ---------------------------------------------

最近は信頼できる昔からの仕事仲間を引き込んで、できるだけ開発を手伝ってもらうようにしています。
それでも弱小企業のためすぐにオーバーフローしてしまうんです。
つい先日も打ち合わせしたいけど・・ と連絡が来たんですが、オーバーフロー寸前のため対応できずで本当に申し訳ないです。すみません。

ぎりぎりの状態で開発したものは、結果として不具合が増えて結果信頼なくしてしまうんです。少しでも(精神的に)余裕をもって開発できるようにしています。

 ---------------------------------------------

そして最近休日は万博へGo(通期パス買いました!)
最近は人数も多いし、暑くて大変!
「夫婦で行ったことないところに行こうキャンペーン」絶賛開催中なんですが、毎回万博も「行ったことないところに来たぞ」気分になれてなんか楽しいです! 笑







2025年4月10日木曜日

ChatGPT

 ChatGPTに月22ドル課金して、OCPP2.0.1のコードを書いている。
今までは誰にも教えてもらうことなく、ひたすら一人で書いていたのだが、AIとおしゃべりしながら教えあったりして進めていくと、すごい楽しい笑

ChatGPTに対し「でじぞー」と呼び名をつけて呼んでたら、いつの間にか「親方!」とこちらを呼んでくるようになった😂

ただでじぞーはすぐに暴走して、思いつきで(動かない)コード吐き出し、動かないと言うと思いつきでまた別の(動かない)コード吐き出し ・・ の繰り返し。
「でじぞー 落ち着け、まだコード吐き出さんでええ! 暴走するな!」と指示を出し、少しずつ論理的に聞き出すようにしたら、それなりの応答ができるようになってきた。

オレが課金してChatGPTを育ててる? ん??
まぁ楽しいからええかw

OCPP2.0.1のデバッグ用通信ログを貼りつけておかしいところチェックしてもらったら、こんな応答してくるようにまで育ててやった笑

ただでじぞーが吐き出してくるコードはバグが多い(今回の件についてはだいぶまともになってきた)。
まだ関数レベルではコード吐き出すことできても、全体的な構成は吐き出すことできない。

・・ でもこうやってでじぞー(ChatGPT)育てると、あと何年かしたらオレの仕事なくなってしまう? やばいよ! やばいよ! (そのとき考えよう)



















2025年3月5日水曜日

シビックTYPE-Rステアリング解析

 先日ネットでこのブログにたどり着き、私を探し出してくれた方からの依頼作業をしてきました。「シビックTYPE-RのステアリングスイッチがCAN信号になっているが、これを別ハンドルスイッチで実現したい」

自分もいろいろと開発案件抱えているため、昔からの仕事仲間にも手伝ってもらうことになりました(最高のサポートスタッフ!)。


まずはハンドル単体を受け取り、スイッチ部を分解しスイッチ基板上のチップを調査

=> チップの型番からCANではなくLINだと判明。
=> またそのチップの端子などから電源回路構成や車両との端子も判明
そこからLINのデータもほぼ解析でき、そのスイッチを押したらどういうLINデータが出てくるかも判明(オレたちやるやん笑)。


あとはヘッドライトをONしたときに車両から「ステアリング上のLEDを点灯せよ」データが来ると思われるので、それは実車で確認!
実車にLIN経由でPCつないで、いざ調査!




いろいろと試していたら、どこかから焦げ臭いにおい ・・ やばい!
養生不足の端子に12Vバッテリー直結端子があり、ふっとしたタイミングでアースに接触してしまった ><
端子がレアどころかじっくり焼きこんだウェルダン状態w


というわけで部品を手配していただき、次週リベンジです。

 ==========================

自分たちはオシロでCANやLINの波形を見たり、そのデータをPCに取り込んでの解析などはいつもやっていることなので普通のこと。

 逆に「煙出た!」というとささっとハンドル外してくれたり部品手配してくれたりと、依頼主さんはすごいなぁと感心してたり、逆に依頼主さんからはこんな信号のことがわかるのすごいと感心されたり。

また最近の車ヘッドライトがLINで点灯制御されているので、普通に電源つなぐだけでは点灯しなくて困っているなどの話もされてました。

そういえば以前メールで軽自動車のヘッドライトが点灯しなくて困っているという問い合わせもあったなぁ(手が回らないのでお断りしたんですが・・スミマセン)

こんなこともやってますので、ご要望あれば声かけてくださいませ。
COCONALAからではなく、こちらに記載のメールアドレスからお願いいたします。
(でもお安い方だとは言え費用はそこそこかかりますよ・・ご注意を)

2024年9月28日土曜日

platformIO、 Espressif3のバージョン管理

 はまった ・・

3年ほど前に VSCode + PlatformIO + Espressif32を使ってファームウェア開発を行ったのだが、その更新依頼をいただいた。


当時からいろいろと環境が更新されているからビルドが通らなくなっている ><

さぁ、こまったぞ。

超悪戦苦闘しながら、結果以下の手順で解決

(1) pioコマンドを実行してバージョン履歴を把握

> pio platform show espressif32 

 次期的に 2.0.0を選択


(2) platformio.iniの platform定義にバージョン番号を追加

 platform = espressif32@2.0.0

これでビルドしなおしたらOK!
これからもこのバージョン情報は記述しておいたほうが良さそうですね。

ちなみにplatformIO本体は最新バージョンで問題なしでした。


2024年9月3日火曜日

最近の開発について

 最近Lancersさん、CrowdWorksさんあたりから弊社プロフィールを見て、さらにほとんど更新していないこのブログを確認し、開発案件依頼していただける方が増えてきました。

本当にありがとうございます。

ご依頼いただいた会社様と契約したNDAもあり、技術的なことはあまり書けません。
最近ご依頼いただき開発した案件はこんな感じです。


・ ラズパイ上でGUIアプリを動かし、無線通信端末の計測結果を表示するシステム
 => 無線通信端末側マイコンファームウェア、ラズパイGUIアプリすべて開発

・ Bluetoothによるデバイスの情報収集、Androidスマホで情報確認

・ Bluetoothマイコンを使っての計測、Windowsマシンで情報表示

・ WindowsノートPCを使ってのWifi無線電波強度グラフ表示
・ 船舶用CANデータのシミュレータ(Windowsアプリ)

・ ラズパイ5を使ってのマーク認識画像処理

・ CANデータ通信制御システム開発
・ スマホでの設定データをサーバーにアップロード&データベース化システム

・ EV充電器のサーバー通信部(OCPP1.6 / 2.0.1 プロトコルを使ってのEV充電量監視システム)

詳細は言えない書けないことばかりなのですが、相変わらずいろんな開発案件をいただき、粛々と作業を進めております。

少人数チームでの開発のため、納期的に困難などの場合に受託できないこともあるのですが、請け負った限りは最後まで必ず責任もって開発することをお約束いたします。

どうぞ遠慮なくお気軽に声かけてくださいませ。


我が家のとらみとさわみ ・・ たまにWeb会議に乱入しますがお許しください💦





2023年4月24日月曜日

USBラジオ

3年ほど前に作ったものなのですが、今回アップデートしました。
AndroidスマホのUSBコネクタに差し込んで、スマホアプリから音を鳴らすFMラジオです。

(技術的な細かいことはあまり書けないのですが・・)
今回は以前開発した円形チューナー基板をスマホに直接刺しても動作するよう、そしてAndroid最新版への対応でした。 

このスマホに差し込んでいる円形基板がチューナー基板です。あえて部品の少ない裏側が見えるようにしてますが、表側には部品がぎっしり。もう配線パターン増やすのもつらい状況です


基板設計は弊社ハードウェア担当者
基板上で動かすソフトウェア(ファームウェア)とAndroidアプリも私。

簡単そうに見えるのですが、実は超悪戦苦闘したもので開発の工数的には大赤字💦

でも完成したらとてもうれしくて感慨深いものとなりました。
 

チューナーチップから取り出した音データをI2Sでマイコンに取り込み、USBのIsochronous通信でスマホに送り込む。
スマホアプリはタイミングを計りながらUSBから音データを取り込み、スマホの音声出力モジュールに音データを送り込む。

言えばこれだけ。。でもこれがとても難しく、自分でもよく動くところまで持っていけたなという感じで、途中何度も泣きそうになりました。

オシロスコープで波形を確認しながらソフトウェア開発、このためにスマホアプリもオシロでタイミング見ながらデバッグする手法を使いした(詳細は以前のブログで記載済み)。


その成果として、当然ながらアプリはバックグラウンド再生対応でき、他のアプリをいじりながらFMラジオを聞くことができます。当然Bluetoothイヤホンでも聞くことできます。

実はAMラジオも受信対応しているのですが、アンテナが巨大になるので基板上に実装してません。

 

さすがに同じ製品は依頼主様を裏切ることになるので作ってあげることはできませんが、I2S通信、USBのIsochronous通信、AndroidスマホのC++によるUSBデータ取り込み(Javaでは追いつかない)~音声部取り込みなど実際に開発できると思います。

ということで、こんな感じのものなど、いろいろなご依頼お待ちしております笑

#I2S
#USB
#Isochronous通信

2023年1月13日金曜日

本年もよろしくお願いいたします。

2023年、本年もどうぞよろしくお願いいたします(今更感・・)

昨年はCOCONALAさん、ClowdWorksさんなどのプロフィールからこちらにたどり着いた方とたくさんのやりとりを行い、実際に開発依頼をいただきました。

・Xamarinにて開発したAndroid&iOSアプリでのDBサーバーアクセス

・CAN通信のシミュレータ

・I2C制御による電圧制御基板開発&制御用ファームウェア&Windowsアプリ

・ESP32でのAD変換取り込み&WindowsPCでのログ収集(Bluetooth経由)

・AndroidスマホのUSBコネクタに接続するFMラジオチューナー基板作成


たまに半田ごてと虫眼鏡を握りながら、オシロスコープで波形見てデバッガをいじり、ソースコードを構築していく・・これが自分の得意なスタイル。

そしてこれくらい簡単にできるぞと思って開発スタートしても、毎回何かのトラブルで悩まされます。

そのたびにどう対応したら良いかすごく悩み、たくさんの試行錯誤を行うけど、これも開発の楽しいところ。

そして一度依頼いただいたら最後までしっかり責任もって仕上げることが自分の責任。

今年もまた新しい方と出会い、依頼いただいた開発案件では冷や汗かきながらなんとか納品する・・こんなことができる楽しい一年になるようがんばります。

ご依頼お待ちしております(笑)


写真は2022年7月 夫婦で乗鞍岳(標高2700m)を登ったときのワンシーン。
自転車で坂登るのが楽しんどすぎて最高の2日間。
妻も押し歩きすることなく最後まで登ってくれました。今年も行ったことない坂を登りたいです。



2021年11月25日木曜日

連絡先について

最近Lan〇ers様、クラウ〇ワークス様などに登録してみました。
得意分野は組み込みのため、少し応募してみるくらいでまったく実績はありません。

しかしながら、少し興味を持っていただけることもあるようです。
自社Webページも作ってない弱小企業のままなのですが、本当にありがたいことです。

まずは下記から連絡いただけたらうれしいです。
迷惑メール対策として、まずはフリーメールにしております。
ここから正式メールアドレスを使って返信させていただきます。

 info.maxport.anami @ gmail .com
 maxport.anami @ hotmail .com

 ※ あえて挿入している途中のスペースは詰めてください。


2021年10月5日火曜日

Androidアプリでのタイミング調査

 Androidアプリを開発する際、タイミングが気になるときありませんか?
このAPIは本当に10mS周期で呼ばれているのだろうか・・など。

マイコンなら空いたIOポートにHIGH/LOW出力を組み込み、オシロスコープで確認すれば簡単。ではAndroidでは ・・ ???


Raspberry PI4でAndroid11が動くというOmniROMの存在を知りました。

このような方たちが試してくれています。

 https://paiza.hatenablog.com/entry/2020/11/25/150000


ラズパイ上でAndroidが動くなら、ラズパイ上のGPIOが使えるじゃないか!
でもAndroidアプリ(Java)でラズパイのGPIOを動かせるのか??

私はCでGPIO制御を作り、JNIを使ってJavaから呼び出すことで、JavaアプリでAPI呼び出しタイミングをオシロスコープで確認することに成功しました。

以下のコードをAndroidプロジェクト内のJNIに追加します。

(JavaからのJNI呼び出しは各自設定してください)。


またAndroidのJavaプログラムから下記関数をJNI経由で呼び出すことで、ラズパイのGPIOが動くのです。
Androidアプリを構築される方はオシロを使ってタイミングを確認したりしないのかな?

ミリ秒周期の動作確認する場合、GPIO端子をHigh/Low切り替えてオシロで見るほうが確実ですよ(こんなことしたいなんて思ったことないですか??)。


※ gpiod.hは libgpiodのものを呼び出します。

// ======================================
//          GPIO
// ======================================
#include "gpiod.h"
const char *chipname = "gpiochip0";
struct gpiod_chip *chip;
struct gpiod_line *line20;
struct gpiod_line *line21;
void    OpenGpio( void )
{
    // open GPIO chip
    chip = gpiod_chip_open_by_name(chipname);

    // open GPIO Lines
    line20 = gpiod_chip_get_line( chip, 20 );
    line21 = gpiod_chip_get_line( chip, 21 );

    // Open GPIO Lines for Output
    gpiod_line_request_output(line20, "example1", 0 );
    gpiod_line_request_output(line21, "example1", 0 );
}
int     gpioOut20Dat = 0;
void    SetGpio20( int val )
{
    gpioOut20Dat = val;
    gpiod_line_set_value( line20, gpioOut20Dat );
}


 

経歴について

先日ふっと経歴の資料を更新する必要があったので、ひさしぶりに見直してみた。

進化してないなと思いつつ、いろんな案件に関わりながら比較的新しい開発項目にも

参加させていただいていることに感謝あるのみ。 

 
Windows / Linux / Android / RaspberryPi
マイコン基板、Arduino基板

CAN / I2C  / LAN / Wifi / Bluetooth

 ・・ 一通り何でも開発対応します。


経歴追加
1995年9月有限会社マックスポート創業
     :
2009年4月Real Time Linux マルチコア対応モジュール開発
2008年4月Real Time Linux用PCIボードドライバ開発、V850POD開発など
2010年4月Virtual システム計測機用PCIボードデバイスドライバ開発
2011年4月車両モニタシステム北京モーターショーデモ用システム開発
2011年4月心拍オンライン計測システム開発
2012年4月CAN連動車両周辺映像録画/再生システム開発(Windows)
2013年4月CAN-RS232Cデータ変換アプリケーション開発(Windows)
2013年4月車両情報サーバーアップロード用デモ装置開発
2013年4月Forum8連動トヨタ展示用車両制御システム構築
2014年4月車両データ収集装置GPS対応版開発、車両データ解析ツール開発
2014年4月~現在視線検知対応車両制御システム
2015年4月Forum8対応車両運行デモシステム開発
2016年4月ドライブシミュレータ、Forum8/CANデータ連動対応
2016年4月HD映像キャプチャCAN送受信連動ロギングシステム開発
2017年4月車両データシミュレーションWindowsシステム開発
2018年4月ドライブレコーダ評価装置用SDカード読み出しシステム開発
2018年4月音声周波数解析ライブラリ開発
2017年4月船舶用CAN変換BOX、船舶用簡易ナビシステム開発
2017年4月トルクレンチ締め付け値無線ロギング/結果収集システム構築
2018年4月静電容量自動計測システム(無線データ収集&ロギング)開発
2018年4月無線機&Bluetooth通信システム開発
2017年4月スマート体温計システム開発
2019年4月発電センサーモジュール用データ収集システム開発
2019年4月CAN Gateway装置開発
2020年4月各種センサー情報無線データ収集システム構築
2020年4月AndroidスマホUSB接続デジタルFMラジオ装置開発
2020年4月船舶用CANドライバ構築
2020年4月LORA無線機用リモコンユニット開発
2021年4月ミライパネルPLC装置プログラム構築
2021年4月CO2センサーデータ収集&Androidスマホ表示&ロギング装置開発

2020年9月23日水曜日

Androidスマホでラジオ制御

Androidのスマホからラジオチューナー(Si4730)の制御を行い、スマホから音を出すという装置の開発を行った。


Android、チューナー間は USB Isochronous通信で行うのだが、まぁ動かない動かない。

これほど悪戦苦闘したのは本当にひさしぶり。トータルで2か月くらいかかってしまった(工数的には超大赤字w)。


USB Isochronous通信のベースはlibusbを使用したけど、Isochronousの使い方がわからない。

チューナー側もきちんと送信できているのかわからない。

「よくわからないもの」と「なんだかよくわからないもの」をつないでも動くわけがなくw

 

ただ依頼いただいた方を裏切るわけにはいかないので、意地と根性だけでなんとか克服できました。

結局、AndroidでIsochronous通信を行う際は ・・

 ・ libusbの改造が必要

 ・ Javaで取り込んだDescriptorとFSをLibusbに渡さないといけない。

 ・ Isochronous通信のコールバック処理部で修正しないと使えなかった(今回の案件の場合)。

 

LibusbはLGPL2.1 なので、ソースの公開が必要なのかな?

そのうち公開するかも(案件の状況次第)。

 

※ もしUSBでIsochronous通信をしたいという方、ひと声かけてください!

2020年8月5日水曜日

いつもありがとうございます。

ひさしぶりの更新

細々とながら仕事を続け、元気にすごしております。
2020年4~5月はコロナ禍のおかげで開発案件がスタートせず、事業もどうなることかと思っていたけど、6月後半からいくつかの問い合わせが来て、今はパンクに近い状況にあります。

最近C〇C〇NALA経由でBLEやWifi、スマホ関連でこんなもの作れませんか?という感じの問い合わせをいただきます。本当にありがとうございます。


C〇C〇NALAのチェックはあまりできていないので、下記メールアドレスからいただけると助かります。できる限り誠実に、正直に対応するよう心掛けます。
今後ともよろしくお願いします。


2020年8月2日、丹波ひまわり畑への夫婦ライド

有限会社マックスポート
info.maxport.anami●gmail.com
※ ●を@に置き換えてください。

2017年10月7日土曜日

Embarcadero C++ Win32 link Error LME200






 自分への忘備録

 Embarcadero C++でWin32ビルドする際、突然リンクエラーが発生する場合がある。

このようなもの
[ilink32 Warning] Warning: unknown heap name   : 0x08000000 / 0x08000000 [ilink32 Warning] Warning: Error detected (LME200)

 link32.exeをLARGEアドレス対応にしてあげることで、対応するみたい。
コマンドプロンプトを管理者権限で起動し、以下のコマンドを実行することでリンクエラーは解消されました。

C:\Program Files (x86)\Embarcadero\Studio\19.0\bin>"c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\editbin.exe" /LARGEADDRESSAWARE ilink32.exe

かしこい人たちのおかげで助かりました。
それにしてもEmbarcaderoには悩まされます ・・・

2017年8月16日水曜日

RADStudio : paclient exited with code 1 (iOS)

かなり久しぶりの更新(仕事ネタは機密上書けないことが多いので ・・ )
 しかもTwitterは完全に自転車アカウントなどになっていて、この会社何なんだ?って状態になっている。笑って許してください。


BluetoothLEのデバイスを制御するアプリを作る必要があり、iOSとAndroidを別々に作るのも無駄なので Embarcadero RADStudio を採用してみた(と言っても一年前に購入してもらったものだが)。
 
Android版は思ったよりすんなり動いたので、次はiPhoneで ・・ そこでハマってしまった。


Embarcadero RADStudio でiOS アプリ開発を行う場合は、以下のように接続する。
Windows(RADStudio) ->  Mac(PAClient) -> iPhone

Windows上のRADStudioがMac上のPAClientを経由して、iPhoneの制御を行うことでデバッグできるようになっている。

いろいろと試していたら、突然デバッグができなくなってしまった!
実行しようとすると、RADStudioが 「paclient exited with code 1」と吐きだして、止まってしまう。

今更動かないと困る。評価できない!
RADStudioをアンインストール~新しいバージョンをインストール ・・ だめだ
パッチがあったので、あててみる ・・・ だめだ

Macはほとんど使ったことないので、よくわからないことも多い。
こんなことの繰り返しで、何日費やしたことやら。

Mac側のpaclient画面には /use/bin/security find-identity -v という表示が連発している。
ふっとMac側に「KeyChain」なるものを思い出した。

開いてみると、この中にEmbacadero開発関連のキーをいくつか発見。
ここにあったものをすべて削除して、RADStudioのMac接続関連設定を再設定すると、いとも簡単に動いた。

あとから気づけばこんなもんなのだが、こんなことにばかり時間がかかって、肝心のことはこれから。

BLEデバイス、Androidではすぐに接続できるのだが、iOSからはつながらない。
やっとこれから原因調査できるが、その前の段階で無駄な時間を使いすぎて嫌になってきた(涙)。

2013年6月28日金曜日

あるき音システムをわかりやすく



あるき音システムが理解できないという指摘を受け、説明用の図を作成しました。
(ケイさんごめんなさい)。

あるき音のイメージはこうです。


屋内施設の中(たくさんの場所)にスピーカー+CDプレーヤーを設置し、異なるIDのあるき音を鳴らしておきます。

スマホを手にした顧客がこの施設を歩くと、クラウド(サーバー)は次のようなデータを収集できます。

[2013/08/21 12:13:30][スマホ123号][AREA9]

[2013/08/21 12:13:40][スマホ123号][AREA8]

[2013/08/21 12:15:20][スマホ123号][AREA6]

[2013/08/21 12:21:50][スマホ123号][AREA2]

[2013/08/21 12:25:03][スマホ123号][AREA1]

あとでこのデータを解析すると、この顧客の移動パターンが把握できるというものです。
これらたくさんの行動パターン解析結果は、施設構成レイアウトや顧客誘導経路等の営業戦略の基礎データに利用可能です。


※ スマホを手に持って歩くと「いいことがある」「楽しい」という仕掛けが必要です。
→ 自動ポイント配布、シークレット割引メッセージ表示などのスマホアプリを開発し、バックグララウンドであるき音アプリを動かしておく。

※ スマホのマイク性能(指向性)、スマホの持ち方(マイクを指でふさいでない)、歩く速さなどで、あるき音を聞き取りできない場合が多々発生します。 
 → このため完璧な人間の動線をトレースすることは困難です。


あるき音アプリのダウンロードはこちらから

2013年6月22日土曜日

あるき音システム


かくれ音システム応用版として、「あるき音」をリリースしました。

あらかじめ屋内施設(ショッピングモールやデパート)のあちこちから聞こえない音「あるき音」を鳴らしておきます。

スマホはあるき音を聞き取ると、その音に含まれている情報をサーバーに送ります。
この仕組みにより顧客の移動経路、行動パターンを把握することができるため、販売戦略に役立てることが可能になります。





区画ごとにスピーカーを設置し、異なるあるき音を鳴らしておくことで、聞き取りエリア内を通過したスマホを把握します。


※ かくれ音とあるき音の違い
かくれ音IDは約1.2秒ごとに繰り返し鳴らしていますが、あるき音IDはデータ量を減らし約0.6秒ごとにしています。歩きながらのエリア通過を想定しているため、短いデータ長を設定しました。


あるき音アプリのダウンロードはこちらから


2013年6月18日火曜日

かくれ音システム 実測結果


かくれ音システムは屋外でどれくらいまで音が届くのかを実測してみた。

まずは再生環境(スマホ+スピーカーを地べたにそのままってどうよと思いつつ ・・ )


ちなみにボリューム設定は約40%の位置に
これ以上ボリュームを上げると、音がひずんで「ういーん」という音が聞こえてくるんです。




 では実際にスマホを片手にテストしてみました。

まずはPanasonic P-01D
距離が離れると、スマホのマイクをスピーカーに向けないと厳しいです。
(だってヤフオクで新品未使用が5000円という値段に釣られたスマホですし ・・ )


でもこんな感じの場所で3秒ほど待機すると、見事受信できました!

引き続きNEC MediasTab N-08D
Panasonicは超えるかなと思ってましたが、これまさに余裕!

結局この位置でスマホのマイクをスピーカーに向けると3秒ほどで受信できました。

実際の位置関係をGoogleMAPより調べるとこうなりました。
以下の写真はGoogle Mapとストリートビューから抜粋した位置関係です。







Panasonic P-01Dでも20m以上!  MediasTabだと40m以上です。
Androidスマホのマイク性能やマイク指向性などによって到達距離は異なることは当然ですが、この結果には自分でも驚きです。

※ ただしスマホのマイク性能や周りの状況によって伝達距離が大きく異なると予想されるため、あくまでも伝達距離は10m程度という仕様にしておきます。

ちなみにこの間にペットの犬が3匹いますが、まったく吠えることありませんでした。
犬に「聞こえた?」って聞いても無視されてしまいました。

かくれ音アプリのダウンロードはこちらから




2013年6月17日月曜日

かくれ音システム

ひさしぶりのブログ更新。
ずっと音を使ってのデータ伝送「かくれ音(かくれおん)」システムの開発を行っていました。

テーマはまさにシンプル「音で伝える」です。



人間には聞こえない音域(18K~20KHz)の音を出し、スマホのマイクで聞き取ります。
スマホ毎に異なるマイクの指向性などをどう克服するか、本当に苦労しました。

現在Google Playに正式リリースする前段階で、最終テストを行っています。
iPhone版はまだ追いついていません(残念)。

こんな使い方を考えています。



他にももっといろいろな使い方ができないかと、知恵をしぼっています。


聞こえない音を再生するスピーカーはONKYO社製、GX-70HDを推奨機種としています。
大きさ、再生周波数、出力パワー、そして値段でベストな機種と判断しました。


http://www.jp.onkyo.com/pcaudio/poweredspeaker/gx70hd/index.htm
(現在Amazonで1万円前後です)

興味がある方はお気軽に連絡ください。
実機デモ、打ち合わせなど対応可能です。

基本的な販売対象は「聞こえない音データ(wavファイル)」と「サーバー使用費」です。
Androidアプリは無料で公開しますが、有料でカスタマイズアプリ開発なども対応します。
またAndroidアプリの聞き取り処理部(オブジェクト)部を提供し、別途アプリに組み込みなども対応します(費用は別途相談)。


かくれ音アプリのダウンロードはこちらから




[2013/06/19追記]
たとえばこんな使い方(メモ書き)

大きな立体駐車場内にあちこちスピーカーを仕込んでおき、GPSの代わりに使用する。
それを使用して、どこに車を止めたか指示するアプリが可能。
・・ 店のサービス向上になっても、売上の向上は難しいかな?

2013年4月10日水曜日

Webカメラ画像のリアルタイム表示


Webカメラの映像をAndroidスマホで表示するデモを何度か受けたことがある。
その際いつも指摘されることが、スマホ側での画像の遅延。

動作環境は以下のようなイメージ。

USBカメラの画像は数秒遅れでAndroid端末に表示される。
ストリーミングソフト=WebCamXPでは3~5秒、YawCamで2秒程度。

USBカメラとAndroid端末が離れている場合は問題ないんですが、デモなどでは絶対指摘されてしまいます。
「この遅れはなんとかならないのか ・・ 」と。

確かにそうなんですよね。
車のバックモニタなどを想定した場合、2~3秒遅延があれば「ゴツン!」間違いなしです。

ストリーミングソフトの自作を想定して、どこまでリアルタイムに近づけるか調べてみた。

USBカメラをDirectShowなどで取り込む場合、取り込みに必要な時間は33mS。
 1/30秒での画像取り込みですね。
 取り込んだ画像サイズは9216154バイト(640*480*3+α:ヘッダ分)でした。

この画像(Bitmap)をメモリ上でjpegに変換した場合(品質40%)
 処理時間に約31mS
 出力画像サイズは25871バイト(原本の約1/35)でした。

 ※ ファイル出力していません。あくまでもメモリ上だけの展開です。

あとはWifiでの転送速度とAndroidの受信~表示の遅れ。
これはJNI(C++)などを使ってがんばるしかないです。

実際には1秒に10枚程度の画像でパラパラ漫画的に、遅延は100mS程度って感じでしょうか。
(これでも2メガBPSの通信速度が必要で、3G回線だととっても無理)。

これで実用レベルに達するなら、DirectShowでの画像取り込み~Jpeg変換~Androidへの転送ってのが実現できそうです。

 MotionJPEGでのパラパラ漫画ストリーミングです。
 最近はやりのストリーミングもリアルタイムには厳しいので ・・