★つれづれ出張所♪

プログラム開発情報(主にWindowsPhone!)を発信していま~す。(*^_^*)

カーナビ付け替えでバックカメラの変換ユニットをワンオフ作成(後編)

前回からのつづき・・・

 

基板が届いたので早速組み立てますが、そのまま絶縁テープでぐるぐる巻きにしても良いのですが(笑)、簡単なケースを作ります。最近やっとFusion360と言う3Dツールの使い方を覚えたのでそれで作ります。

 ※それまでは、DesignSparkを使っていたのですが、Fusion360の書籍プレゼントに当選したので乗り換えましたw

 

はい!データの完成です。

Fusion01

Fusion02

 

これを、、、流行り!?の3Dプリンターで印刷します。

 

WANHAO i3 PLUSと言うブツです。中華製です。
(市販3Dプリンターはほぼ中国産になってしまいましたね。。。)

IMG_210202
だいぶ前に安売りしていたのを購入して持っていたのですが、忙しさに負けて箱に入れたまま結構な時間が経ちましたが、やっと出番です。初期不良でなくてヨカッタ!
(;´∀`)

 

お試しでRCA端子のキャップを作ってみました。

IMG_20171223_210700
良い感じです。

 

そして問題なく試運転が完了したので本番のケース作りです。

簡単なケースですが、これでも全部プリントするのに4~5時間ほどかかります。

 

で、、、印刷中に焦りました!

とある部分を宙空に設計していたんです。

 

こんなのどうなるんだ?と思ったら3Dプリンターさんは、こちらの想像を超えてプリントし続けるじゃないですか!

DSCN6350
そんできちんと製造出来ちゃいました♪


すごい! てか、どうなっているの?(笑)

 

と言う事で、ちょっと寸法が微妙なところもありましたが、再度調整してプリントするのも時間がかかり過ぎて面倒なのでそのまま使います。(;´Д`)
IMG_20171225_180028
KiCadで作成した基板など必要なパーツをぶっ込んで完成です。

 


 

※で、、、すみません!

※ここから写真全然撮ってませんでした・・・せっかく綺麗に車両に組み込んだのに・・・




ナビも取り付け、カメラも予想通り無事映りました♪

 

 

 

、、、、、、、、、、、、

 

 

ここで専用カメラの専用カメラたる由縁が分かりました。
 ↓
よ~く見て下さい!

IMG_20171231_131955
超~~~広角のカメラだったのです(汗

 

これじゃ画質も悪くなるわけだ。多分ナビで画像をキャプチャーしてから平面補正しています。

色んな表示モードがあって凄いなとは思っていたんですよ。当時は・・・。

でも、カメラの性能が追い付かなかったんでしょうな・・・。低解像度のカメラで画像を引き延ばしたら汚くなりますよ。なんでこんな面倒な事やろうと思ったんだろ?当時のパイオニア・・・w

 

と言う事で、紆余曲折あったバックカメラ変換ユニットのワンオフ作成でした。

 

変換基板は10枚ほど余っていますので(笑)、欲しい人は実費(送料)でお分けします。連絡ください。

いないと思うけど・・・(;´Д`)


【宣伝】
うちはいつもこのフィラメントで印刷しています。イイ感じです。
また、使ったDCDCダウンモジュールもリンクしておきます。
 

カーナビ付け替えでバックカメラの変換ユニットをワンオフ作成(前編)

どうもです。

相当前(年初!)にブログ用に記事を書いてあったのですが、放置してましたが発掘したので記載しておきます。内容は、超マニアックなどうでもイイ役に立たない記事になります(笑)。

 

前にカーナビを家の電源で動かす方法をブログに書きましたが、そのカーナビを取り付けるにあたってちょっとしたユニットを作成したので記載しておきます。

 

カーナビの付け替えですが、なるべくお気軽にしたいと思っていました。

そこで一つだけ懸念材料があったのがバックカメラです。

今まではパイオニア純正品のND-BC100IIと言うバックカメラものを面倒だったのでディーラーで取り付けてもらっていました。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

【補足】

バックカメラND-BC100IIは、当時とても最悪な映像の汚さなカメラで酷評されていましたw

当時は、純正品でしかガイド線が表示されなく仕方なしに購入&取り付けした次第です。

後に汎用カメラでもガイド線が出る事が発見されガックリした記憶がありますが・・・。(;´Д`)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

CIMG7472
※↑こちらが今まで取り付けていたナビ(AVIC-VH9900

【ここから本題・・・】 

今回は、そのカメラをそのまま流用する事を考えました。ただしこのバックカメラは、コネクター端子が当時3年間、3機種だけ(だったはず?)発売されていたカーナビ(AVIC-VH9900など)専用に出来ています。

 

いま発売しているカーナビとの互換性はまったくありません!(涙)

 

まぁ、バックカメラに頼る運転は全くしていないのと、そもそも車両にはバックセンサーが既にあるので無くても別に構わないのですが、あったら有ったでで繋いでみたいっすよね・・・(;´∀`)

 

と言うことで、カメラの接続ピンが4ピンしかないので所詮コンポジット映像信号だろう!と単純に考え変換機を作る事にしました。

検索などして調べると専用コネクターには、次のようなピン配列になっているのが分かりました。

キャプチャ
 

カメラへの電源は、6.0V8.5Vまでと説明書の仕様に書いてありました。これは車の12.0Vと違います。

よって手持ち(数個購入してある)のDC-DC減圧モジュールを使う事に決定!

 

また使用されている専用コネクターは、JST製のPAP-05V-Sと言うのが判明しました。

PAコネクタ5
これの逆側(ヘッダー)は、同じく
JST製のB05B-PASK-1(LF)(SN)と判明しましたが、とにかく取り扱っている所が少ないです。最小個数で個人へ販売してもらえるのは、マルツ電子とモノタロウくらい?だと思われます。

 

今回は、送料も安かったマルツ電子の通販サイト(マルツオンライン)で購入しました。

 

と言う事で、専用コネクターを繋げるオス側のコネクターヘッダとコンポジット端子(俗に言うRCA端子)を通販(マルツオンライン)で購入しました。

 

で、、、適当なユニバーサル基板を使って安易に配線しようと思っていましたが、この専用コネクターのピンピッチが2.0mmで良くあるユニバーサル基板は使えませんデス!

 

そこでふと思い出します。。。
いま(当時)
ALLPCB.COMと言う所でキャンペーンをやっており基板製造及び配送料が$5でやっているんです。これを使わない手はないとおもい速攻で専用基板を設計しました。

いつものKiCadを使ってさくっと作ります。単純な回路ですのであっと言う間です。(^_^;)

KiCad01
 

一応、ヒューズも取り付けられるようにしました。

KiCad02
 

そして趣味でやっているOBD2ボード(いずれブログに書く予定?ッス)の改良版と共に早速オーダーです。

 

日曜の夜にオーダーして、金曜には届きました。DHLでの配送でしたのですごい早いですよ♪

DSCN62320
しかも、ボード2種類(各
10枚+α)と手数料など合わせて$10.66でした。ビックリです。

 DSCN6235

 

 

と言う事で、長くなったので次にづづく・・・


【宣伝】
マルツオンラインの楽天店は、こちら↓から!

新型hp spectre x360(ae000)購入と初期不良とラッキーな交換?!

昨年末に久しぶりにWindowsノートPCを新調しました。
いままでは、外に持ち出し用としてMac BookPro Renta 2014(CPUはi5仕様)にWindows10 をインストールして使っていました。
DSCN6907
これも当初はmacで定番の仮想化ツール(parallels)を購入してwindowsを動かしていたのですが、モッサリした動きが嫌になり、標準でついているbootcampに切り替えて純粋なwindows機として使っていました。
 ※思えば殆ど使わなかったparallelsに無駄な投資をしてしまいました。。。(´・ω・`)
それでも何か処理が遅いなぁ~と思いつつ外出先ではmacを使い続けていましたw
(そもそもmacを買ったのは、iOSアプリ開発に必要だからですがね・・・w)

で、それから3年が経ち・・・やっと欲しいと思わせるノートPCが発売されました。
hpから年末に発売になったspectre x360(パフォーマンス/ae000)です。

hpsp
決め手は、結構あります。
 ・第8世代に切り替わったインテル4コアCPU i7を搭載!(←処理が速いですよ)
 ・メモリーが高速仕様のLPDDR3-2133で16GB!(←開発するなら最低でも16GBは必要でしょう)
 ・モニターが13.3インチで4K(3840x2160)対応!タッチパネル!(←タッチパネル楽です)
 ・WindowsInk対応(N-Trig)のアクティブペン同梱!(←お絵描き出来ますよ)
 ・ストレージが1TB NVMe SSD!(←沢山データ保存できますよ)
その他にもWindowsHello対応200万画素Webカメラ、同対応指紋センサー、microSDカードリーダ等々。もりだくさん。

それでいて20万を切る価格です。(さらに安くなるクーポン配ってるサイトが結構あるんで検索しましょう)
同時にキャンペーンで古いPC(壊れていても!)を下取りに出すと最低でも1万円のキャッシュバック!
 ※このキャンペーンは2018/01/26現在、既に終了しています
これは、買わないわけにはいきません!(←それでも高いけどw)

※その前にレノボからThnkPadの25周年モデルも買おうかと思っていましたが、速攻で売り切れていたためムヤムヤしていました。そのすぐ後に最新CPUを搭載したspectre x360が発表されたのですよ♪ やっぱり速度は正義!そらぁ、飛びつきますわ~!(;´∀`)

速攻でポチリました。当初は在庫が無いとの事で1月中旬以降に納品されるのを覚悟していたのですが、あっけなく一週間程度で到着!

届いたその日のうちに喜び勇んでいじくり倒しました。

DSCN6380
届いた外箱!

DSCN6390
箱を開けたら、また箱が・・・w
 ※最近の梱包ってこんなんばっかり。appleが始めたと思うのだけど無駄じゃね?

DSCN6414
PC本体を発掘!

DSCN6418
その下には、説明書類など・・・

DSCN6420
更に中には、ACアダプターなど・・・

DSCN6430
入っていた付属品です!

DSCN6459
電源起動。
まずは、windows updateから、、、いろいろと使ってみます。



で、、、、発見してしまいました。

売り!の一つである液晶を360度回転させてタブレットモードにするとやけに閉まりが悪い?
(ヒンジがおかしい?きっちり開き切らない?)
IMG_20171229_173257
気にならなきゃどうでもいいのかもしれませんが、20万も払ったし一応サポートに連絡してみるか!と連絡先を探すけども年末(12/28)で微妙な感じ?
それでもチャットサポートなるものを見つけアクセスすると5分ほどで繋がりました。

症状を文字で伝えるんですが相手のサポートの人(名前から多分、中国人?)も良くわかんないみたいで、最終的にメールで画像を送ってくれと言われたので、写真を撮ってついでに動画でも送り付けましたw
 
 ※送り付けた動画を公開しますデス!

そしたら速攻で「すみません」の平謝り。不具合です!との事で、追って初期不具合担当?者から連絡するとありましたが、年末年始を挟んでいるので1週間後くらいになってしまいますとの事。

こちらはそもそも1月末頃に納品されるものだと思っていたので、特に問題ないので了承しました。多分、交換になるだろうとの事で、またそれまで使ってても良いとの事でしたので、それも安心材料でした。(;´∀`)


年が明けたら(1/5)すぐに微妙な日本語でのしゃべり方?をする女性から電話がかかってきましたw
xxx(あえて伏字)と言います。と名前から中国(もしくは台湾?)の人かなと思えますが、サポートも日本人が居なくなってしまったのに多少ショックを受けながら交換手続き(付属品も含めて一式全部)の話をして、在庫が無く交換品の納期が1月末になってしまうとの説明を受けました。
正式な納品日は追ってまた連絡するとの事で、その場は終了しました。
 ※ちなみに掛かってきた相手の電話番号が03xxxだったので、都内からかけて来たのだと思いますが、それでもサポート要員が中国系なんですかね?もしかして日本人より良い給与もらっているのかな?


それから数日後・・・、再びxxxさんから電話があって一週間後にお届けします!とありました。宅配便が交換で来ますとの事で正確な日付と時間の確認をしました。
そんで当初通り(1月中旬?末?)と言いますか、1/18に交換品が届きました。
今回は、速攻でヒンジ部をじっくり確認して問題なし大丈夫です♪
サポートに連絡して良かった!って感じですよね。


久しぶりに高額商品の初期不良に当たってしまいましたが、サポートも良い感じで助かりました。
 ※あっけなく交換してくれるとは思いませんでしたけどね。(;´Д`)

改めて使うと処理も速いし、13.3インチでの4Kモニターも圧倒的にキレイだしお気に入りになったPCです。


そして今回の初期不良にあたってラッキー!だった事があります。

まず、初期不良でガッカリしている年明けにPC-WATCHさんのレビュー記事が公開記載されて、内容が内容だけに追い打ちをかける様にチョビッとだけ鬱になっていました。
SSDが旧モデルではサムソン製だったのが、新モデルで東芝製に代わっててアクセス速度が遅くなっているとありました。もちろん自分の手持ちにある不具合品も、その東芝製が積まれていました。

が、なんと交換良品は旧モデル(ac000)と同じ高速アクセスのサムスン製に代わっていました。
SSD1T
予想外の出来事にバンザーイ!ですw
 ※windows10は、pro版にアップグレードしています。購入時はhomeエディションです

あとそのPC-WATCHさんの記事では、キーボードに関して煩いとボロクソに書いてありましたが、そんなにブッ叩いて入力するか?と反論させていただきたいですわ。普通に使えばうるさくもありません。ごくごく普通ですよ。
それから右端1列にあるキーボードにもイチャモンつけていましたが優秀です。これがあったから自分は購入したようなもんです。
DSCN6872
[DEL],[PAGE UP], [PAGE DOWN]などが独立してあるのは、やはり便利です。
 (外出してmacを使うときには本当に苦労したので特に感じます)
テキストエディータなどでPAGE UP, DOWNキーをしこたま使う派なので切に思います。

そして[enter]キーの横にある右1列のせいで、これまた[enter]キーを押すのを間違えるとの記載を見つけますが、すぐに慣れます。少なくともこのブログを書いている頃には問題ありませんよ。(;´∀`)

DSCN68722
また、それに従いカーソルキーもうまい事、独立していて(左側に詰まっていない)使いやすいと思いました。


何気にWindowsHello対応のログイン認証も便利ですね。
何も操作せず見つめるだけで100%完全に顔認証してくれてログインするので便利です。
指紋認証も付いてるけど、こちらの出番は無さそうな感じです。(;・∀・)


【追記!良い点まだあった】
音楽再生してみて分かったけど、スピーカー性能も良い感じです!
音楽がきれいに再生されます。このサイズではビックリするくらいの能力だと思います♪
※スペック表見るとスピーカーが4つ(底面2つ、表面2つ)もあったんですね


ここからは、ネガティブな点?を・・・


ヒンジがゴールド!うざい!!!

例のいわくつきのヒンジ(笑)ですが、ゴールド(メッキ?)です。
左右にあります。使ってて目障りです。これはダメでしょう!旧モデルの方が良いです。
IMG_20171229_173118

そこで速攻でプチ改良しました。電子パーツの配線保護などにつかう自己融着テープを張りましたw
 ※Linkman ハーネステープ黒 【PVCTAPE18MB】
マルツ電子さんでいつも買っている奴です。
DSCN6883
これはベトベトしないし半艶ブラックなのでイイ感じに筐体とマッチしました。



外部モニター出力がない!

最近の薄型ノートPCには付いてないのが多いけど、でもイイんです。
右サイドに2つあるUSB Cコネクタを使えば拡張できます。プロジェクターに繋いでプレゼンできます!DSCN6889
Amazonで購入したomarsってメーカー?のmac用と思われる拡張HUB6in1が問題なく使えました。
DSCN6845 DSCN6846
 ※梱包箱の表面と裏面です
HDMIおよびVGAで外部モニター出力出来ました。
DSCN6879
 ※なにもせず勝手にwindows 10が認識しました
さらにUSB3.0ポート2つとGigaBit対応LAN端子も付いてて、標準のACアダプター(USB C接続PD仕様)を繋ぐことも可能です。もちろんPD充電も出来ましたよ!
DSCN6859
 ※仕様表です
あと、おまけ写真。(;´∀`)
DSCN6850
 ※結構良いチャック付きケース(レザー?)に入ってました
ちなみに同じメーカー?からもう一つSDスロット付き8in1(但しSDは遅いUSB2接続)のがありますが第8世代 spectre x360には高速アクセスできるmicroSDスロットありますので安い方で宜しいかと思います。


4Kモニターだとバッテリー時間が少ない!?

通常のフルHDモデルだとカタログスペックで約倍近く持ちます。
4Kモデルは、カタログスペックで約10時間ちょと。それでも多い方だと思うけど悩ましい問題ですよね。今のところ新品というのもありデータは取れてないのですが、一日作業でバッテリーが空になることはありませんが・・・。経たってくるとどうなるか?
でも一応、第7世代の旧モデル(AC000)よりも多少バッテリーサイズが大きいみたいです。
ZBATTERY
この画像では、3時間ほど使って80%って感じです。(て、ことは10時間以上持つのか?)


13.3インチでも液晶サイズが違う?

今まで使っていたmacも同じ13.3インチ液晶だったのですが、使うと何か変!?
DSCN6917
スケールで測るとmacよりも横に1cmほど大きく、逆に縦が1cmほど小さい。
俗に言うワイド液晶だったんですね。
これは単なる慣れの問題だと思うのですが、同じ13.3インチでもサイズが違うので気になる人は注意が必要かと思います。
あと比較するとサイズは、ほとんど変わりませんが厚みが全然違います。spectre x360の方が薄いです。しかも段違いで軽いです。(;´∀`)

微妙な点は、こんな感じでしょうか?

と言う事で、これから3年ほど(かな?)hp spectre x360を外出時などに使っていきます♪

やっぱ最新PCはエエね!(^^)/


 

カーナビ(車載機器)を自宅で起動させるには?

どうもです。最近クルマのカーナビを新型サイバーナビ AVIC-CZ901)に変更しました。

車体に載せる前に動作確認とバージョンアップをしようと思い自宅の100V電源(コンセント)で新ナビを起動してみました。

 

てか、車載しなくてもナビは動作させられるんですヨ。でも、そのためには必要なものがあります。家庭用の交流電源(AC100V)をクルマで使う直流電源(DC12V)に変換する必要があります。その機械が必要です。

 

マイコンなどの電気工作遊び?をしていると安定化電源を持っているかと思います。(←マニアックに辿り着くと買うのです{笑})

1
自分もだいぶ昔に買った安い?安定化電源(ATEX製 ACH-305B)を持っています。
 ※写真にモザイク掛けてるのは、設置場所が汚いからっすw

 

単純にこいつを使って、つなげてみる事にしました。

 

で、結論から言うと動きません!(爆)

 ※実際には、ちょっと動いてすぐ止まってしまう・・・(;´Д`)

 

よくよくナビの説明書(仕様書)を見ると必要電圧に10アンペアが必要でありました。。。

手持ちの安定化電源は、12V時に5アンペアまでしか対応していません。

 

原因が分かり腹が立ったので、速攻でポチりました。

 

手持ちの安定化電源は、可変電圧で使えるのですが、これが10アンペア以上に対応するものとなると金額もバカ高くなり(桁が変わりますw)とても遊びで個人が購入するものではなくなります。

 

でも、今回のナビは12V固定です。それを条件に検索すると12V固定で10アンペア(以上)のものが大変お安く購入できるのが分かりました。(このスペックの製品でも日本製だと桁が違ってくると思われます)

よって速攻でポチった次第です。(;´∀`)

 
保証期間が長いものが製品として安心かとおもい、検索した中からNEW STYLEと言うブランドの30アンペアまで対応するものS-360-12をチョイスしました。

2
余裕を見て必要な倍以上の30アンペア!まで対応するものにしました。
4
また30アンペア製品だとFANが付いているので多少なりとも長時間使うのに安心が出来ます。
 ※FANは、無回転から本体が熱くなってくると3段階くらい?で風速が変わるようです

3
届いたものを確認すると2017年12月と製造後すぐの品物でした♪(^_^;)
5

 

で~、、、これは完全にプロ向きですのでケーブル類は一切ついてきません。(説明書もありません!)

手持ちのワイヤーケーブルを使いましょう。

 

まず、日本のコンセントは100Vですのでサイドにある切り替えスイッチで110V方向に切り替えます。

6
あとそこらへんに転がっていたwコンセント付きのケーブルを「N」と「L」の端子に繋ぎます。

 ※家庭用コンセントに出ている100Vは、交流電源なので2本のケーブルをどちらに繋いでも構いません

IMG_20171217_164352
あれば、アース線をアースマークのある端子に繋ぎます。

 ※うちはアース線が家に出ていないので繋いでいません。一応大丈夫です

 

あとは、各3つづつある「+V」には12Vが、「-V」にはGND(車で言うアース線)を繋げられます。

DSCN6277
 

でも、その前にテスターできちんと12Vが出力されているかチェックします。

IMG_20171217_171414
左側にある「ADJ」とあるオレンジ色のボリュームを回転させると出力の微調整が出来ます。

自分は、ちょっと余裕のある12.5Vに調整しました。(車の電装品は最高13~14V位までは大丈夫です)

 

これでやっとナビと接続できます!

 

順番は、次の通り。

①ナビのアース線(普通は黒色)を「-V」端子に繋ぎます。

②ナビのパーキング線(普通は若草色)を「-V」端子に繋ぎます。

 ※これを繋がないとナビが走行中と勘違いしてナビの操作が出来なくなります

③ナビの常時電源線(普通は黄色)を「+V」端子に繋ぎます。

④ナビのACC線(普通は赤色)を「+V」端子を『安定化電源の電源投入後』に繋ぎます。

 

特に「④」には、注意してください。

安定化電源を起動(家の100Vコンセントに入れた)した後、ちょっと待った10秒後くらいにナビのACC線を繋いでください。

これはエンジンをかけてから通電させる動作と同じことをしています。

 

逆に電源を止めるには、ナビのACC線を外してから、10秒後くらいに安定化電源を切って(家のコンセントから外す)ください。

これもエンジンを止めてから電源をダウンさせる動作となります。

 

あとショートさせないようにくれぐれも配線には注意してください。

これでもか!って言うくらい絶縁処理しましょう。高価なカーナビが壊れたら最悪ですから・・・。

IMG_20171217_171428
 

上記の方法で、家庭の電源コンセントからナビが起動できたと思います!

 

自分は、この後バージョンアップや初期設定を済ませてから車両に取り付けました。

IMG_20171217_180031
 

バージョンアップには、数度本体が再起動して正味1時間以上かかりました。

エンジンをかけて1時間もかけっぱなしにするのは、バカらしく環境にも悪いですので出来るだけトライしてみる価値はあると思います。

IMG_20171217_181219
 

ちなみに今回のサイバーナビ(CZ901)の消費電力は、こんな感じです。

ワットチェッカー(RATOC REX-BTWATTCH1)を使ってコンセントから先、安定化電源とナビの使用量になります。

Screenshot_20171218-140654
ナビが安定している時は、大体50Wほどの消費電力で、電流は900mA程度でした。

ナビの最大10アンペアと言うのは、起動電力が高いのですかね?

(普通に売っているワットチェッカーでは、瞬間的な計測が出来ないので良く分かりませんが・・・)

 


最後にちょっとおまけ!


今回最新サイバーナビ(
AVIC-CZ901)をチョイスしたのは、ナビの画面がHDMI出力でクローン表示出来るからです。

IMG_20171218_140330
 ※写真に写っているHUDモニター(左側)の画面下の方には製品保護用のフィルムが半分貼りっぱなのでボケています

このナビとHDMI接続できるHUDモニターを組み合わせるとカッチョエー!未来的なナビ画面(向こう側が透ける)が構築できます。こちらもオススメ!!!

DSCN6465
 

PS.

HUDモニターですが、OBD2ユニットの発売でお世話になった会社さんで扱っています。

てか、台湾の開発者さんに会ったことあります。

その時にHUDに関して簡単に話をしたのですが、並々ならぬ情熱を感じたのでした♪

多分、民生用で唯一のHUD(HDMI接続)モニターではないでしょうか?ちょっと値が高いですが、未来を感じたいアナタ!どうっすか?・・・(;´∀`)

※ちょっと古めのmac bookprorentawin10(解像度2560x1600)で使ってHDMI接続させてもきちんと表示できたのでHDMIの互換性は高いと思います

※サイバーナビの800x480でも楽勝で表示できましたしね!

 

ちなみに自分は、非常に高くなってしまった時にHUDモニターを購入してしまいました。

丁度、モデルチェンジするタイミングの前に、高値を付けているショップで在庫であるやつを購入したのです。

販売元の社長さんに何で市場在庫が少ないのか?と直で問い合わせたら新モデルに代わるよ!と教えてもらったのですが既に購入後でした。早く問い合わせすれば安く買えた(多少待てば…?)のにしくじりました。orz

 

新モデルは、こちら↓ですよ!(楽天市場へリンクしています)


【広告】



STM32 HALドライバで使うFreeRTOSの罠・・・?



どうもです。
STM32F7の紹介をだいぶ前に行いましたが、開発を続ける上で一つだけ引っかかっている部分がありました。
現在、OBD2機器の開発を遊びで行っているのですが、リアルタイムOSを組み込むと意図としない動作が起こってしまう事でした。
プログラムを実行して、大体30分~2時間くらいでハングアップしてしまうのです!(涙)。

全然原因が分からないので、しばらく放置しておりました・・・w

で、最近やっとどうにかなったのでここに書き出しておきます。

まず、STM提供のHALドライバを使うと一緒にFreeRTOSが付いてきます。(STM32F7は、強制的にHALドライバの使用が勧められています)
ちなみにFreeRTOSは、組み込み系で使えるフリーウェアのリアルタイムOSです。
 ※詳しくは→http://www.freertos.org/

今までもSTM32F4などで、FreeRTOSは使っていたので、それと同じだろう!とプログラム記述していました。

が、、、、それが悪かったようです。orz


最近、STM提供のサンプルプログラムを眺めていたらFreeRTOSを呼び出す関数が違う!?
そう、HALドライバで使用するには、使い方が違ったのです!(;´Д`)

まず、通常であればヘッダーを以下の様にリンクします。
 #include "FreeRTOS.h"
 #include "task.h"
 #include "queue.h"
 #include "portmacro.h"

ですが、HALからは次の様にリンクします。

 #include "cmsis_os.h"
1ファイルのみです。(内部では通常のヘッダーをリンクしていますが・・・)

もう、ここからして怪しさ爆発です!

例としてタスクを生成する関数ですが、、、通常のFreeRTOSでは次の通り・・・。
 xTaskCreate(prvTaskLCD,   (signed portCHAR *)"LCD",   0x400, NULL, 1, NULL);
 xTaskCreate(prvTaskSensor,(signed portCHAR *)"SENSOR",0x200, NULL, 1, NULL);
 xTaskCreate(prvTaskKLINE, (signed portCHAR *)"KLINE", 0x400, NULL, 1, NULL);
 vTaskStartScheduler();

HALからは、次の通り・・・。
 osThreadDef(taskLCD, prvTaskLCD, osPriorityNormal, 0, 0x400);
 taskHandleLCD = osThreadCreate(osThread(taskLCD), NULL);
 osThreadDef(taskSensor, prvTaskSensor, osPriorityNormal, 0, 0x200);
 taskHandleSensor = osThreadCreate(osThread(taskSensor), NULL);
 osThreadDef(taskKLINE, prvTaskKLINE, osPriorityHigh, 0, 0x400);
 taskHandleKLINE = osThreadCreate(osThread(taskKLINE), NULL);
 osKernelStart();

もうねぇ、関数が全然違いますがな・・・。(´・ω・`)

でもこれらHAL側の関数は、マクロになっていて最終的には、FreeRTOSの関数が呼ばれます。
これで今までと同じようにプログラム記述してても動作しちゃって居た訳・・・(汗)。

そんで、最終的にはFreeRTOSの関数が呼ばれても実際には、なにやら色々とHALドライバの方では制御しとるのですよ。
詳しく書くと長くなりすぎるので割愛しますが、FreeRTOSと言っても似て非なるものです。
(大雑把に言うとタイマーの制御に小細工を入れている感じデス)

これだったらHALドライバの解説でFreeRTOSって書かないでほしい!
せめて互換品と書いといてくれ~~~~

ちゅう事で、関数を全てHALドライバのFreeRTOSに置き換えて実行すると5時間以上連続始動させても無事動作するようになりました♪
これで、次のステップに進めます!(;´∀`)

なお、HALドライバのFreeRTOSについてはリファイレンスマニュアルが無い?(見つからなかった)ので、ヘッダーファイル cmsis_os.h から代替え関数を突きとめてプログラムを修正した次第です。辛かった・・・w

それにしてもHALドライバよ、オメ~はいらない子だ!
STMも通常の(今まで通りの)ドライバーを提供してくれ~~~~~~~~!!!!!!!!!!!!!!

おしまい