IoT / 개발자

"단돈 20달러" 코드버그로 사물 인터넷 프로그래밍 시작하기

Simon Bisson | InfoWorld 2015.10.06
사물 인터넷 장치를 프로그래밍하는 것은 PC 또는 모바일 장치 프로그래밍과는 다르다. 메모리도 넉넉하지 않고 화면이나 키보드도 없고 운영 체제도 없는 경우가 많다. 어떻게 시작해야 할까?

경제적인 방법 중 하나는 8비트 SOC인 일반적인 PIC 18F 마이크로컨트롤러를 중심으로 만들어진 코드버그다. 현재 20달러 미만의 가격에 판매 중이다. 구성품을 보면 4개의 I/O 핀이 있고 USB에 연결되는 개발자 보드, 5x5 LED 그리드, 버튼 한 쌍, 그리고 배터리 옵션이 있다. 즉, 간단한 웨어러블 장치를 만들 수 있다. 또한 코드버그를 예를 들어 라즈베리 파이와 같은 더 복잡한 기기에 연결하기 위한 확장 포트도 있다.

코드버그는 초등 교육을 염두에 두고 어린이들이 저렴한 비용으로 코드와 컴퓨터를 경험할 수 있도록 개발된 제품이지만, 사물 인터넷의 기반이 될 기본적인 하드웨어를 다루기 위한 입문용 제품으로도 좋다. ARM이나 인텔 프로세서를 탑재하게 될 사물 인터넷 기기는 소수에 불과할 것이고, 그 중에는 네트워크 연결 기능이 없는 사물 인터넷 기기도 있을 것이다.

코드버그는 한때 전문적인 컨트롤러 개발자 영역에서 사용되던 기기가 이제 영화표 두 장보다 저렴한 가격으로 판매된다는 점에서 흥미로운 사례다. 전문 개발자들은 C 컴파일러와 펌웨어 라이브러리를 사용했지만 보통 사람들의 용도는 훨씬 더 간단하다. 코드버그에서 개발은 클라우드에 호스팅되는 개발 환경과 컴파일러, 그리고 PC에 다운로드해서 USB를 통해 코드버그의 45KB 플래시 스토리지로 전송되는 펌웨어로 구성된다.

코드버그를 프로그래밍하기는 쉽다. 필자는 codebug.org.uk에서 Create 버튼을 누르면 나타나는 개발 환경의 시각적인 프로그래밍 도구를 사용해서 5분 만에 간단한 카운터 애플리케이션을 만들었다. 이 프로그래밍 도구는 블로클리(Blockly)라는 그래픽 개발 도구와 C 비슷한 프로그래밍 언어, 두 가지 코드 작성 옵션을 제공한다. C 비슷한 언어는 아직 편집은 할 수 없지만 블로클리 문이 전통적인 코딩 환경으로 어떻게 변환되고 코드버그 컴파일러에서 어떻게 사용되는지는 볼 수 있다.

블로클리는 기본적인 IoT 개발을 시작하기 위한 수단으로 좋다. 퍼즐 조각을 맞추듯이 루프, 표준 함수, 변수를 연결하고 코드버그의 I/O 포트, LED 매트릭스를 사용한다. 먼저 버튼 상태 변경 또는 클록 틱에 대한 두 개의 대기 옵션으로 사용하면 기본적인 논리와 연산 함수를 통해 아날로그 및 디지털 입력으로 작동하는 애플리케이션을 구축할 수 있다.

그 외의 다른 명령을 사용해서 LED 매트릭스를 구성하고 스프라이트를 배치할 수 있다. LED의 각 행과 열을 2진수(10진수로 인코딩)로 다룰 수 있으므로 수동으로 LED 패턴을 만들 수도 있다. 스프라이트는 기본적인 5x5 그리드에서 만들거나 문자 스프라이트를 사용해 개별 문자와 문자열이 LED를 가로지르도록 할 수 있다. 코드 블록 명령은 스크롤 방향을 처리하므로 I/O 포트와 버튼을 사용해 LED 상태를 제어하는 간단한 인터랙티브 애플리케이션을 제작할 수 있다.

애플리케이션은 프로그램 요소를 끌어다 개발 화면 위에 올려놓는 방법으로 만든다. 명령은 루프에 연결되고 블록은 색으로 구분되므로 I/O를 다루는 부분과 변수를 다루는 부분을 금방 알아볼 수 있다. 필자의 첫 애플리케이션은 기기를 켜면 LED 매트릭스 위로 숫자를 스크롤하는 간단한 타이머였다. 내장된 타이머 틱을 사용해서 문자 스프라이트로 count 변수의 내용을 표시했고 이 count 변수는 루프를 통과할 때마다 증가하도록 했다.

두 번째 애플리케이션은 조금 더 복잡하게 기기의 I/O 포트를 사용해 LED 상태를 변경하는 방법을 사용했다. I/O 포트는 집게를 사용해서 코드버그를 외부 구성 요소에 연결하도록 설계되었지만 I/O 포트 패드는 터치도 인식한다. 필자는 특정 패드를 터치할 때 접지 핀을 테스트하는 방법을 사용했다. 즉, while 루프를 사용해서 테스트를 반복하면서 기기의 아래부터 위로 한 줄씩 LED가 켜졌다 꺼지도록 했다.

코드버그의 클라우드 IDE에는 간단한 기기 에뮬레이터가 내장되어 있으므로 테스트를 위해 기기에 코드를 설치할 필요가 없다. 에뮬레이터를 사용해서 LED 상태를 보고 I/O 포트를 토글할 수 있다. 준비가 다 되면 코드를 다운로드해 설치한다. 코드를 컴파일한 프로그램의 크기는 몇 킬로바이트에 불과하므로 시간도 걸리지 않는다. 몇 초 만에 기기에서 애플리케이션을 실행할 수 있다. 또한 플래시의 펌웨어이므로 코드버그를 꺼도 사라지지 않는다. 다만 같은 이유로, 다른 앱을 설치하려면 먼저 기기를 리셋해야 한다.

라즈베리 파이와 통합하면 활용도가 훨씬 더 커진다. 코드버그는 그 자체로는 아무런 연결 기능도 없는 단순한 기기지만 확장 포트를 파이의 GPIO 소켓에 연결하면 한 차원 높은 IoT 개발의 문이 열린다. 게이트웨이도 만들 수 있다.

코드버그 포트에서 읽힌 값을 처리해 파이로 가져와 추가로 가공해서 네트워크 엔드포인트로 전송할 수 있다. 라즈베리 파이는 고차원 운영 체제와 언어를 지원하므로 리눅스와 파이썬 또는 윈도우와 C#으로 기기 데이터를 읽고 처리할 수 있으며, 클라우드 서비스로의 네트워크 연결도 지원한다. 코드버그에서 기본적인 센서 또는 액추에이터 코드를 작성하고 라즈베리 파이를 IoT 게이트웨이로 사용할 수 있다. 더 강력한 프로세서와 메모리, 네트워크 연결을 갖춘 라즈베리 파이에 잘 어울리는 역할이다.

쉽게 배울 수 있고 기본적인 프로그래밍 환경을 갖춘 코드버그는 기대 이상으로 유연하며, 간단한 컨트롤러 소프트웨어 개발에 유용한 제품이다. 완전한 IoT 프레임워크를 구축할 수는 없지만 센서, 버튼, 기본적인 시각 및 전기적 I/O와 연계해 작동하는 코드를 작성할 수 있다. IoT 네트워크의 엔드포인트가 될 단순한 기기가 바로 이런 형태다. 연령에 관계없이 초보자도 IoT 개발을 시작할 수 있도록 돕는다는 측면에서 코드버그와 같이 기기의 중요성이 점점 더 커지고 있다. editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.