Ⅰ. 아두이노 소개
1) 아두이노란... ? 오픈소스 하드웨어 이다.
마이크로 컨트롤러인 ATmega328과 작은 하드디스크 역할을 하는 Flash Memory를 장착하고 있어 다른 기기와의 연결 없이 프로그래밍된 동작을 수행 할 수 있다.
아두이노는 아날로그 및 디지털 입출력 포트와 RS232, I2C등 여러가지 통신방식을 지원하여 대부분의 센서 모듈 및 기타 장치들을 제어하는 것이 가능하다.
2) 종류
- 아두이노 우노 (Arduino Uno)
일반적으로 가장 널리 알려지고 사용되고 있는 아두이노 UNO 모델. 대부분의 튜토리얼및 예제소스가 UNO를 기반으로 제작되었으며, 아두이노의 표준형 핀배열을 가지고 있으므로 확장쉴드를 손쉽게 이용할 수 있다.
- 아두이노 메가 (Arduino Mega)
Mega는 우노 다음으로 많이 사용되는 고성능 보드로서 많은 포트가 내장되어 있어 여러 센서와 액츄에이터를 추가할 수 있다. Mega ADK는 USB호스트 컨트롤러 기능을 넣어 google ADK와 호환되도록 만들어져 안드로이드폰과 연동할 수 있다.
- 아두이노 프로미니 (Arduino Pro Mini)
아두이노 Pro Mini는 가장 작은 아두이노 시리즈로 18X33mm의 소형 보드이다. 작지만 아두이노의 기본 기능을 모두 지원하며, 휴대용 제품이나 크기가 작은 제품을 만들 때 유용하다.
- 아두이노의 확장쉴드란? (Extension Shield)
기본 아두이노 보드 위에 꽂아서 특정한 기능을 수행할 수 있도록 만들어진 기능 보드이다. 예를 들어 이더넷 보드를 연결하여 인터넷 통신 기능을 추가할 수 있고 블루투스 쉴드를 장착하여 원격으로 제어할 수 있도록 만들어 준다. 그 외에도 GPS, Zigbee, 모터드라이버와 같은 여러 종류의 아두이노 전용 쉴드가 있다.
오픈소스 하드웨어인 관계로 여러회사들에서 자체적으로 제작한 보드들을 ebay나 Aliexpress 등에서 내놓고 있으며 이중에는 기능이 추가된 버전부터 시작해서 여러 버전들이 있다. 간단한 선에서는 그냥 저렴하게 만든 중국제들 부터 시작해서 보드에 블루투스, 와이파이 등의 통신모듈을 내장시킨 것들은 흔하며 초소형화된 것들도 볼 수 있다.
3) 현재의 아두이노
현재 아두이노는 다양한 곳에 활용이 가능하다. 간단하게 LED를 깜박이는 것부터 시작해서 크게는 무선 RC카와 드론제작, IOT(사물인터넷) 까지 적용이 가능하다. 원격으로 센서를 모니터 할 수 있고 디스플레이와 모터를 인터넷으로 제어할 수 있다. 현재는 근전도 센서, 조도 센서와 블루투스를 비롯한 다양한 부품들과의 결합이 가능해 사물 인터넷을 실현할 수 있어 큰 각광을 받고 있다.
예로 장난감 회사 <레고>는 자사의 장난감과 아두이노를 활용한 로봇교육 프로그램을 만들어 운영하고 있다. 또한 자동차 회사 <포드>는 아두이노를 이용해 차량용 하드웨어 소프트웨어를 만들어 차량과 상호작용할 수 있는 오픈 XC라는 프로그램을 선보이기도 했다. 이처럼 아두이노의 활용범위는 다양하며 그 발전 가능성도 무궁무진하다.
4) 아두이노 프로그래밍 방법
Sketch는 아두이노에서 제공하는 통합 개발 환경이다. C, C++기반의 언어로 아두이노에 대한 간단한 프로그래밍이 가능하다. 프로그래밍 후, PC에서 아두이노로 해당 프로그램을 업로드 시켜 실제 프로그래밍 한 대로 동작하는지 아두이노에서 확인하면 된다.
5) 아두이노 H/W적 관점에서 분석
Ⅱ. Block 프로그래밍 언어의 대두
Block 프로그래밍언어란 그래픽언어로써 프로그래밍을 배우기 좋은 언어이다. 즉, 해당 프로그래밍 문법에 미숙하거나, 생소한 언어라도 기본적인 논리적 흐름을 그래픽언어로 표현하고 그것을 원하는 언어로 바꿔주는 것이다. 이미 숙달된 프로그래머들한테는 필요 없지만, 미숙한 프로그래머나 학생들의 논리적 사고를 발달시키고자 할 때 유용하게 사용 할 수 있다. 다음과 같은 수많은 종류의 Block 프로그래밍 언어가 있다.
1) Blockly
- 구글이 개발, Javascript로 구현된 웹 브라우져에서 동작하는 언어이다.
- 만든 블록을 5가지 언어로 변환 시켜준다. (Python, Javascript . . .)
2) Scratch
- 2007년 MIT 미디어 연구소에서 공식 발표한 교육용 프로그래밍 언어.
- 기존의 텍스트 형식의 프로그래밍 언어와 달리, 블록을 조립하듯 주어진 스크립트를 연결시켜 간단한 게임이나 애니메이션 등을 만들 수 있다.
3) Scratch - S4A, X
- Arduino를 제어하기 위한 스크래치버전중 하나이다.
- 기본적으로 아두이노에서 제공하는 스케치라는 언어를 사용하지 않고, Block 프로그래밍을 통해 쉽게 프로그래밍 할 수 있다.
- 아두이노 보드를 선택하면, 그에 맞는 프로그래밍을 스크래치에서 할 수 있다.
4) 그 외
- Ardublock : 전문적인 아두이노 제어를 위한 graphic 프로그래밍언어이다.
- 엔트리 : 스크래치를 밴치마킹 하여서 만들었다.
Ⅲ. 아두이노와 블록프로그래밍 언어(스크래치)의 상관관계
특히 어린아이의 경우, 컴퓨터로 프로그래밍 자체가 어렵고 생소 할 수 있다. 장난감 같은 하드웨어가 중요한 이유이다. 자기가 원하는대로 하드웨어를 조작하기 위해 프로그래밍 하는 습관을 교육시켜 아이의 창의력과 논리력을 기르기 위한 도구로 아두이노와 스크래치언어는 꼭 함께 필요하다.
Ⅳ. 현재 프로그래밍 교육 시장 현황
1) 아두이노와 스크래치의 대두
프로그래밍을 쉽게 가르치기 위해서, Block Programming언어인 스크래치가 가장 대중화되어 사용되고 있다. 실제로 2018년 초중고 SW교육 의무화에 앞서 교육부에서 지정한 68개의 SW연구학교에서 시범으로 교육을 진행하였는데, 이때 학생들에게 스크래치를 통해 SW를 가르쳤다.
하지만, 어린아이들은 직접 만지는 것을 더 좋아한다. 컴퓨터 앞에서 프로그래밍 하는 것 보다 하드웨어적인 요소를 직접 만지기 위해 필요하여 나온 것이 아두이노이다. 하지만 복잡한 아두이노 회로는 어린아이들이 만지기 쉽지 않다. 그래서 하드웨어 업계는 아두이노를 기반으로 한 보다 더 쉬운 하드웨어를 계속해서 만들어 내고 있다.
예를 들면, bitblock(비트블록)이나 littlebits(리틀빗)등 창의적으로 Block를 조합하여 만들 수 있는 저학년용 하드웨어도 있고, 아두이지(Ardu-ez)와 같은 교육용 키트도 나와있다.
2) SW 사교육의 증대
⓵ 스크래치, 아두이노등 관련 교재 출판이 크게 늘었다.
⓶ 초중고교 학생 대상 코딩교육 전문 학원이 급속도로 증가 하고 있다.
⓷ 관련 자격 시험도 등장하였다. ex) 코드 크리에이터(CODE Creator)
Ⅴ. 비즈니스 모델 제시
1) 아두이노의 발전에 따른 중요성 부각
2018년도부터 s/w 교육이 의무화되면서 s/w 교육 시장은 매우 커지는 것이 기정사실화되었다. 그리고 아두이노는 한번에 하드웨어뿐만 아니라 소프트웨어 분야까지 공부할 수 있어 교육용으로 큰 전망이 있는 분야인 것이 확실하다. 따라서 아두이노를 기반으로 한 하드웨어 파생제품과 프로그래밍 언어들이 계속해서 만들어지고 있다.
2) 교육용 Blocking Programming 언어의 대두
일반적으로 아두이노 프로그래밍 Sketch(IDE) 환경에서 간단하게 수행할 수 있다. 이 프로그래밍에 쓰이는 문법은 C, C++ 기반이어서 어린 학생들이 배우기에는 어려움이 있을 수 있다. 현재 교육용 프로그래밍 언어로 대표적으로 쓰이는 것이 스크래치 언어이다. 스크래치 S4A버전에서 아두이노에서도 스크래치로 프로그래밍 가능하게 되었고, 아두이노에서 이 스크래치 언어를 기반으로 만들어진 ardublock 이라는 프로그래밍 언어도 있다. 이러한 프로그래밍 언어는 어린 친구들도 아두이노 관련된 프로그래밍을 손쉽게 할 수 있도록 도와준다.
3) 아두이노를 기반으로한 수많은 교육용 하드웨어들의 대두와 가상 시뮬레이터
아두이노는 오픈소스 하드웨어 강자로 익히 알려져 있다. 아두이노와 레고를 결합하여 만들어진 레고 ev3 등 여러 가지 제품들이 존재하며 프로그래밍 도구까지 결합하였다. 또 기존 아두이노 하드웨어와는 달리 어린 아이들도 손쉽게 조립할 수 있는 하드웨어로 littlebits, ardu-ez, bitblock 등의 제품이 출품되었다.
하드웨어 없이 아두이노를 시뮬레이터로 동작하는지 확인할 수 있는 여러 프로그램이 존재한다. 이 프로그램은 기존 아두이노 보드가 없어도 가상으로 여러 버전의 보드를 선택하고 제작하여 코딩을 하고 시뮬레이션을 할 수 있다. 이러한 시뮬레이션의 장점은 하드웨어와 관련된 가격과 장소의 제한 없이 작업을 할 수 있다는 것이다. 하지만 현재 아두이노 시뮬레이터에는 단점이 있다.
첫째로, 어린 학생들이 교육용으로 쓰이기에는 적합하지 않다는 것이다. 그 이유는 단순히 아두이노 보드에만 국한되기 때문에 아두이노 보드를 기반으로한 수많은 교육용 하드웨어 즉, 어린아이들이 실제로 사용하는 DIO, BitBlock등과 같은 하드웨어에는 적용이 안되는점이다.
둘째로, 앞서 강조한 스크래치와 같은 교육용 언어가 아닌, 기존에 쓰던 어려운 Sketch언어로 프로그래밍 해야한다는 점이다. 이것은 교육용으로 의미는 없고 단순히 시뮬레이터에 국한되는 고급자(최소 관련학과 대학생 이상)용 시뮬레이터 인 것이다.
셋째로, 단순 시뮬레이터일 뿐 실제 보드와 똑같이 동작하는지 모른다는 것이다. 즉, 실제환경에 따라 오류가 있다는 것이다. 완벽하게 실제 하드웨어랑 똑같이 작동하지 않는다. (시뮬레이터일 뿐, 완전 똑같이 작동하는 애뮬레이터가 아님)
4) 사업방향 제시
3)에서 언급한 기존 시뮬레이터의 단점을 보완하면 새로운 사업 방향을 제시할 수 있다. 정리하자면, 스크래치 같은 교육용 언어를 사용하고 하드웨어 측면에서 교육용 아두이노 파생제품과 시뮬레이터를 융합한 제품은 존재하지 않으므로, 스크래치와 같은 교육용 프로그래밍 언어로 프로그래밍을 할 수 있고, littlebits 같은 하드웨어 제품을 가상으로 띄워서 프로그래밍 내용의 작동여부 등을 시뮬레이션 할 수 있고, 실제랑 똑같이 작동하는 완벽한 에뮬레이터를 구현하는 것이다.
'일상 > 교양' 카테고리의 다른 글
S/W 교육을 위한 Tool 소개 및 교육커리큘럼 제안 (0) | 2018.12.22 |
---|---|
SW 교육 관련 소개 및 사업 아이템 제안에 대해 알아볼까요? (0) | 2018.12.22 |
uTest의 서비스 및 비즈니스 모델을 분석해볼까요? (0) | 2018.12.21 |
소수자의 목소리를 듣는다는 것은 무엇일까요? (0) | 2018.12.17 |
"시민운동의 인식과 행동, 그리고 본질을 말하다" 후기 (0) | 2018.12.16 |