書籍「動かして学ぶCAN通信」では、第10章にArduino関係の記事を掲載していますが、第9章のCANネットワークに接続するArduino版ノード#5に関しては詳細を説明していませんでしたので、補足や修正なども含めてここで説明します。
ファイルはサポートページよりダウンロードできます。この中には、Arduino版のCANブリッジ、CANバス・モニタなどの新作も含まれていますが、内容に関しては順次説明する予定です。
書籍のフォロー記事ということで、書籍内で説明しているCANコントローラの説明やドライバ関数などの説明は省略していますので、書籍と一緒にお読みください。
今回はサーボやPWM制御を行うArduinoノード(ノード#5)について説明します。
続きを読む "書籍「動かして学ぶCAN通信」補足
Arduino版CANノードのプログラム(1)" »
前回に引き続き、Arduinoノードのスケッチのプログラムを説明します。前回は初期化まで説明が終わっていますので、今回はメインとなる処理や関数を説明します。
続きを読む "書籍「動かして学ぶCAN通信」補足
Arduino版CANノードのプログラム(2)" »
今回は、実際にサーボやDCモータを使った扇風機の模型をつなげて動かしてみます。
|
左図は第9章で作成したWindowsアプリケーションのスクリーン・ショットです。Arduinoノードに関係があるのは、赤枠で囲んである3本のスライダだけです。
これら三つのスライダで、サーボ2軸と、PWM値(DCモータの回転速度)をコントロールできます。
このアプリケーションは、VisualC#で作成しています。実行ファイルを含むプロジェクト・フォルダ一式は本書のサポート・ページにアップしてあります。再ビルドには、マイクロソフト社が無償提供しているVisualStudio2008 ExpressのC#が必要です。
なお、上の黒いテキスト・ボックスに、温度が表示されていますが、これはArduino以外の別のノードが出力したものですので、今回のArduinoノードには関係ありません。
|
続きを読む "書籍「動かして学ぶCAN通信」補足
Arduino版CANノードのプログラム(3)" »
Arduinoには便利なライブラリが用意されていますが、今回は、筆者が製作した基板専用の自作ライブラリなどを紹介します。タイマやチャタリング・キャンセル付きのスイッチ入力など、そのまま、または若干の手直しで汎用的に使えるものも紹介しますので、通常のArduinoユーザにも役に立つと思います。
続きを読む "書籍「動かして学ぶCAN通信」番外編
Arduino用自作ライブラリの作成(1)" »
今回はインターバル・タイマのオブジェクト"wCtcTimer2A"について説明します。このオブジェクトは汎用ですので、#258基板を使っていない場合でも利用可能です。
続きを読む "書籍「動かして学ぶCAN通信」番外編
Arduino用自作ライブラリの作成(2)" »
今回は、タイマ・オブジェクト"wCtcTimer2A"のコードについて説明します。
ライブラリ内の個々のオブジェクトは、前述のように、オブジェクトごとのフォルダの中に、クラス定義のヘッダ・ファイル(*.h)とクラスのプログラム本体(*.cpp)の二つが必要です。
続きを読む "書籍「動かして学ぶCAN通信」番外編
Arduino用自作ライブラリの作成(3)" »
今回は、#258基板専用のドライバとなるオブジェクトを説明します。
ここで紹介するのは、二つのスイッチ入力と8個のLEDの制御ドライバです。#258基板専用なので、入出力ポート番号は基板に合わせて固定してありますが、この部分を修正すれば汎用になります。
続きを読む "書籍「動かして学ぶCAN通信」番外編
Arduino用自作ライブラリの作成(4)" »
これまで、CAN制御には、SPI制御のMCP2515をよく使っていたのですが、実装のスペースや手間を考えると、CAN内蔵のPICを使うのがよさそうなので、試用してみました。今までMCP2515を使っていたので、わりと簡単に動かせるようになりました。
実用の目処が付きましたので、忘れないうちにまとめるという意味でも、ブログに掲載しておきます。
今回は手持ちの関係でPIC18F4580を使用していますが、レガシィ・モードを使っているので、CAN内蔵の18Fシリーズだとすべてに対応できると思います。
ちなみに、最近RX62NでCAN制御することができましたので、その弾みで、ということもあります。そちらは、インターフェース誌の2011年6月号に掲載予定ですので、興味がある方はごらんください。
下記写真は実験に使う基板ですが、ブレッドボードでも簡単に作れます。
続きを読む "番外編 PIC18F4580のCAN制御 その1
概要" »
今回はCANコントローラの機能をざっと説明して、プログラムの手順などを示します。書籍関連記事ということで、一部重複しているものもありますが、説明を省略していることもありますので、書籍も一緒にごらんください。
続きを読む "番外編 PIC18F4580のCAN制御 その2
CANコントローラの機能" »
今回は、前回一覧で示したドライバ関数の機能を個別に説明して、使用例を実際のプログラムに近い形で示します。
また、内容の解説は次回からですが、とりあえず、実験1で使用したWIZ-Cのプロジェクトフォルダ一式もアップしておきます。
続きを読む "番外編 PIC18F4580のCAN制御 その3
ドライバ関数の使用法" »
今回は評価、実験の内容と開発環境などについて説明します。回路や使用部品についても簡単に触れます。
続きを読む "番外編 PIC18F4580のCAN制御 その4
評価、実験の説明" »
今回は実験1のプログラム・コードについて少し詳しく説明します。
それから、相手となるCAN-LCDボードのプログラムもアップしておきます。
続きを読む "番外編 PIC18F4580のCAN制御 その5
実験1のプログラムの説明" »
今回は、CANドライバ関数のソースについて説明します(一部省略)。これから説明する部分は実験1、2共通です。
続きを読む "番外編 PIC18F4580のCAN制御 その6
CAN制御ドライバ ・プログラムの説明" »
今回は実験2のプログラムについて説明します。
実験2のプログラムは、実験1のプログラムにCAN受信処理とカウンタ値をCAN送信する処理を追加したものです。
実験1から変更になっている部分を説明します。なお、ドライバ関数は実験1とまったく同じものですので、説明は省略します。
続きを読む "番外編 PIC18F4580のCAN制御 その7
実験2のプログラムの説明" »
これまで説明してきた、CANドライバ、実験プログラムをCCS-Cに移植しましたのでアップします。今回アップしたのは、実験2のほうだけですが、実験2のプログラムは実験1の機能を含んでいます。
続きを読む "番外編 PIC18F4580のCAN制御 その8
CCS-C版プログラム" »