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スマホ表示&ロギング装置開発