brunch

You can make anything
by writing

C.S.Lewis

by Cylogic Sep 05. 2020

27. 코딩, 아두이노 기초 복습 그리고 작품 만들기

한 달 여만에 정신없이 26편의 기초 강좌를 진행했다.

그리고 기본적으로 알아야 할 내용은 거의 전달한 것 같다.
앞으로는 좀 더 실무 응용에 관련된 강좌를 준비 중이다.

그래서 지금까지 배운 것을 한번 복습하고 새로운 마음으로 좀 더 재미있는 장난감과 사물인터넷 만들기 세계로 들어가 보는 게 좋을 것 같다.


우리는 하드웨어와 소프트웨어 두 가지를 동시에 공부했다. 

아두이노와 같은 오픈소스 디바이스로 작업을 하다 보면, 소프트웨어는 추상적인 것인데 이를 이용해 움직임을 보여주는 하드웨어가 함께 있으니 때로는 이해하기가 쉽다고 생각되지만, 한편으로는 장비를 구하고, 만지고 연결하는 것에 어려움을 느끼는 분들도 있었을 것이다.


어찌 되었건 지금까지 배운 내용을 한 번쯤 정리하고, 이를 바탕으로 하드웨어와 소프트웨어가 어떻게 서로 연계가 되고 있는 지를 다시 한번 기억하고 다음 강좌로 나가도록 하자.



꼭 기억해야 할 기본적인 명령어


물론 위의 명령어 만으로 모든 문제를 해결할 수는 없다. 

그러나 아두이노 작업을 위해 필수적으로 알아야 할 기초 명령어는 위의 것들이 대부분이다.

이것들을 이해하고 나면 다른 명령어들은 쉽게 이해가 될 것이다. 

그리고 알아서 잘 활용하는 것과 꼭 기억해서 참고 자료를 보지 않고 써도 되는 것은 다르다.

이해가 된다면 기억할 필요는 없다. 

어디서 어떤 자료를 찾아볼 것인지만을 기억하고 있으면 된다.


대부분의 명령어들은 아두이노의 공식 홈페이지 reference 부분에 잘 설명되어 있다.

어쩌면 아두이노 명령어에 대한 문제가 아니고 영어가 문제일 수 있다.
영어로 만들어진 사이트 이기 때문이다.
그러나 프로그래밍 언어가 영어를 기반으로 하고 있는 이상 영어에 대한 근력은 필수로 키워야 한다.

다행히 우리나라의 훌륭한 네티즌들은 그들의 블로그와 유튜브 등 다양한 사이트에 아두이노에 대한 설명을 우리말로 잘 정리해 두었다. 

영어가 어려우면 검색을 잘하면 된다 ^^




처음에 보여 드린 자료이지만 다시 한번 보자.

아두이노 프로그램의 구조

아두이노 프로그램은 setup과 loop로 구분되어 있다. setup은 프로그램 진행을 위한 준비 작업을 하는 곳이고, 반복적인 작업을 진행하는 곳은 loop이다.




아두이노 보드의 구성


- 디지털 단자 : 아두이노에서 신호를 내보내는 역할과 디지털 신호를 받아들이는 기능을 한다.


- 아날로그 입력 단자:  아날로그 데이터를 받아들이는 기능을 한다.


- 전원 단자:  전원을 받아들이거나 5V, 3.3V의 전원을 공급해 주는 역할을 한다.


아두이노의 기본 전원은 5V로 동작하지만 / 전원 연결단자로 공급될 수 있는 전원은 6~12V이다.

프로그램 업로드가 완료된 아두이노를 동작시킬 경우, 대부분의 경우 USB 단자로 전원을 공급하거나, 9V 건전지를 전원 연결단자에 연결하여 동작하도록 한다.

그리고 하나의 핀 당 허용하는 전류는 20mA인데, 약간 초과하는 경우에는 큰 문제가 생기지 않았지만 초과 전류가 크거나 그 시간이 오래되는 경우 아두이노 보드를 상하게 만들 수 있다.




   회로의 구성


이 역시 앞 선 강좌에서 보여드린 내용이지만 다시 한번 보자.


+ 전원 또는 신호를 보낼 수 있는 핀과 GND 사이에 전선 또는 부품의 핀을 통한 폐곡선을 만들어 줘야 한다. 이것을 회로라고 한다. 우리는 아두이노와 브레드보드를 통해서 이러한 회로를 만들어서 원하는 작업을 수행해야 한다.



아두이노와 센서 그리고 액츄에이터


아두이노는 신호를 확인하거나 받아들여서 특정한 작업이 일어나도록 하는 형태의 회로를 많이 구성한다.

이때 신호를 받아들이는 부품을 센서(sensor)라 하고,

동작이 일어나는 부품을 액츄에이터(actuator)라고 한다.


위의 그림은 전원의 공급 / 센서를 통한 특정 작업의 시동 / 그리고 동작이 일어나는 3가지 부분을 이해하기 위한 그림이다.


부품이 연결되면 소프트웨어로 센서의 세기에 따라 무엇을 할 것인가를 정하고, 스위치를 켜고, 이에 따라 전등이 켜지는 것과 같이 액츄에이터가 동작하게 한다.


센서는 


초음파 센서와 같이 물건의 거리를 측정하거나

조도센서처럼 빛의 밝기를 측정하거나

온습도 센서처럼 온도와 습도를 측정하는 등 외부에서 전달될 수 있는 정보를 읽어 들이고, 이를 바탕으로 특정 동작이 일어나는 스위치 역할을 한다.  


액츄에이터는 


LED처럼 불을 켜고

모터처럼 회전 운동을 하거나

서보모터처럼 왕복 운동을 하는 등의 동작이 진행되게 하는 역할을 한다.



작품을 만드는 과정


1. 기술에 대한 이해 : 코딩을 이해하고 여러 부품의 기능을 배운다.

2. 아이디어 : 최종 제품에 대한 구상을 한다.

3. 완성도 있는 제품의 제작 : 어떠한 제품이든 다른 사람들이 가지고 싶어 할 만큼의 완성도가 필요하다.

    이를 위하여 외형 제작의 기능도 함께 있으면 좋을 것이다.

    - 3D 프린팅이나 공작, 또는 간단한 목공 작업의 기능을 함께 배워 가는 것도 한 방법이 될 것이다.



LED광선총 만들기의 사례


먼저 아래의 동영상을 보시라.


이 광선총을 만들었던 때는 나무 장난감을 만드는 분들에게 아두이노 장난감을 만드는 교육을 완료하고 작품 전시회를 준비할 때였다.

몇몇 분들이 최종 작품에 대한 아이디어 회의를 할 때 전시회장 입구에 LED로 광선총을 쏘는 모형을 만들면 어떻냐는 아이디어를 냈고, 나무 장난감 제작자 한 분이 멋진 작품을 만들었다.

거치되어 있는 나무 광선총 ^^


광선이 나가는 LED 전선이 팽팽히 걸려있다면 훨씬 더 실감이 났을 텐데 전시회 준비 중에 바닥에 놓고 찍은 영상이라 영상에는 선명하게 나오지 않아 애석하다.



재미있는 아이디어,
간단한 공작 기능,
기술에 대한 이해,
그리고 이를 융합하는 노력이
좋은 작품을 만든다.
 

이 글을 읽고 있는 독자 여러분들도 앞으로의 강좌에서는 이러한 작업에 대한 꿈을 현실로 이뤄나가시길 바란다.




매거진의 이전글 26. LCD 패널에 온습도 표시하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari