FC2ブログ
2019-01-10 11:53 | カテゴリ:1/8モデル
足掛け、半時余りで、やっと完成しました。
途中。ライントレーサーで横道にそれていましたが、課題のクルクル回転赤色灯や、じわっと点滅ウインカーなども、なんとか予定して様に動作して、ほっとしています。

しかし、最終段階でちょっとはまりました。
ご参考までに白状します(笑)

mp3Playerの制御です。

(1)アナログスイッチピンの怪

今回は、1曲(サウンド)のみの再生なので、アナログスイッチピンに33KΩを半田して、それをPICのポートで制御(Lレベルにする)するつもりでした。
しかし、何度テストしてもmp3Playerが反応しません。手動でGNDに接続するとちゃんと動作します。
原因は、簡単でした。mp3Playerのアナログポートだからです。
ここをLレベルに落としても当然ですが、GNDにつないだことにはなりません。
仕方がないので、TXポートからシリアルコマンドを送信する事で対応しました。

(2)シリアルコマンドの怪

ネットで調べたマニュアルに従って、再生や、停止、リセット、などのコマンドを確認しました。
これらのコマンドは、8バイトのブロック(開始コマンド、終了コマンドなどいろいろなデータとともに)で送信します。
また2バイトのチェックサムを加えた10バイトの仕様もあります。
その場合は、既定の計算式で求めたチェックサムを2バイト加えるのですが、この計算式通りに計算しても、例題のチェックサムに合いません。

いろいろネットで調べましたが、Int形式の計算とその16進表記の問題のようで、結論は、

マニュアルの計算式
Checksum (2 bytes) = 0xFFFF - (CMD + Feedback + Para_MSB + Para_LSB) + 1



Win10の電卓をHEXモードにして、以下の計算方法で求める。

0 - 6 - cmd - P1 - P2 - 0xFF

の下4桁をとりチェックサムにする、でした。




さてさて、前置きが長くなりました。
これから新年の街にパトロールに出かける雄姿をご笑覧ください。

HDF01.jpg



HDF04.jpg







そして、動画です。







やっと完成しましたので、次は何をするか??
じっくり検討します。

2019-01-04 23:42 | カテゴリ:1/8モデル
電飾点滅ソフトの調整を行いました。


ソフトPWMの点滅(じわっとON、じわっとOFF)を行っているつもりですが、単純な動作ならOKなのですが、点滅をさせたり、消灯させたりするうちに、動作が怪しくなっています。
その徐々に怪しくなる原因を探っていました。


どうやら、点滅動作をONにしたりOFFにしたりする処理がうまくないようです。
ソフトPWMで処理していますので、連続点滅ならよいのですが、途中でOFFした場合、各種のカウンター(ソフトPWMのDUTYやカウント回数の途中経過)をちゃんとリセットしてやらないと、点滅を再開した場合に異常になることがわかりました。

(HD1501)
HD1501.jpg


int LED_Para[22][12] = 0;


//--------- 変数に定数セット LED点滅制御用データ設定-----------
// 以下、配列アクセスを変数で分かりやすく定義する
#define Ptrn 0
#define Port 1
#define Freq 2
#define LED_ON_sts 3
#define LED_TGT 4
#define LED_DTY 5
#define DTY_cnt 6
#define Status 7
#define Syc_cnt 8
#define Syc_SPD 9
#define DTY_max 10
#define OnOff_counter 11





そこで、下記のように点滅を停止した場合に、その辺のカウンターなどをちゃんとリセットしてやる様に修正したところ、うまくいくようになりました。


//*********************** ポートの出力を変化させる関数 *************************

//--------------------------------------------------------------------
// 指定ポート出力の反転(配列の最大数を超えない様に)
// // port_noが0-10でコールされなければERROR(それ以外はサーボ処理の為)
//-------------------------------------------------------------------

void Status_Reset(int LED) {
LED_Para[LED][Ptrn] = 15;
//LED_Para[LED][Port] = 0;
//LED_Para[LED][Freq] = 0;
LED_Para[LED][LED_ON_sts] = 0;
LED_Para[LED][LED_TGT] = 0;
//LED_Para[LED][LED_DTY] = 0;
LED_Para[LED][DTY_cnt] = 0;
LED_Para[LED][Status] = 0;
//LED_Para[LED][Syc_cnt] = 0;
//LED_Para[LED][Syc_SPD] = 0;
//LED_Para[LED][DTY_max] = 0;
LED_Para[LED][OnOff_counter] = 0;
LED_off(LED);
}


ここだけご覧になってもわけがわからないと思いますが、自分のメモとして書いておきます。(笑)


(HD1502)
点滅の時間間隔を実際のデモ画面に合わせていますので、動作が緩慢な点はご容赦ください。





再度ブレッドボードテストです。
LEDの意味は前回と同じです。
左の6個の赤色LEDは、パトライト。
右の最上部の2個の緑LEDは、それぞれ、ヘッドライト、テールライト。
その右下の赤色LEDは、赤色スポットライト。更にその下の4個の緑LEDは、前後左右のウインカーです。
ちゃんとウインクしています。



続きは、、、、
2018-12-30 22:28 | カテゴリ:1/8モデル
年末に、大掃除をしながら、ちょっとソフトの調整をしました。

HD1401.jpg

ブレッドボードに、パトライトやウインカーの代用のLEDをセットして、点滅のソフトテストを行っています。

左の6個の赤色LEDは、パトライト。
右の最上部の2個の緑LEDは、それぞれ、ヘッドライト、テールライト。
その右下の赤色LEDは、赤色スポットライト。更にその下の4個の緑LEDは、前後左右のウインカーです。

今回使用する予定のLEDマネージャは、単純なLEDの点滅(オン・オフ)を制御するのではなく、じわっとON、じわっとOFFとなる様に、ソフトで疑似PWMをそれぞれのLEDに対して行って、輝度変化をつけています。
動画を撮ってみました。




起動直後は、なんとなくうまく動作しているようですが、だんだん怪しくなってきます。
動作もどこか不安定で、遅くなってきているようです。

どうやら、今年中にできそうもありません。

てなわけで、みなさん、今年もお世話になりました。

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

2018-12-25 09:56 | カテゴリ:1/8モデル
電飾パーツが出来上がってきました。
前部のウインカーと赤色スポットライトを取り付けました。



(HD1301)
HD1301.jpg







続いて、パトライトのLEDセットを組み入れます。

続きは、、、、
2018-12-20 15:14 | カテゴリ:1/8モデル


一か月ほど空いてしまいましたが、ハーレーに戻ってきました。

結構出来上がって入るのですが、まだまだです。
電飾関係のLEDの組み込みを進めます。

後部の電飾とヘッドライト、パトライトは完了していますので、前部の電飾です。
まずはフロントのウインカー。


(HD1200)
HD1200.jpg









続きは、、、、