PowerPoint

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
無限ループ
// 無駄ループによるタイマー
結果
基板は完成したが、ハンダ付けにはかなり苦
労した。
コントロール回路が正常に働いてるか確認す
るためのプログラム、センサ回路のデータを
コントロール回路に送り込むプログラムは、完
成させることが出来た。
モータを動作させる際に、トルクが弱かった。