내장형 하드웨어/C언어

실수형 저장 과정(IEEE754) 확인, 제로확장, 부호확장, 마인드스톰(Sound sensor, Touch sensor, ultrasonic sensor)

동화다아아 2011. 3. 29. 14:53
 

실수

1. 4byte 저장방식 확인

2. 45000.67을 IEEE754 표준 형식으로 표현

15.375를 IEEE754 표준 형식으로 표현.

⇒15.375 ⇒ float ⇒ 4175b645 ⇒ int ⇒ 1098233413

(참고자료에 업로드 - http://donghwada.tistory.com/43)


#include<stdio.h>

int main()

{

        printf("The size of float is %3d byte.\n", sizeof(float));

        printf("The size of double is %3d byte.\n", sizeof(double));

        printf("The size of long double is %3d byte.\n", sizeof(long double));


        return 0;

}

⇒ 실행결과


#include <stdio.h>

int main()

{

        unsigned int a=-1;

        unsigned char b=-1;

        char c=-1;     

        printf("%d\n",a);

        printf("%u\n",a);

        printf("%d\n",b);

        printf("%u\n",b);

        printf("%d\n",c);

        printf("%u\n",c);

        return 0;

}

 

 unsigned int a에서는 %d는 그대로 -1을 출력하며, %u는 unsigned int 이므로 양수로 출력해 4294967295를 나타낸다.

unsigned char b에서는 1byte가 4byte로 확장되었고 앞쪽의 빈공간은 0으로 채워졌으며 이것을 제로확장이라 한다.

char c에서는 1byte가 4byte로 확장되며 부호비트가 존재하기 때문에 그 부호를 따라 앞쪽의 빈 공간에 1 혹은 0이 채워지게 되는데 이것을 부호 확장이라고 한다.

(참고 자료 - http://donghwada.tistory.com/42)


프로그램에서는 int와 unsigned로 된 변수가 연산이 빠른데 둘 다 최소한의 변환과정을 거치므로 다른 변수들에 비해 연산이 빠를 수밖에 없다.



Mindstorms 실습

Anmial ⇒ spike ⇒ Tail ⇒ 조립(Building) ⇒ NXT programming

Anmial ⇒ spike ⇒ Sound Sensor ⇒ 조립(Building) ⇒ NXT programming

Anmial ⇒ spike ⇒ Reactions ⇒ 조립(Building) ⇒ NXT programming




Reactions Programming


구동영상

 

꼬리 터치 센서 동작(전진 하다 꼬리의 터치센서가 눌러지면 후진)
 

구동과정

 1) 다리 쪽 모터가 동작해 앞으로 전진 한다.

 2) 일정한 시간만큼 전진한 후 꼬리 쪽 모터가 동작하여 앞으로 뻗어진다.

 3) 터치센서가 반응하면 로봇은 뒤로 후진한다.

 4) 터치센서가 반응하지 않으면 로봇은 동작을 멈춘다.

 5) 고리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해

 6) 위의 동작을 다시 반복하게 된다.



사운드 센서에 반응해서 동작

 

구동과정

 1) 사운드 센서가 소리를 인식하면 다리 쪽 모터가 동작해 앞으로 전진 한다.

 2) 일정한 시간만큼 전진한 후 꼬리 쪽 모터가 동작하여 앞으로 뻗어진다.

 3) 터치센서가 반응하면 로봇은 뒤로 후진한다.

 4) 터치센서가 반응하지 않으면 로봇은 동작을 멈춘다.

 5) 고리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해

 6) 위의 동작을 다시 반복하게 된다.



전진하다 초음파 센서가 감지되면 후진 초음파 센서가 매우 가까운 거리로 인식하면 고리의 터치 센서가 뻗어나온다.



 구동과정


- 초음파 센서의 거리를 30으로 설정해 두었다.

 1) 30의 거리 내에 장애물이 없으면 계속해서 전진한다.

 2) 거리 내에 장애물이 인식되면 뒤로 후진한다.

 3) 초음파 센서에 거리가 6보다 가까워지면

 4) 꼬리 쪽 모터가 움직이며 앞으로 뻗어 나온다.

 5) 꼬리 쪽 터치 센서가 인식되면 다시 처음의 초음파 센서로 이동해

 6) 위의 동작을 다시 반복하게 된다.