H8マイコンを用いた自立型走行 ロボットの設計・製作Ⅰ C言語によるプログラム開発 矢萩・橋本研究室 工E12015 中嶋正和 http://www.aomori-u.ac.jp/staff/yahagi/lab/GR_2003/nakajima/ 発表手順 目的 H8マイコンとは? 設計・製作 プログラム開発 結果 目的 自立型走行ロボットを設計・製作する。 Z-80マイコンからH8マイコンにCPUを変え る。 H8マイコン用のC言語を用いてプログラムを 作成する。 H8マイコンとは? H8マイコンとは、日立製作所で製作された8 ビット/16ビットマイコンの総称。 機能としては、通信機能、16ビット高速 H8/300H CPUを内蔵、16ビット汎用レジスタ を16本、ROM 32キロバイト、RAM 2キロバ イト等がある。 H8マイコンにはたくさんのシリーズがあるが、 本研究ではH8/3664Fを用いた。 設計・製作 回路設計では、CAD(CR-5000)を用いる。 CR-5000は大きく分けてSystem DesignerとPWSからなっ ている。 System Designerでは、回路図とネットリストを作成する。 PWSでは、部品の登録、部品配置設計、配線設計を作成す る。 PWSで作成したデータをもとに、基板加工機でプリント基板 を作成する。 センサ回路の基板は両面基板と片面基板の両方で製作す る。 片面基板の場合ハンダ付けが困難であるので、センサのピ ン配置を変える。 センサ回路の回路図 センサ回路の部品配置 センサ回路(片面:表) センサ回路(片面:裏) センサ回路(両面) プログラム開発 LEDの点滅とモータを回すためのプログラム を作成する。 ポート5でコントロール回路のLEDの点滅を操 作する。 ポート1と7でモータを操作する。 ポート8でセンサの情報をやり取りする。 LEDの点滅プログラムのフローチャート START ポート5を出力に設定 無限ループ 点灯データをポート5へ出力 LOOP END LED点滅プログラム #include<3664.h> int main(void) { long i; IO.PCR5 = 0xff; while (1){ ;無限ループ IO.PDR5.BIT.B0=0; IO.PDR5.BIT.B1=0; IO.PDR5.BIT.B2=0; IO.PDR5.BIT.B3=0; IO.PDR5.BIT.B4=0; IO.PDR5.BIT.B5=0; IO.PDR5.BIT.B6=0; IO.PDR5.BIT.B7=0; for(i = 0;i<60000;i++); IO.PDR5.BIT.B0=1; IO.PDR5.BIT.B1=1; IO.PDR5.BIT.B2=1; IO.PDR5.BIT.B3=1; IO.PDR5.BIT.B4=1; IO.PDR5.BIT.B5=1; IO.PDR5.BIT.B6=1; IO.PDR5.BIT.B7=1; for(i = 0;i<60000;i++); } } ;ポート5を出力に設定 ;無駄ループによるタイマー ;無駄ループによるタイマー センサ入力プログラムのフローチャート START 無限ループ データ変数ddの宣言 センサデータの入力 ポート5を出力に設定 点灯データの出力 LOOP ポート8を入力に設定 END センサの入力プログラム #include<3664.h> int main(void) { long i; unsigned char dd; IO.PCR5 = 0xff; IO.PCR8 = 0x00; while(1){ dd = IO.PDR8.BYTE; IO.PDR5.BYTE = dd; } } ;センサデータ用変数 ;ポート5を出力に設定 ;ポート8を入力に設定 ;無限ループ ;センサデータ入力 ;点灯データ出力 モーター回転用プログラムフローチャート START 無限ループ ポート7を出力に設定 データの出力 LOOP ポート1を出力に設定 END モーター回転用プログラム #include<3664.h> int main(void) { long i; IO.PCR7 = 0xff; IO.PCR1 = 0xff; IO.PDR7. BIT.B6=1; while (1){ IO.PDR7. BIT.B4=1; IO.PDR1. BIT.B6=1; IO.PDR7. BIT.B4=0; IO.PDR1. BIT.B6=0; for(i=0;i<10000;i++); } } // // // // ポート7を出力に設定 ポート1を出力に設定 ポート7の6ビット目を1 無限ループ // 無駄ループによるタイマー 結果 基板は完成したが、ハンダ付けにはかなり苦 労した。 コントロール回路が正常に働いてるか確認す るためのプログラム、センサ回路のデータを コントロール回路に送り込むプログラムは、完 成させることが出来た。 モータを動作させる際に、トルクが弱かった。
© Copyright 2024 ExpyDoc