2011年3月25日金曜日

ジェットボイルGCS

を、買いました。

以前から購入を考えていたのですが、

震災の影響か、何処も売り切れ続出でしたYO。

で、やっとハケ~ン。


ジャ~ン

こんな感じ。



ガスカンにスタビを付けて




バーナー本体とゴトクを装着



お鍋の裏はヒダヒダ(イヤン



こんな感じで煮炊きをしてもらいましょう

まだ使ってませんのでどんなもんか分かりません。

ジェットボイルPCSは非常にすばやくお湯が沸きましたので、こいつも期待です。



しかし、震災の為か、キャンプ用コンロやストーブが売り切れ続出。

日ごろ準備をしていない人がいまさら準備を始めても遅いって。

どうせ使わなくなって捨てたりするだけなのに。

本当に必要な人が手に入れられないこの状況。

もう少し皆さん考えてみてもいいんじゃないッスかねぇ。

黄色い粉

昨日、黄色い粉で東京がちょっと騒ぎになりましたね。

放射性物質だのなんなのだと。

例に漏れず、ワタクシの会社にもたらふくありました。

ドーン

点々としています。

アップです。



ウーン

アレなんじゃない?って事で通報はしませんでした(笑)。

暇なお父さんが顕微鏡で観察していましたYO。

20μmくらいのまん丸いビーズみたいな感じでした。

結局、杉花粉だそうで。

みんな騒ぎすぎ・・・

2011年3月18日金曜日

非常食


震災に伴い、有事に備えて関東のはずれのとある会社でも非常食が配られましたYO。

ドーンと1ダース×3箱



開けてみるとこんな感じ



1人で3日はいけそうですね

いや~、気が利く会社ですね~。

って、え?

使わなかったら後で返せって?

ハァ?

セコい会社ですYO。ハイ。

2011年2月11日金曜日

PICでCAN通信(その3)

通信を行おうとすると、当然通信相手が必要となります。

CAN通信を行うにしたがい、通信相手が更に欲しくなります。

しかし、現在のブレットボードでは限界を感じずにはおれません。

従って、新しいノードをユニバーサル基盤に作りましたYO。

基本は前回作ったノード1とほぼ同じものを移植です。

ほぼとは、リセット回路を若干いじってみました。

こんな感じの構成となりました。


左からノード2、ノード1、ノード3



これが新規のノード3

オシレータを水晶振動子にしています。

また、リセット回路を教科書通りにしました。



プログラムについては、ノード1,3は同じものをインスコ。

ただ、データを送るのみ。

今回は標準IDを指定し、指定したIDのノードがレスポンスします。

ノード2はフィルタにてIDを設定。

自分宛に来たデータを受け取り、LCDに表示。

また、データが奇数の場合はLEDを点灯するようにプログラム。

モーターは五月蝿いのと、ノイズ対策が不十分なのでやめました。



で、動作を確認すると・・・

動きません。

試行錯誤して分かったのは、リセット時間の違いのようです。

PICとMCP2515には同じ容量のコンデンサと抵抗を使用していましたが、

ばらつきによりPICが先に起動してしまいMCP2515に命令が送れていなかった模様。

コンデンサの容量をPICが大きくなるように変更しとりあえず動作しました。

しかし、まだ問題がアリアリ。

新規のノード3のリセットが働きません。

電圧がリセット電圧まで下がらず、リセットが効かない模様。

これまた試行錯誤の末、使用していた抵抗10kΩ、30kΩを、

1kΩ、30kΩに変更して解決。

つまり、MCLR側を1/10にしただけ。

教科書通りだとリセットできませんでした。



今回の教訓

・PICよりも先にCANコントローラを起動させるべし。

・リセット回路の抵抗はMCLR側を1kΩ、Vpp側を30kΩ程度にするべし。



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通信をするまでにはまだ道のりは遠そうです。