PICでもっと遊ぶその4「外部メモリを使ってサーボを複雑に動かす」夏でも楽しい工作教室(2/2 ページ)

» 2005年08月02日 14時00分 公開
[小林哲雄,ITmedia]
前のページへ 1|2       

i2c_routine.incの変更点

 他人のプログラムなので、ここでは変更点だけを記載する。62行めと63行めは、GPIO4とGPIO5をサーボコントールに使っているので出力設定にする。

 SDA_OUT equ b'11001100' ; TRIS value for SDA as an output
 SDA_IN equ b'11001101' ; TRIS value for SDA as an input

 また71行めからのマクロ定義は100kHz用のものなので、「goto $+1」「nop」をすべてコメントアウトするとよいだろう。「goto $+1」は次の命令にジャンプするので1命令で2ステップと命令数を減らしたウェイトを狙っている。

 読み出し用メモリが増えたのでデータフォーマットも少々拡張しておこう。128バイトではサーボを1つ動かすので手がいっぱいだが、外部メモリを使うことでステップ数は大幅に増える。そこで2チャネルに拡張した。2バイトを基本として、まず冒頭に各チャネルのスタートアドレスを記載する。初期化ルーチンは冒頭を読んでエリアセットを行い、またシーケンスデータが「00:00」のペアは終了コードで冒頭に戻す。

 メインプログラム側はシーケンス動作拡張にあわせたメインルーチンの拡張と外部シリアルROMの読み出しルーチンだ。これは先のAN982のサンプルプログラム「ByteRead.asm」と「SecRead.asm」を参考にして組み込む。

 このサンプルプログラムは読み出すだけで何もしていないが、これでは意味がないので読み出し後ワークレジスタに書き込むのと、今回のシーケンスデータは偶数アドレスから2バイト読むという前提で、2バイト読み出しルーチンを作った(奇数アドレスから読み出すと異常動作するバグがあるが、これは「奇数アドレスにしないこと!」という条件で逃げる。もしも余力があれば、奇数アドレスで問題が起きる原因とその解決策を考えてみるとよいだろう)。今回で一応プログラムは終了なので、次回の記事でソースコードを掲載して、プログラムの全体解説をおこなう。

 先ほど述べたように、EEPROMへのデータ書き込みはIC-PROGでも秋月電子のPICライターでもできる。秋月電子のライターを使う場合は書き込みソフトを秋月電子のwebサイトからダウンロードすればよい。

 5月23日に新しいβ版ファームウェアとライティングソフトも登場している。EEPROMデータ作成にはHEXデータが必要だが、これは適当なツールを物色すればよい。今回はMarioさんが作成したHEXファイルツールを使用した。

秋月のPICライターはプログラムを変えるとシリアルEEPROMライターになる

 シミュレータを回していても実感がわかないのでブレッドボードに配線して試してみた、……が動かない。これはおかしいとシミュレータとI2Cの規格を見直すと、I2Cバスはオープンコレクタで外部にブルアップ抵抗を用意する。AN982のソースはオープンコレクタ出力(Lかハイインピーダンス)にするためにPICのI/OピンをLの出力か入力の切替としているためだ。正常動作のためには外部にプルアップ抵抗が必要となる。2kオーム程度の抵抗を回路に加えると動き出した。

外部EEPROMを付け、RCサーボも2つ制御しても十分な動作が行える

 シリアルROMをつけたことで、5つある出力ピンのうち2つが使われた。今回のプログラムは2つのサーボをコントールしているが、必要ならばあと1つ増やす余裕はある。3つあれば私の野望「デジカメのオートコントール」も達成できそうだし、それでもダメなら今回のプログラムをI/Oピンの多いPICで使えばよい。

 今回のプログラムは割り込み、拡張割り込み、内部A-D変換、内部EEPROM、I2C制御と要素が非常に多くなった。確実に動作するルーチンを組み合わせるだけでも難しいところがあったが、確実にプログラムを組むことによって、また必要に応じて「達人のプログラム」を使うことによって実現できる。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2026年08月15日 更新
  1. 「Pixel Watch 5」が8月20日に発売へ 前モデルから最大20%の高速化、価格は6万2800円から (2026年08月13日)
  2. 映画もゲームもPC画面も大迫力で楽しめる! Google TV搭載のRGBレーザー方式4Kプロジェクター「AWOL Valerion Pro 2」を試す (2026年08月14日)
  3. 劇的大進化した「Insta360 X6」 8K/50fpsや大型センサー、内蔵ストレージ搭載、X5から買い替える価値はある? (2026年08月14日)
  4. タッチパッドを手前に引き出して使える「Ewin ワイヤレス折りたたみキーボード」がセールで24%オフの5319円に (2026年08月12日)
  5. シャープのヘルスケア特化スマートウォッチ「からだメイト Watch」を試す 装着するだけでカロリー&水分補給を自動記録 (2026年08月10日)
  6. Googleの折りたたみスマホ「Pixel 11 Pro Fold」は何が変わった!? 最大14万7600円お得になるキャンペーンも (2026年08月12日)
  7. 3K非光沢OLEDが秀逸! 最新Ryzen AI搭載の14型モバイル「EliteBook X G2a 14 AI PC」を試す (2026年08月13日)
  8. GMKtec、7.2cm四方のカラフルな超小型ミニPC「G5S」を発売 あえて少し古いCPUを採用して価格を抑制 「桜ピンク」も後日追加 (2026年08月14日)
  9. ノートPCやミニPCにGPUを外付けできる! OCuLinkとUSB4 V2(Thunderbolt 5)両対応のeGPUドック「MINISFORUM DEG2」が22%オフの3万5994円に (2026年08月12日)
  10. 「文系か理系か」で悩まなくていい――NVIDIAが女子中高生に伝えたAI時代のキャリアと英語の重要性 (2026年08月13日)
最新トピックスPR

過去記事カレンダー