본문 바로가기
1.B. Low Level Engineering/Micro Controller Unit

[MCU] P0. IDE & 드라이버 설치, 예제

by Never Settle Down 2023. 1. 31.
반응형

Marius님, 정글에 들어오신 것을 환영합니다.

 

아두이노와 내 시간을 갖다버릴 마음의 준비를 가지고 있다면

이제 시작할 차례이다.

 

 

 IDE란?

Integrated Developement Environtment.

적분된 개발 환경. 아, 통합 개발 환경.

 

거창하지만, 별거 없다.

 

매틀랩이나 비주얼스튜디오같은 프로그램을 지칭한다고 생각하면 된다.

 

https://www.arduino.cc/

 

Arduino - Home

 

www.arduino.cc

MSI 인스톨러로 받았다.

윈도우즈 앱스토어는 안 좋아함.

 

 

아두이노를 꽂으면 저렇게

컴 포트가 뜰 것이다.

(macOS의 경우 블루투스나 다른게 뜰 수도 있다)

 

Marius나 NSD의 경우 짝퉁볻... 호환보드를 쓰기때문에

추가로 드라이버를 설치해줘야한다.

 

http://www.wch-ic.com/products/CH341.html

 

USB Bridge Controller CH341 - NanjingQinhengMicroelectronics

CH341 is a USB converter chip, which converts USB to serial UART interface, printer interface, parallel port interface, and common 2/4 synchronize serial communication interfaces etc. In UART mode, CH341 provides UART transmit enable, UART receive ready ra

www.wch-ic.com

 

 

 

CH341SER.EXE
0.62MB

Ch341은 짭두이노에 있는 USB to Serial 칩셋이다.

컴퓨터에서 이 칩과 통신할 수 있게 방법론 (드라이버)를 알려주는 것이

이제 할 것이다.

 

 

실행 - 인스톨 - ok

누르자.

 

 

아두이노 IDE에서

Access Denied 와 같은 경고가 날 수도 있다.

 

 

컴퓨터 껏다 켜면 된다.

 

꼭. 껏다 켜자.

내가 했던 뻘짓을 다른 사람들도 할 필요는 없다.

 

 

이렇게 모델명 검색하고, 포트 선택하면 된다.

 

 

빈 프로젝트를 올려보자.

 

 

왼쪽의 체크버튼: 컴파일만 함. (정상 컴파일 되는지 봄)

왼쪽 두번째 화살표 버튼: 컴파일 후 보드에 업로드.

 

화살표 버튼 누를 때마다 재컴파일하므로

체크버튼은 프로그램 짤때만 쓰면 된다.

 

보드의 LED가 깜빡깜빡하고나서 IDE 결과가 저렇게 나오면 끝난 것이다.

 

개발 중에 펌웨어를 잘못짜서 Soft Lock이 걸리는 바람에

초기화해야할 때 이 방법을 쓰면 된다.

 

 

예제나 하나 올려보자.

 

File - Examples - Basics - Blink 클릭

업로드 (화살표)

 

보드의 LED 4개 중 (우노 기준)
가장 하단의 LED가 1초 간격으로 깜빡거리면 성공한 것이다.

 

 

간단하게 하나 더,

 

아두이노 실행함수는 크게 3가지로 나눌 수 있다:

1. Setup

2. Loop

3. UDF (User Defined Function)

빈 프로젝트를 만들면 이렇게 기본함수 2개가 생성된다.

 

주석(comment), //~~ 에도 설명되어있듯이

Setup함수는 아두이노가 부팅되고 한 번만,

loop은 (setup이 끝나고나서 진입하면) 무한반복을 한다.

 

 

그럼 UDF는 뭐여?

유저 디파인드 펑션, 사용자 정의함수이다.

(통신과 교수중에 펑크션 펑크션 하는 색기가 있었음. 대가리에 펑크나서 그지랄함. 펑션이다. 아직도 생각하면 존나 뚜들겨 패고싶다.)

 

코딩러가 혼자서 만든 함수를 뜻한다.

예제코드를 보자.

#define THREASH_HOLD 10
int times;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  times = 0;
}

void loop() {
  // put your main code here, to run repeatedly:
  waitAHalfSecond();
  fuqYou();
}

bool fuqYou (void)
{
  if(++times >= THREASH_HOLD){
    Serial.println("CUMMM");
    times = 0;
  }
  else {Serial.print("fuq");}
}
void waitAHalfSecond(void){
  delay(500);
}

여기서

void fuqYou()

void waitAHalfSecond()

가 사용자 정의 함수이다.

 

(입력부분에 void를 안 써도 되는데 굳이 써준 것은 "입력변수" 없다고 그냥 보란듯이 쓴것임. 안 써도 됨.)

 

뭐가 좀 많쥬?

 

 

똑같은 코드 반복해서 쓸 때 만드는거여.

코딩러가 부르기 전까지는 실행되지 않음.

 

 

자세한건 나중에 하고.

일단은 이정도로.

 

 

 

 

 

 

Trouble Shooting

- 보드 업로드 실패시

  1. 다른 우노를 꽂아서 해본다. (가끔 보드가 혼자 뻗어버린다. 고장.) (같은 USB포트에 다른 우노 꽂아도 COM포트는 동일하게 잡힘)

  2. 포트와 모델명 설정이 잘 되었는지 본다.

  3. 케이블을 바꿔본다. (생각보다 이상한 케이블 정말 많음)

  4. USB 포트를 바꿔본다 (전력부족일 수도 있다.)

  5. 주인장에게 전화를 때린다.

 

 

짧다.

 

 

다른 예제들 다운받아서 구경해봐도 좋겠다.

 

 

끝. End of Document.

반응형

Comment(s)