학습목표    1

학습주제    1

예습내용    1

실습방법    1

        1

로보트 제어

학습목표

5개의 DC모터를 사용하는 로보트 제어를 공부한다.

학습주제

5V 동작하는 5개의 모터를 모터 드라이버 보드를 제작하여 연결하고 이를 AVR 보드에서 제어하는 과정을 공부한다.

 

 

모터

번호

회전

방향

입력 (D포트)

출력

 

 

D7

D6

D5

D4

D3

D2

D1

D0

D포트

B포트

C포트

 

 

M0

0x01

0x11

0x00

 

 

0x81

0x12

0x00

 

 

M1

0x02

0x14

0x00

 

 

0x82

0x18

0x00

 

 

M2

0x04

0x50

0x00

 

 

0x84

0x90

0x00

 

 

M3

0x08

0x10

0x01

 

 

0x88

0x10

0x02

 

 

M4

0x10

0x10

0x04

 

 

0x90

0x10

0x08

 

 

예습내용

다음은  제작에 필요한 물품을 구매한 곳이다.

로보트 : MOVIT Robot Arm MR-999 구매처:http://www.elekit.co.kr/

모터드라이버 : BA6209(ROHM) 구매처: www.microrobot.co.kr

 

아래는 PC에서 모터 5(M0~M4) 까지를 제어 하는 프로그램이다. 모터를 2개이상 동시에 구동하면 BA6209 열이 많이 발생해 모터는 1개씩 동작 하도록 프로그램을 만든다.

표에와 같이 D포트의 입력으로 모터를 회전 시킨다.

 

실습방법

   

보드제작

로보트팔에는 5개의 모터가 동작한다. 그러므로 모터드라이버(BA6209) 5 사용된다. 그림에서 첫번째 모터

PB4 Enable 포트 이므로 동작하는 동안을 5V 입력해야 한다.

다음은 위보다 않은 파워가 강한 “L296N” 모터 드라이버로 만든 회로도 이다.

 

AVR 프로그램

 

보기1 AVR 프로그램  [AVR프로그램 내려받기]

 

 

// =========프로그램 생략

while (1)

      {

      // Place your code here 

      in=~PIND;

      

      switch(in) {

      // 모터1

      case 0x01:

          PORTB=0x11;

          PORTC=0x00;

          break; 

      case 0x81:

          PORTB=0x12;

          PORTC=0x00;

          break;

         

      // 모터2    

      case 0x02:

          PORTB=0x14;

          PORTC=0x00;

          break; 

      case 0x82:

          PORTB=0x18;

          PORTC=0x00;

          break;

         

      // 모터3    

      case 0x04:

          PORTB=0x50;

          PORTC=0x00;

          break; 

      case 0x84:

          PORTB=0x90;

          PORTC=0x00;

          break;

         

      // 모터4

      case 0x10:

          PORTB=0x10;

          PORTC=0x01;

          break; 

      case 0x90:

          PORTB=0x10;

          PORTC=0x02;

          break;

         

      // 모터5

      case 0x20:

          PORTB=0x10;

          PORTC=0x04;

          break; 

      case 0xa0:

          PORTB=0x10;

          PORTC=0x08;

          break;

              

      default:

          PORTB=0x00;

          PORTC=0x00;

          break;

         

      }

 

      };

 

 

처음

   

“Time delay” 사용하여 로보트 팔의 동작을 만들어 보시오.