아두이노 - (5편) LED 깜빡이기 본문

코딩에듀/아두이노 배우기

아두이노 - (5편) LED 깜빡이기

코딩교육 2016. 11. 19. 16:54

이 글은 아래 링크에서 최적의 해상도에서 볼 수 있습니다.


https://brunch.co.kr/@hj1003/65


코딩을 배울 때 제일 먼저 배우는 게 "Hello World!" 출력하는 프로그램입니다.

거의 모든 책들이 저 문구를 모니터에 출력하는 것으로 시작을 합니다.

갑자기 언제부터 그랬는지? 왜 그랬는지 궁금해지네요.

예전에 다른 책에서 유래를 보았던 적이 있는데 기억이 가물가물 합니다.

그래서 한 번 검색해 봅니다.

헐... 이 녀석 나이가 꽤 많네요. 거의 내 나이와 비슷합니다.


아두이노를 처음 배울 때는 아두이노 보드의 내장된 LED를 켜는 것으로 시작합니다.

다음으로 배우게 되는 것은 브래드 보드를 이용해서 LED 점등입니다.

그래서 저도 한 번 따라 해 보았습니다.

너무 기본적인 것이라 별도로 설명이 필요 없습니다.


실습을 위해 필요한 준비물과 회로 구성 프로그램을 사진으로 남깁니다.


스케치나 IDE 환경에서 코딩 후 컴파일과 업로드 후 실행한 결과입니다.
   


아주 간단하고 기본적인 내용이라 기술적으로 설명할 내용이 별로 없습니다.

전공자들에 대한 강의를 준비한다면 전기/저항/LED에 대한 특징과 브래드 보드 사용법 등과 아두이노 보드의 디지털 출력과 GND 등 많은 내용을 설명해야 하지만 제가 아두이노를 배워서 가르치고자 하는 대상은 전공자가 아니기 때문에 다른 관점에서의 접근이 필요합니다.


제가 아두이노를 배우는 목적이 두 아이들을 가르치기 위함이기 때문에 이 간단한 프로그램을 통해 무엇을 알려줄 것인가를 생각해 봅니다.


LED 점등 프로그램을 통해 아이들에게 무엇을 설명할 것인가?
아이들에게서 어떠한 상상력을 이끌어 낼 것인가?

이 코딩의 작동 메커니즘은 아주 단순한 구조입니다.
위 영상물을 통해 보시는 바와 같이 연결된 두 개의 LED의 반복 점등입니다.
반복되는 조건은 0.5초 간격으로 계속해서 점등됩니다.

여기서 우리가 반복되는 상황(조건)만 조금 다르게 준다면 어떻게 확장을 할 수 있을까요?
또 프로그램에서 지정된 조건 대신 센서를 이용하게 된다면 어떻게 활용할 수 있을까요?

먼저 위 코딩에서 조건만 조금을 변경 또는 추가한다면...

특정한 시간에 되면 LED가 켜지고 또 특정한 조건이 되면 LED가 꺼지게 한다면 이것은 가로등으로 활용할 수 있을 것 같습니다. 밤 7시가 되면 LED가 켜지고 아침 7시가 되면 꺼지는 가로등... 실제로 우리는 이런 가로등을 주변에서 볼 수 있습니다.

그런데 위 가로등은 자동이라는 개념이 없습니다. 여름에는 저녁 7시가 되어도 어둡지 않고 아침 7시면 훤하기 때문에 가로등 불빛이 필요 없습니다. 그래서 여기에 조도 센서만 하나 추가한다면 어떻게 될까요? 어두워지면 자동으로 가로등 불빛이 켜지고 밝아지면 자동으로 꺼지는 가로등입니다. 이런 가로등이 요즘 우리가 보는 대부분의 가로등의 작동원리입니다.

이렇게 설명한다면 아이들은 아주 간단한 코딩으로 인해 일상에서 우리가 보는 가로등이란 제품이 생각하는 것보다 복잡한 구조가 아니라는 것을 이해할 수 있습니다. 혹 말이 쉽지 실제로 가로등을 만들려면 어려운 것이 아니냐고 반문하실 수 있습니다. LED와 일반 가전의 전기와는 전혀 다른 것 아니냐고요. LED는 저항 하나 달아서 구현이 가능하고 일반 전기에서 제어를 하고자 할 때는 릴레이만 하나 추가하면 가능합니다. 나중에 이 과정도 구현해서 올리도록 하겠습니다.

위 기능으로 또 무엇을 만들 수 있을까요? 우리 일상생활에 적용된 것은 무엇이 있을까요?
음~ 제가 잠깐 생각한 것은 자동차 전조등입니다.
오래된 차는 없지만 요즘 출시되는 자동차는 Auto 모드에 두면 자동으로 전조등이 켜집니다.
낮에는 꺼져 있고, 터널에 들어가 어두워지거나 밤이 되면 자동으로 전원이 켜집니다.

이제는 다른 센서를 하나 장착해 볼까요?
조도 센서가 아니라 동작 감지 센서를 장착하면 어떻게 활용할 수 있을까요?
어두운 밤 아파트 계단을 올라가다 보면 자동으로 계단에 불이 켜지고 내가 지나가고 나면 조명이 꺼집니다. 이것도 이 메커니즘의 확장으로 볼 수 있습니다.
LED가 켜지는 조건을 동작 감지 센서에 의해 작동이 되도록 제어하는 것입니다.

위 기능을 일상에 적용한 것이 무엇이 있을까요?
우리 아파트 지하 주차장은 예전에는 밤에는 항상 불이 켜져 있었습니다. 그런데 요즘은 차량이나 사람의 움직임이 있으면 켜지고 없으면 자동으로 꺼집니다.

반대로 출력을 빛 대신 소리로 바꾼다면 어떻게 활용할 수 있을까요?
빈집이나 사무실에 도둑이 들어왔을 때 자동으로 동작을 감지해서 빛 대신 사이렌을 울리게 한다면 보안 또는 경보장치로 활용이 가능합니다.

또 어떻게 활용할 수 있을까요?
이쯤 되면 아이들에게서 훨씬 더 많은 대답들이 나올 수 있을 것 같습니다.
그렇게 아이들의 생각과 상상력을 이끌어 내도록 하는 것이 제가 생각하는 코딩 교육의 목적입니다.
그리고 복잡하지 않고 간단한 코딩으로 우리의 일상에 필요한 많은 것들을 직접 제작할 수 있다는 것을 알게 해 주고 싶은 것입니다.

말이 나왔으니 몇 가지 더 상상을 해 보도록 합시다.
이번에는 초음파 거리 센서를 장착해 보도록 하겠습니다.
휴지통 뚜껑에 이 장치를 장착한다면 어떻게 활용할 수 있을까요? 
모두 상상해 봅시다.
휴지통이 바닥(빈 상태)이라면 아무런 작동도 없다가 휴지통이 절반 정도 차 오른다면 노란색 LED 조명을 그리고 휴지통이 가득 찬다면 빨간색 LED 조명 또는 '휴지통을 비워 주세요'라로 소리를 출력할 수 있겠지요.

또 뭐가 있을까요?
제 혼자 생각을 하고 상상을 해도 많은 것들이 떠 오르는데...
여러 아이들에게 상상을 해 보라고 하면 더 많은 것들이 나오겠죠.
특히나 어른들과 달리 상상력에 제한이 없는 아이들이라면 제가 생각지 못한 전혀 엉뚱한 것들이 튀어나올 수 있을 겁니다.
다시 한번 말씀드리지만 이것이 제가 원하는 코딩 교육입니다.


얼마 전 잡념 - (2) 창의성에 대해서 글을 올린 적이 있습니다. 이 글에서와 같이 무한한 아이들의 상상력을 키우는 것... 그리고 그 상상력으로 우리의 일상을 바꾸어 나가는 것 그것이 4차 산업혁명 시대에 우리 아이들의 경쟁력을 키우는 길이라 생각합니다.



오늘도 사람을 만나고 일을 정리하고 그냥 집으로 들어가기 전 이디야에 와서 생각을 정리하고 코딩 교육과 관련된 글을 하나 포스팅하니 뿌듯합니다. 이것저것 코딩 교육과 관련하여 너무 많은 것들을 동시에 살피면서 방향성을 찾지 못해서 힘들어했는데 이제 어느 정도 방향성은 잡은 것 같습니다. 




최근에 올라온 글

애드센스 (Adsense)

애드센스 (Adsense)

텐핑 (10PING)

클릭몬 (ClickMon)

클릭몬 (ClickMon)

최근에 달린 댓글

Total
Today
Yesterday