
みんカラって偉大です。あらためてそう思いました。
もしみんカラでROMってるだけの方居ましたら積極的に発信していきましょう。
C-HRの整備手帳、パーツレビューは投稿記事すべて読んでいますので気になる記事にはコメントしていきます。
そういう繋がりはありがたいです。
先日のブログで現在調査中のネタ(NecPixelLED)をチラ見せしました。
ある方から「NeoPixelLEDを使ってる凄い方がいる」というメッセージを頂きまして、早速、記事を見せて頂いたんです。
やってる方向は私と違いが無いのですがレベルが突き抜けてて、目指すべき方向が見えたというか。
早速、その方にメッセージを飛ばし友達申請も飛ばしました。
(秋にみんカラの仕様が変更されるらしいのMyFAN登録ではなく積極的にみん友申請しないと切れていくのかな)
その方、しがじーずさん、赤パイさんとお友達だそうです。
みん友の輪は回りまわってますね。
今回、その方から「PICよりArduinoでの開発の方が楽」とのコメントを頂きまして少し勉強してみようかと。
基本的にどちらもマイコンなんですけどPICが少し商用寄りなのに対してArduinoはマイコン学習向けなのかな。
マイコン学習向けという概念を持っていたためこれまで敬遠してました。
NeoPixelの制御もArduinoを使ったサンプルは結構公開されています。
しかし、開発ボードと呼ばれるKITが3000円ぐらいで個々の製品毎にこのボードを組み込む必要があると思っていました。
マイコンと言うより小型のPCというイメージ。
大きい上に値段が高い!
車載の時、基本5cm四方ぐらいに回路を収めたいのでArduinoでは無理だと思っていたんですけど組込み用のArduino公板があるんですね。
まだネットでググったぐらいの調査ですけど、結構ヒットしました。
組込み用の基盤があるとなればArduinoを敬遠する理由もなく、至高の方からもメッセも頂きましたのでArduinoを始めてみようかと。
最終的に小型化で躓(つまづ)くかもしれませんけど、しばらくはArduinoに路線を変更します。
(しゃべる付加価値を付けた装置は放置延期)
ちなみにPICを勉強するには入門書が少ないです。
開発言語もCコンパイラも種類があるし、アセンブラは素人には無理だしね。
これがハードルを上げてる理由だと思うんですよ。
使用するチップ毎に機能が違うし、そのためデータシート(英語)も読まないといけない。
一方、Arduinoの本は種類が豊富。
開発ボードはリファレンス化されているので最初はUNO Rev3と呼ばれるボードでも買っておけば大概の入門書に書いてあることは試せるかと。
(PICは開発ボードは自分で用意しないといけないしね)
とりあず本屋を物色してきます。
ブログで少しぼやくと違う展開が待っている・・・
みんカラは偉大ですわ。
(あとがき)
amazonでArduinoの本を検索すると「~超入門」とか「~たのしい電子工作」とか小学生の自由研究の様なタイトルが多いです。
一方、PICで検索すると「~プログラミング」や「~ガイドブック」というような少し固い専門書のような感じになります。
これがハードルの高さを物語っているんでしょうね。
(飯食べながら追記)
飯食べながらググってました。
Arduinoの開発環境はヤバイかもしれません。
PICのような環境設定要らない?
(初期設定は必要なんですがライブラリ呼ぶだけ?)
そしてNeoPixelなんですが「FastLED」というライブラリにやりたい事が用意されていました。
もちろんLED TYPEに入手しやすいNeoPixel「WS2812B」も指定可能です。
このFastLEDというライブラリのリファレンスを見ました。
データを渡す構造体の中身が解りませんでしたが難しい制約は無さそう。
実際の挙動は個々のメンバ関数を使ってみないと判りませんが名前で大体予想できます。
光を流すぐらいなら10分もあればプログラムが書けそうです。
(ウィンカー点滅と同期させようとするともう少し工夫が要りますけどね)
プログラム自体はC++が解れば問題なさそうです。
(インスタンスを生成する概念が理解できていれば問題ないです。ライブラリを使うだけなので)
とりあえず試すだけなら「123D circuit」という仮想開発環境をダウンロードするといいでしょう。
パソコンの上でお試しで回路設計からプログラム開発、動作まで出来る模様です。
んー、Arduinoの開発環境(セットアップとかIDEなど)さえインストールできればNeoPixel制御は終わりかも。
ま、気になることはあるんですよ。
WS2810のデータシート見る限り、LED制御する個々のデータはシリアル通信の制御時間が決まっている筈なんですが、arduinoは誰が何処でやってるのか判りません。
変な割込み制御を追加した時、動くのかが不明。
ライブラリに色相、彩度、明度の関数が用意されているんですが、これ個別LEDで指定できるのかわかりません。
ナイトライダー発生装置のブログで語っていますけど、ナイトライダーは「残光」が残るように流れる光なのでLED個別に輝度が変化します。
輝度変化をLED毎に色で表現するとなると面倒ということです。
(あの自作の装置V3ですけど、個々のLEDブロックの輝度を制御するライブラリを自分で作っています)
無ければそう言うライブラリを作るだけですけど、例えば青色(0,0,255)の80%減光は何色? ってことですわ。
LED駆動が基本5Vというのも工夫が要りますしね。
(中華に12V駆動のテープLED売ってましたが)
いずれも触ってみれば解決しそうな感じなので小さな問題かもしれません。
思い過ごしかも知れませんが、飯食っている間だけでなんとなく掌握できるとすれば恐ろしいマイコン環境です。
この参入障壁の低さは食わず嫌いだったかも。
(さらに追記)
Arduinoの環境には、例えばBluetooth制御のライブラリも存在してますね。
Bluetoothモジュール(公板)に合わせてあるので買ってくっ付けてライブラリを呼んだらおしまい。
Bluetooth使ってスマホで色制御、パターン制御も全く問題ないです。
赤外線センサも同じようにライブラリがあるな。
人が近づいたらチカチカさせるのは難しくなさそう。
この手軽さ、ひょっとして近々始まる義務教育でのプログラミング学習で使われる?