2011年1月31日月曜日

例の計画

以前からの計画がようやく前進しましたYO。

まだ、先は長いっすけど。

久々にワクドキしてますYO、ハイ。


2011年1月23日日曜日

PICでCAN通信(その2)

とりあえず、動作するようになったCAN。

YES WE CAN!!

と、簡単にはいきませんYO、ハイ。

まず、前回適当に組んだプログラムを修正するところからです。

レジスタアドレスやインストラクションコードの定義や、

SPI用サブルーチンを作成。

その後、動作確認です。

今回はこんな感じで動作確認回路を組みました。



こんな感じです

でっかいブレットボードの右側がノード1、左がノード2とします。

ちなみに、CANのモジュールはノードと呼ぶらしいです。

ノード1はCAN関係以外はタクトスイッチ1つだけ。

ノード2はLCDとモーターをつないでみましたYO。



プログラムした動作ですが、ノード1の黒いタクトスイッチを押すと、

スイッチを押した積算回数がノード2に送信されます。

チャタリング防止で1secのインターバルを設定したので連打は出来ません(笑)。

ノード2は受信した値をLCDに表示し、

RXB0D0が奇数だったらモーターを動かすようになってます。

ではぢゅは、動作をみてみましょぃ。



とりあえず、動作しています。



今回発覚した問題は次の通り。

・ノード2が受信した拡張IDの数値が意味不明。

これは標準IDで通信を行っているからだと思われますが、

逆に拡張IDで通信をする方法が分からなかったりしますね。


・PICを使ったCAN関連ホームページが少ない。

前回も述べましたが、情報が少ないです。

素人はなかなか手を出しにくいです。

素人にも優しい解説を切に望みます(笑)

2011年1月22日土曜日

PICでCAN通信

自動車の車内通信でポピュラーなCAN通信をやってみたく、色々トライ中。

CANコントローラにはMCP2515、

CANトランシーバには、MCP2551

というデバイスがあることが分かり、とりあえず購入。

MCUはPIC16F886を使用。

参考書はCQ出版 「動かして学ぶCAN通信」(¥2600税別)。





とりあえず、書籍どおり回路を組んでみる。
CANコントローラとPICの通信(CANの前にもう1つ通信がある!)は、

「SPI」という通信方式で行うそうで。

PIC16F886に標準でこの機能があるのでそれを利用しようと計画。

しかし、ここからが泥沼の日々。

書籍で使用しているプログラム言語はC言語。

ワタクシはアセンブラを使用。

うーん。時代はC言語が主流なんですかねぇ。



とりあえず、MCP2515のRX0BFピンを出力にして、LEDをピッカリさせてみようと、


四苦八苦しながらプログラムを書いてみました。
 
しかし、反応無し。

ネットで検索しても、参考になる情報が見つからない。

試行錯誤の末、SPIの設定がよろしくない事が判明。

MCP2515はSPIモード0,0か1,1に対応との事で、

PICのSSPCONレジスタのCKPを0、SSPSTAレジスタのCKEを0にしていたのですが、

CKP,CKE共に1すると動作しました。理由はよく分かりません。

タイミングチャートを見ても理解不能だし、

SPIのモードってのもよく分からないし、

とりあえず動くので放置です。

気を良くしてLEDを0.5秒間隔でピカピカさせてみましたYO。




次に、MCP2515のレジスタの内容を読んでみようと試みましたが、

またもやうまく動作しません。

自分で書き込んだレジスタの状態を読んだのですが違う値が出ます。

他のレジスタを読んでも、8ビット目が必ず1になり、

その他が左に1ビットシフトしているような感じになっていました。

試行錯誤の末、SSPSTAレジスタのSMPを1にすると改善されましたYO。

MCP2515のデータは半クロック分遅れて送信されているようで、

出力データの後縁で読むとうまく動作しました。



結論
・PICのSPIモードはCKP,CKE=1,1にする
・SMP=1とする

これでとりあえずCANコントローラとの通信は可能になりましたYO。

しかし、PICを使ってCAN通信をする人は少ないのか、

参考になるページや書籍が少ないですねぇ。

CAN通信をするまでにはまだ道のりは遠そうです。

2010年12月30日木曜日

PICKIT3を買いました

今までPICマイコンにプログラムを書き込むには、

チップを抜いてプログラムライターに装着し、

プログラムライター専用ソフトで書き込んでいました。

しかし、今後そんな手間はナッシングゥ!



ジャ~ン

PICKIT3。

あの赤いヤツです(パンダDEATH)。



大きさ比較

ちっさ!

んで、基盤に乗ったままプログラムが書けるって理屈ナ訳です。



こんな感じ

今のところ使い方がよく分かりませんが、今後使い込んでいきますYO。

こんなものありました18

MTBのホイルを組んでいる最中にハケーン。


ニップルです

それがどうしたって?


ホラホラ

まだ分からない?


穴が無いんだよ、穴が

四角くなってないし。

久々のエラー品でした。

NOVATECリアハブのオーバーホール

久々にMTBパーツの分解ネタでも逝ってみようかと(グフ

本日の犠牲者は「NOVATEC 3in1」リアハブ。

この手のハブの分解は以前にも行っているので、ご参照あれ。

(前回はフロントでした)

ではレッツドン。

こんな感じでアセンブル状態

とりあえず、ハブの分解から逝ってみよう(オゥ


左のこの部分を17mmの薄口スパナで固定

ハブコーン廉恥レンチでいけるでしょう。


反対側は普通の17mmスパナでOK


フリーがズッポリ抜けて、ベアリングちゃんこんにちは



反対側も丸見え(イヤン



以前にも出てきた、この工具を・・・


ハブのベアリングに装着し



ベアリングズッポヌキ



こんな状態になります



内側のベアリングが錆びてましたYO



センターのカラーが泥と油で汚れていますた

進入した汚れがセンター側によって、センターベアリングが錆びたと推測。



各部の洗浄を行います



ハイ、ピカピカ



思ったほどゴミは出ませんでしたYO

そして組み付けです。


交換する新品ベアリング

NTNです。

日本製です(たぶん)。



こんな工具を



こんな感じで



プレスしたりしますYO

フリーはこんな感じで出来ますが、ハブシェル側はリムとスポークがあるので、

この工具だけでは圧入出来ません。


こんなものを使ってみようかと、四苦八苦しますが、



結局こうダァ~!

そして、同じ手順でベアリングの圧入をし、

逆手順で組み付けて、


ハイ、完成

この後、ホイル組にはいりますYO。



スポークを通して



振れ取りして完成。



結論として、ホイルのメンテは、ベアリングを抜いたり、

圧入したりする専用工具が無いと

話にならない事がわかりましたと言う、理屈ナ訳です、ハイ。


2010年12月19日日曜日