본문 바로가기
Hardware/MCU(Arduino,ESP8266)

아두이노 시작하기 - 메이커가 되어봐요

by lovey25 2019. 3. 9.
반응형

 

개요

요즘 아두이노 많이들 사용하고 계실텐데요. 저도 공대를 졸업하긴 했지만 전자/전기/컴퓨터쪽은 아니라서 마이크로 컨트롤러를 잘 모릅니다. 그렇지만 이런분야에 관심이 많아서 늘 공부해보고 만들어보고 그런 욕심이 있었습니다. 그런데 제가 학교다닐때 이런 플랫폼이 없었어요. 코딩을 할래도 에디터부터 복잡하고 펌웨어 구울려면 뭐 롸이터 따로 만들어야 하고 또 뭐라더나 암튼 이해도 안되는 복잡하고 신비로운것들이 많았습니다. 그리고 도서관에서 책을 봐도 뭔말인지도 모르겠고 그렇더라구요. 그래서 포기하고 살았어요 ㅎ

그런데 이 아두이노라는 만능보드가 나와줘서 참 다행히 더 늦기전에 마이크로컨트롤러를 써볼수있게 되었습니다. 이건 보드만 사서 컴퓨터에 USB만 연결하면 되니 정말 이건 거저먹기더군요. 

하지만, 저도 아두이노 보드를 사서 만저본지는 제법 되었는데 가끔 취미로 시간나면 이런저런 센서들 한번씩 써보고 잘안되면 구글링 하면서 그때 그때 땜빵식으로만 해서 실력이 늘지도 않고 익숙해지지도 않고 그렇더라구요. 그래서 아두이노도 공부했던 것들은 기록으로 남겨두려 합니다. 그래서 그 이번글은 아두이노 프로젝트를 하기위해서 필요한 최소한의 준비과정으로 아두이노 나도한번 해볼까 하시는 분들의 눈높이에 맞추어서 시작해 볼까 합니다.

아두이노란

깊이있게 알면 좋긴하겠지만 뭐든 써먹을 정도로만 알면 장땡이지뭐 라는 주의이긴 하지만 기본적인 개념정도는 알아야 하니까 살짝 알아보겠습니다. 아두이노는 미국의 반도체 회사인 Atmel사에서 만든 AVR프로세서를 기반으로 한 마이크로컨트롤러 입니다. 아 시작부터 골치아픈 단어들이 나오네요. 쉽게쉽게 집고만 넘어가죠. 일단 AVR프로세서는 간단한 연산을 처리할 목적의 저성능 CPU정도로 보면될것 같습니다. 8비트 프로세서가 가장 많이 사용된다고 하네요. 그리고 마이크로컨트롤러는 뭐냐. 칩하나에 연산프로세서, 메모리, 입출력 단자등을 모두 모아서 소형으로 만든걸 말하는데요. 신호를 받고 그걸 처리하고 그걸 바탕으로 새로운 신호를 내보내고 하는 그런 작업을 해주는 핵심요소가 되겠습니다.

이제 이걸 하나의 보드로 만들어서 사용자가 다른 어떤 골치아픈 하드웨어 작업없이 바로 컴퓨터에 꽂아서 사용할 수 있도록 한것이 바로 아두이노입니다.

아두이노 보드도 상당히 다양한 종류들이 있는데요. 보통 시작은 아두이노 우노 보드를 사용합니다. 아두이노 우노 보드에 대해서는 이전에 작성해둔 글을 참고하여 주세요.

아두이노 우노 R3(Arduino Uno R3) 기본사양

아두이노 그냥 막 따라해보기

아두이노가 이제 뭔지 이제 더 알고 싶지도 않고 빨리 어떻게 돌아가는지가 보고싶으니 바로 시작해 보죠.

가장 기초적인 LED 켜고끄기  한번 해보겠습니다.

준비물

준비물은 간단합니다. 컴퓨터는 기본이로 있어야 하는건 당연하고, 새로 준비할건 아두이노만 구매를 하시면 됩니다. 아두이노 보드만 사서는 별로 해볼게 없으니 사실때는 아두이노 실습키트를 사시는게 좋습니다. 각종 센서와 엑추에이터들이 있어서 인터넷에서 쉽게 구할 수 있는 기본적인 프로젝트들은 모두 실습해 보실 수 있습니다. 아두이노 보드만 살 경우 정품보드는 2~3만원정도 하는데 호환보드라고 일명 짝퉁보드들인 있는데 이런거 아무거사 사시면 되겠습니다. 

    • 아두이노 우노 R3
    • USB케이블 (USB-A to USB-B)
    • 컴퓨터

이상 준비물이 준비가 되었다면 다음단계로 넘어가겠습니다.

아두이노 IDE 설치

이제 아두이노 보드에다가 직접 프로그래을 만들어서 넣어봐야 할텐데요. 하드웨어적으로도 아두이노 보드 하나만 있으면 모든게 해결되는 것처럼 소프트웨어적으로도 아두이노 IDE만 있으면 됩니다. 아두이노 공식 홈페이지에 가서 IDE를 다운받아 설치해 줍니다.

 

Software

Open-source electronic prototyping platform enabling users to create interactive electronic objects.

www.arduino.cc

링크를 따라가보시면 다음의 페이지가 열리는데요. 자신의 운영체제에 맞는 버전을 찾아서 클릭해줍니다. 전 윈도우를 사용하고 있어서 윈도우 설치용 파일 다운하였습니다.

다운로드 링크를 누르면 다음과 같이 기부 페이지가 나옵니다. 무료로 프로그램을 배포하고 있는 아두이노를 위한 소정의 기부는 개인의 선택이니 알아서 설치파일을 받아줍니다.

설치는 뭐 다음, 다음만 누르면 알아서 진행되는 간단한 절차입니다.

아두이노 펌웨어 코딩 

자 이제 정말 모든 준비가 끝났습니다. 이제 본격적으로 실습에 들어가 보겠습니다.

먼저 설치한 아두이노 IDE를 실행시켜 줍니다.

그럼 이런 창이 뜨는데요. 

아두이노 펌웨어의 기본 형태인 setup()함수와 loop()함수가 보이고 있습니다. setup()함수는 아두이노 보드에 전원이 들어가면 맨 처음 실행되는 함수입니다. 맨 처음 1번만 실행되는 루틴이기 때문에 각정 초기설정등을 하는데 사용하고 그래서 이름도 setup입니다. 다음으로는 loop()함수인데, 이것도 이름처럼 반복되는 함수입니다. 앞서 얘기한 setup함수가 1번 실행을 마치면 loop함수로 이동해서 아두이노 보드의 전원이 꺼지거나 리셋버튼이 눌려질때까지 이 loop함수를 무한히 반복합니다. 그래서 내가 구현하고자 하는 하드웨어의 기능을 실제적으로 구현하는 부분이 되겠습니다.

지금은 처음 실습이니 예제를 활용해서 실습해 보겠습니다.

아두이노 IDE에는 각종 예제들이 내장되어 있습니다. 그중에서도 저희는 가장 간단한 "Blink"예제를 사용해 보겠습니다.

아래 그림처럼 메뉴를 순서대로 따라가줍니다.

그럼 이렇게 새로운 창이 열리면서 Blink예제소스가 나타납니다.

소스는 엄청 간단하니까 간략히 어떤 내용인지 보겠습니다.

앞쪽은 다 주석이고 25행부터 코드가 시작하네요.

앞에서 설명했던 "setup()"함수에서는 "pinMode()"라는 함수를 사용했는데요. 아두이노에 있는 여러 핀들은 신호를 입력받거나 신호를 밖으로 내보내는 2가지 용도로 모두 사용될 수 있습니다. 그래서 여기서는 두개 인자가 사용되었는데 의미는 "LED_BUILTIN"이라는 핀을 신호 출력용으로("OUTPUT") 사용하겠소라는 예기가 되겠습니다. 아두이노에 내장된 LED가 "13"번핀에 연결되어 있는데요. 바로 "LED_BUILTIN"이라는 상수에 13이 정의되어 있습니다.

다음으로 "loop()"함수안에는 두가지 함수가 반복되어 사용되었네요.

"digitalWrite()"; 선택된 디지털핀, 여기서는 "LED_BUILTIN",에 "HIGH" 신호를 보내세요. 가 됩니다. 디지털 신호는 켜고 끄고 두가지로 데이트를 주고받는 방식이고 아두이노는 기본 5V로 디지털 신호를 주고받습니다. 그래서 "HIGH" 상태가되면 "LED_BUILTIN"핀에 5V의 전압이 걸리게 됩니다.

"delay()"; 아두이노를 잠시 멈추는 함수입니다. 인자값으로 "1000"이 써있는데, 1000ms (=1초)시간만큼 대기타세요. 라는 얘기입니다.

그리고 다시 34행에서는 32행이 반복되는데 이번에는 두번째 인자로 "LOW"가 들어가있습니다. 32행과는 반대로 0V신호를 내보내란 얘기겠죠.

그리고 다시 35행에서는 1초대기하랍니다.

종합해보면 내장 LED가 연결된 13번 핀에 전압을 걸어줘서 불을 켜고 1초 대기하고 전압을 빼서 불을끄고 1초 대기하고 그리고 "loop()"함수는 계속 반본된다고 했으니까 다시 불켜고 1초, 불끄고 1초, .... 이렇게 무한반복을 하라는 그런 코드 되겠습니다.

아두이노 펌웨어 업로드 실행

자 이제 아두이노 보드를 컴퓨터에 연결해 줍니다.

이제 사용하고 있는 보드에 맞게 IDE 세팅을 조정해 줍니다.

먼저 보드의 종류를 선택해 줍니다. "Tools >> Board" 메뉴에 "Arduino/Genuino Uno"라고 되어 있지 않으면 바꿔줍니다.

다음으로는 아두이노가 연결된 컴퓨터 포트를 선택합니다.

제컴퓨터에는 COM1과 COM5 두개포트가 보이는데, 사진에서 처럼 아두이노가 COM5에 연결된걸로 표시가 되네요. COM5 골라주었습니다.

이제 업로드를 해보겠습니다.

위쪽 메뉴바 바로아래에 오른쪽 화살표모양의 "Upload"버튼을 눌러줍니다.

그러면 이렇게 화면 하단에

"Done uploading"이라고 뜨고, 메시지창에 아두이노의 2%메모리에 해당하는 928bytes만큼이 없로드되었다고 나타납니다.

이제 모든게 끝났습니다. 

보드를 보시면...

13번 핀 옆에 있는 주황색 LED가 깜빡깜빡 하는게 보이시죠?!

자 여러분은 이제 아두이노의 모든것을 체험하셨습니다.~ ㅎ

 

끝!

반응형

댓글