Arduino2014. 8. 10. 10:33


목표의식

시간

비용 지불 의사 ; 보통 차비



목표: ARDU-X 100 인터페이스와 결합한 차량 운전 



토글 버튼 용도와 IR센서 용도


 

 IR센서: 엑셀레이터

 

 왼:좌회전

 

 우:우회전

 

하: 느린 후진 

 


색상 센서 R: 장애물 변화

색상 센서 G: 수플 토글

색상 센서 B: 하늘 변화



  1. Plane 오브젝트를 화면에 배치하고 reset
    1. 크기 조절
  2. Directional Light1를 배치. 각도를 조절해서 그림자 생성을 유도
  3. Directional Light2를 배치. 각도를 조절해서 반사광을 유도했으나 1~3 단계를 30분여 왔다갔다 하면 보류.
  4. 큐브 오브젝트로 벽 세개 북, 동, 서 를 만들었다.
    1. Plane 오브젝트 각 모서리에 배수를 적용해서 크기를 조절하고 위치 잡으려 시도.
      1. Plane에 적용된 크기 값과 큐브에 적용된 위치, 크기 값은 기본 단위가 다르다. 보류.
    2. 각 벽에 텍스쳐를 입힘.
  5. 스크립트를 작성해서 큐브를 이동.
    1. PlayController.cs를 추가해 큐브 이동가능.
  6. 전체적으로 오브젝트가 이동해 있음.
    1. 방향키를 잘 못 눌른 결과인지 유니티 버그인지 알 수 없음.


Posted by 코드버무려
Arduino2014. 8. 8. 17:24

//아래 두 코드는 원하는 결과가 나오지 않는다.

// 엣지 풀? 업 , 엣지 풀?다운 을 생각해 코딩한다.


boolean LedState;

int preButton;


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, INPUT_PULLUP);

  

  LedState = LOW;

  preButton = digitalRead(9);

}


void loop()

{

  int curButton = digitalRead(9);

  if(curButton == LOW && preButton == HIGH)

  {

    if(LedState == HIGH)  LedState = LOW;

    else LedState = HIGH;

  }

  

  preButton = curButton;

  digitalWrite(8, LedState);  

}



---------------------------------



unsigned long time;

int LedState;


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, OUTPUT);//

  time = millis();

  LedState = LOW;

}


void loop()

{

  unsigned long time2 = millis();

  

  if(time2 - time >= 1000)

  {

    if(LedState == HIGH)

      {LedState = LOW; digitalWrite(9, !LedState); }

    else

      LedState = HIGH;

      

    //digitalWrite(9, LedState);  

    time = time2;

  }

  

  digitalWrite(8, LedState);

}

Posted by 코드버무려
Arduino2014. 8. 8. 15:25


A0입력에 아날로그 다이얼이나 IR센서를 넣는다.

11(11~)번 핀에 모터나 LED를 설치하면 아날로그 결과가 나온다.

void loop()

{

  int dial = analogRead(A0);

  analogWrite(11, dial/4);

}


"~"가 붙은 번호는 아날로그 출력이 가능핟.


---------------------------------------


동기방식은 어렵지만 멀티태스크가능하다.

비동기방식은 쉽지만 멀티태스킹이 불가능하다.  delay()를 사용.


delay(1000); 1000밀리세컨드 = 1초



----------------------------



시리얼 통신


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  Serial.print("hello");

  Serial.println("hello"); // 끝엣 엔털를 쳦줌. New Line

}


-------------------------------


// 9번 핀에 연결된 버튼을 누루는 순간 꺼지고 

// 손가락을 떼면(버튼이 원위치로 뛰어로름) 꺼짐.

//

//  <추측> digitalWrite(8, HIGH/LOW);  에서 

//  Ardu-X 100 Starter Kit에 포함된 버튼은 

// 누를 때 LOW( 0 )값을 발생하고    

// 손가락을 뗄 때 HIGH( 1 )값을 발생한다.


void setup()

{

  pinMode(8, OUTPUT);

  pinMode(9, INPUT_PULLUP);

}


void loop()

{

  int button =  digitalRead(9) ;

  digitalWrite(8, button);  

  //digitalWrite(8, digitalRead(9)); 

}



----------------------------


//IR센서 1개 사용
void setup()

{

  Serial.begin(9600);

}


void loop()

{  

  int irValue = analogRead(A0);

  Serial.println(irValue, DEC);

}



----------------------------


// IR센서 3개 사용

void setup()

{

  Serial.begin(9600);

}


void loop()

{

  int irValue = analogRead(A0);

  Serial.print(irValue, DEC);

  Serial.print(", ");

  

  int irValue1 = analogRead(A1);

  Serial.print(irValue1, DEC);

  Serial.print(", ");


  int irValue2 = analogRead(2);

  Serial.println(irValue2, DEC);

}



---------------------------------

// a버튼을 누르느느 순간에 IR로 값을 받아 출력한다.


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  if(Serial.available() > 0)

  {

    if(Serial.read() == 'a')

    {

      int irValue = analogRead(A0);

      Serial.print(irValue, DEC);

      Serial.print(", ");

  

      int irValue1 = analogRead(A1);

      Serial.print(irValue1, DEC);

      Serial.print(", ");

    

      int irValue2 = analogRead(2);

      Serial.println(irValue2, DEC);

    }

  }

}


------------------------

//stdio.h를 사용해서 간략하게 터미널에 출력


void setup()

{

  Serial.begin(9600);

}


void loop()

{

  if(Serial.available() > 0)

  {

    if(Serial.read() == 'a')

    {

      int irValue = analogRead(A0);  

      int irValue1 = analogRead(A1);    

      int irValue2 = analogRead(2);

       printf("IR1:%d,   IR2:%d,    IR3:%d\n", irValue, irValue1, irValue2);

    }

  }

}


Posted by 코드버무려
Arduino2014. 8. 8. 11:43


파일> 예제 > 예제 > basic > blink  선택하고 확인을 눌르고 업로드한다.





함수 (Sub-routine)


모든 프로그램은 엔트리포인트를 가ㅣ고 있다.

[반환형태]  [이름]  ([인자]....)

{

}



void setup()

{

최초에 한 번 해줄일

}


void loop()

{

반복적으로 할 일

}

'Arduino' 카테고리의 다른 글

블럭 차량 운전  (0) 2014.08.10
동기식과 비동기식  (0) 2014.08.08
시리얼 통신 Ardu-X 100 Starter Kit  (0) 2014.08.08
Ardu-X 100 설치, 드라이버 설치, 애드온 설치  (0) 2014.08.08
Posted by 코드버무려
Arduino2014. 8. 8. 10:48

http://rokitarduino.org/


http://www.robolink.co.kr/



http://rokitarduino.org/
http://rokitarduino.org/2014/05/23/arduino-ide-%EC%84%A4%EC%B9%98/



CP210x USB to UART Bridge VCP Drivers

Download for Windows XP/Server 2003/Vista/7/8/8.1 (v6.7)






아듀X100 usb드라이버 설치 완료 후 모습

포트 번호를 마줘준다.
도구 > 시리얼 포트 >  Com3번 ( 본인이 선택 한다. 같은 컴터에 꼽으면 바로 여기로 연결됨).

붉은색 power 는 외부전원(건전지)일 경우,.
중간 초록색 usb는 usb일 경우 켜짐( 보드마다 조금씩 달라서 안켜질 수도 있음).
세번째 파란색 불은 정상 작동한다고 바짝인다.

모든 하드웨어에는 최초에 적어도 프로그램 한 개는 들어잉ㅆ어야한다.
그 예로 pc에서는 롬바이오스이다.
여기서는 부트로더가 있다.  (보통 사용자가 바꿀 수 없다.).
여기서는 부트로더가 기본적으로 잘 작동한다고 led 청색을 반짝여준다.
부트로더는 무슨 역할을 하냐면 장치를 첨 켯을 때 작동시키는 역할을 한다.
여러분이 만든 프로그램을 받아들이는 역할을 한다. 
플레쉬라고 하는 메모리가 있는데 여러분이 만든 프로그램을 여기에 설치된다.
이 설치를 가능하케끔 지원하는 프로그맹이 부트로더이다.


reset 버튼: 내가 작성ㄷ한 프로그램을 지운다. 반짝이는 상태.

start버튼 : 내가 작성한 프로그램이 실행하는 상태. 불이 계속 들어온다(불이 길 게 반짝이면 이미 다른 프로그램이 들어 있고 불을 길게 반짝이라고 설정해놓은 상태다. 지우면  길게 반짝임이 사라진다.)


C언어는 거의 모든 언어의 모태가 되는ㄴ 언어가 되기에 ... 아무래도 그 언어를 잘 알고 계신분이 유리하고요 만약에 모르신다하더라고 이번 기회에 익히신다고 생각하시고요.
나는 언어는 한 개도 모든다 그럴 경우는 좀 오ㅓㄹ어렵구요.





'Arduino' 카테고리의 다른 글

블럭 차량 운전  (0) 2014.08.10
동기식과 비동기식  (0) 2014.08.08
시리얼 통신 Ardu-X 100 Starter Kit  (0) 2014.08.08
업로드는 내가 작성한 코드를 장치한다.  (0) 2014.08.08
Posted by 코드버무려