[39호]아두이노 레오나르도를 품은 윈도우10 컴퓨터 LattePanda(라테판다)
아두이노 레오나르도를 품은 윈도우10 컴퓨터
LattePanda(라테판다)
글 | 금강초롱(blog.naver.com/crucian2k3)
임베디드 세계에 절대강자가 등장한 것으로 보입니다. 팬더곰 눈을 연상시키는 로고가 선명한 라테판다라는 보드인데요 널리 알려진 라즈베리파이를 통해 무언가를 해보려 하면 늘 상 아쉬운 것이 A/D컨버터가 없다는 점이며 아두이노 보드로 좀 근사한 무엇인가를 해보려고 한다면 성능에 대한 갈증을 느끼게 된다는 점입니다. 이러한 시장 상황에 따라 32비트 MCU를 장착하기도 하고 Wi-Fi, BT4.0 등으로 중무장한 보드가 이미 출시되어 있기는 합니다만 모두 PC 혹은 리눅스 운영체제와 연동하여 동작한다는 특성이 있습니다.
금번에 소개하는 라테판다는 윈도우10이 구동되는 초소형 PC에 ATmega32u4로 구성된 아두이노 레오나르도 칩이 코프로세서로 설치되어 있어 뭔가 재미난 일을 하게 해줄 수 있을 것 같은 기대감이 들기에 충분합니다.
PC로서의 성능은 인터넷 웹서핑을 하거나, 유튜브 동영상을 보거나, 지금 작성 중인 한글워드프로세서를 사용하는데 거의 불편함이 없는 수준입니다. 그냥 느끼는 피상적 성능은 넷북급 PC 내지는 이동성을 중시하는 저가형의 윈도기반의 태블릿PC 정도를 다루는 느낌 정도입니다.
개발환경은 PC 인지라 무엇을 설치하던 크게 상관이 없을 수 있습니다만 제작사 권장으로는 Visual Studio 2015를 설치하고 firmata라고 하는 프로토콜로 PC와 아두이노를 연결하여 여러가지 재미있는 실험을 해볼 수 있도록 제시하고 있습니다.
여기서 미리 언급해 두고 싶은 사항은 라테판다는 일반 고성능 PC가 아니므로 화려한 그래픽작업이나 3D게임 등을 염두해 두셨다면 재고해 보시라 하고 싶습니다.
이제 Windows10 + 무선랜 + 블루투스4.0 + USB3.0 + 아두이노 레오나르도로 탄탄하게 준비된 라테판다의 매력 속으로 빠져 들어가 보겠습니다. 여기에 덧붙여 7인치 IPS DISPLAY와 터치스크린을 장착하면 차량 등에서도 자유롭게 사용가능한 상태가 되며 이 제품을 활용하여 HMI(Human Machine Interface) 등 제어판넬 등으로도 손쉽게 적용을 수 있을 것으로 보입니다.
본 리뷰는 (주)엔티렉스의 지원을 받아 작성 하였습니다.
1. 개봉 및 Wi-Fi 안테나 설치하기
박스 외관은 라즈베리파이와 별반 다르지 않은 듯 합니다만 내용물은 많은 차이가 보입니다. 가장 눈에 띄는 부분이 금속 쉴드판이며 3핀 몰렉스 커넥터가 일렬로 쭉 늘어져 있어서 실험을 쉽게 해보라고 만들었구나 하는 생각이 들게 합니다.
제일 먼저 할 일은 Wi-Fi 안테나를 연결하는 작업입니다.
이러한 류의 보드는 인터넷에 연결되지 않으면 거의 정상적으로 사용하기 힘듭니다. 라테판다 박스를 열면 Wi-Fi 안테나용의 매우 작은 금도금커넥터가 붙은 안테나가 보이며 USB커넥터 부근에 붙이면 됩니다.
2. 윈도우10 인스톨
2.1. 라테판다용 파워서플라이 관련 사항
라테판다에 전원을 안정적으로 공급하기 위해서는 DC5V/2A 이상의 전원이 필요합니다. PC와 같은 수준의 능력을 발휘하는 제품이므로 안정적인 동작을 기대한다면 당연히 전원도 충분한 것으로 준비해야 합니다.
필자가 라즈베리파이 보드 테스트 등에 주로 사용하는 S사의 DC5V2A충전기는 라테판다보드에서는 적절하지 않았습니다. 잘 동작하는 듯 보이다가도 일순간 재부팅을 유발하더군요. 하는 수 없이 아래와 같은 자작 전원을 연결해 실험을 진행 하였습니다.
이 글을 읽는 독자님들 중 라테판다보드가 재부팅하는 증상이 있다면 우선 견실한 전원으로 교체해 보실 것을 권합니다.
2.2 라테판다 켜는 방법
위에서 언급한 바와 같이 안정적인 전력을 공급하는 직류전원을 라테판다에 연결합니다.
· 권장 : DC5V/2.5A
추가적으로 무선키보드&마우스 및 HDMI 케이블 연결 등을 해두어야 윈도우10 초기화를 원활히 진행할 수 있습니다.
약 5초 동안 적색램프가 켜졌다가 꺼집니다.
보드 초기화가 일어나는 과정으로 전원이 투입된 직후 단 한번 일어납니다. 이때는 다른 버튼 등은 만지지 마시고 적색램프가 꺼질때 까지 잠시만 기다려 줍니다.
적색램프가 꺼진 것을 확인한 후 약 1초간 파워버튼을 눌러주면 부팅이 진행됩니다.
만일 HDMI포트에 모니터가 연결된 경우나 LCD 디스플레이를 이미 끼워 두었다면 부팅장면을 보실 수 있습니다.
2.3. 지역정보 등 초기화
라테판다 32G 버전은 이미 Windows10이 라이센싱 되어 있습니다.
그렇다 하더라도 최초 설치는 필수 사항입니다. HDMI케이블, USB키보드, 마우스 등을 연결하고 전원을 투입합니다.
표준시, 국가 등 로케일 정보를 적절히 맞춰줍니다.
(대한민국 : Korea, Korean(Korea), Microsoft IME, (UTC+09:00)Seoul)
부팅하는 과정에서 무선랜 설정작업과 인터넷 접속이 진행됩니다.
라테판다를 사용할 유저 계정을 생성하면 일단 끝이 납니다.
아마도 한 이틀쯤 지나면 윈도우 업그레이드 안내창이 나올 것입니다.
3. 라테판다의 기술적 특성
3.1 라즈베리파이 재단의 최신 제품과 스펙 비교
참고 : www.dfrobot.com/index.php?route=product/product&product_id=1404 |
대표적인 차별점
· Co-Processor 장착 : Atmega32u4(아두이노 레오나르도 호환)
· 운영체제 설치 : 라이센싱 된 Windows10이 내장 출고됨(32G 버전)
· USB3.0 Port 지원 : 라테판다를 NAS 용도 등으로 활용시 위력 발휘 예상
· 고해상도 LCD DISPLAY 지원 : 1024×600의 고해상도 지원
3.2. 체리트레일 vs 베이트레일 CPU성능 비교
필자가 가끔 사용하는 10.1인치 윈도기반 태블릿 PC와 비교를 해봤습니다. DRAM의 용량이 1,947MB와 1,492MB로 라테판다가 약 500MB가 더 크며 그 외에는 별 차이가 없었습니다. 벤치마크 테스트에서는 수치상으로 약간 낮아 보이기도 합니다.
4. 개발환경 준비하기
4.1. Visual Studio2015 Community 설치하기
아래 주소에서 Visual Studio2015 Community를 다운받아 설치를 합니다.
www.visualstudio.com/downloads
이 글을 읽는 독자님들께서 좀 의아해 하실 수도 있습니다만 라테판다 자체가 PC이므로 PC기반의 각종 기능 구현을 위해서는 개발환경 중 무상으로 다양한 개발언어를 지원해주는 비주얼스튜디오2015커뮤니티 설치는 필수 불가결한 요소에 해당됩니다.
Free download를 누르면 아래와 같이 진행됩니다.
여기에서 중요한 것이 좌측편의 위 그림과 같이 “Custom”을 선택하여 개발환경이 모두 설치 되도록 선택하여야 번거로움을 덜 수 있습니다.
프로그램을 완전히 설치하는데 수 시간이 걸리므로 느긋하게 진행합니다.
4.2. 코프로세서(아두이노 레오나르도) 기본 기능 점검
보드에 있는 LED의 Blink테스트를 통해 기본적인 소통을 해 봅니다.
· 라테판다 바탕화면에 기본적으로 설치되어 있는 아두이노 아이콘을 더블클릭합니다.
· Blink 프로그램 예제를 files ▶ Examples ▶ 01.Basics에서 open 합니다.
· 시리얼포트를 Tools ▶ Serial Port에서 선택합니다.
· Upload를 합니다.
· 프로그램이 제대로 내려가면 청색 LED가 점멸하는 것을 볼 수 있습니다.
5. 보드 레이아웃
5.1. 각 핀의 특별한 기능 정리
· U1 : X-Z8300 코어
· U2 : ATmega32u4 코어
· 20핀 디지털 핀
· A0-A5, D0-D13, U2에 연결됨
· 5V신호체계, 40mA 입출력, 20k~50kΩ
· 풀업저항 내장 (기본 off)
5.2. 각 핀 기능
5.3. 보드 내 커넥터 정의
6. Visual Studio에서 아두이노 핀 제어하기
6.1. Firmata(퍼마타) protocol 환경 구성
라테판다에서는 기본적으로 c#상에서 돌려볼 수 있는 예제를 제시하고 있습니다.
여기에서 보드 내에 실장된 아두이노와 Windows10을 서로 소프트웨어적으로 연결해야 하는데 Firmata 프로토콜을 활용하고 있습니다.
Firmata 프로토콜은 원래 MIDI라는 전자악기에 사용된 시리얼 통신 프로토콜로 이를 변형시켜 PC와 아두이노 간에 데이터를 주거니 받거니 할 수 있도록 만들어진 것입니다. 이 Firmata를 사용하면 Visual C++와 같은 컴퓨터프로그램에서 아두이노의 I/O를 제어할 수 있게 됩니다. 이렇듯 아두이노와 PC가 연결되면 PC의 강력한 성능과 친근한 UI를 기반으로 사용하기 편리한 아두이노를 마음대로 제어할 수 있으므로 원격제어 원격모니터링 등을 매우 쉽게 소화해 낼 수 있을 것으로 봅니다.
에러처리를 위한 체크섬이나 CRC 등 검증바이트는 없는 방식이며 간편함과 단순함, 빠른 속도에 포커스를 두고 개발된 프로토콜로 보입니다.
6.2. 아두이노에 Firmata프로토콜 올리기
아두이노IDE ▶ 파일 ▶ 예제 ▶ Firmata ▶ StandardFirmata를 선택한 후 업로드를 합니다. 이 작업을 하면 아두이노와 PC가 Firmata 프로토콜로 서로 연결되게 됩니다.
잘 동작되는지 기본적인 테스트는 뒤에서 설명되는 BlinkYourBoard 프로그램으로 해보기로 합니다. 살짝 복잡해 보일 수도 있습니다.
6.3. C# 기반의 라테판다 제어용 라이브러리 살펴보기
6.3.1. 생성자(Constructor)
생성자는 아래와 같이 4가지 종류가 있습니다.
필요에 따라 적절한 것 하나를 선택할 수 있습니다.
6.3.2. 환경설정(Configuration)
핀 동작 환경을 설정합니다.
윈도우10 쪽에서 이 명령이 아두이노로 넘어가면 해당 핀이 적절히 초기화 됩니다.
6.3.3. 디지털 제어신호
□ 디지털 출력 : pinMode 메소드와 결합하여 디지털 신호를 토글링 합니다.
□ 디지털 입력 : 디지털 핀의 최종 상태가 읽혀져 반환됩니다.
□ 디지털 입력 : 입력 핀으로 설정된 핀의 값이 업데이트 됩니다.
6.3.4. 아날로그
□ PWM 출력 : 8비트 펄스폭변조(PWM) 기능을 활용하여 아날로그 신호를 내보낼 수 있는 기능을 제공합니다.
□ 아날로그 신호 입력 : 10비트의 분해능을 가진 신호 6개를 받을 수 있습니다.
□ 아날로그 신호 입력 : 아날로그 입력을 새롭게 받을 수 있습니다.
6.3.5. 서보제어
서보를 제어하기 위한 각도 값을 지정된 핀으로 출력합니다.
6.3.6. I2C(TWI)
□ I2C통신초기화 : I2C버스를 마스터로 초기화를 합니다. 최초에 1회만 수행합니다.
□ I2C통신요구 : I2C 디바이스 쪽으로 데이터를 내보내거나 받을 수 있으며 만일 수신시 내부적으로 didI2CDataReveive()가 호출됩니다.
□ I2C통신 이벤트
7. C# 기반의 프로그래밍 테스트
7.1. 프로그래밍 절차 정리
필자가 라테판다를 접하며 가장 난해하였던 부분입니다만 이 부분을 나름대로 이해하고 정리하여 아래에 서술해 보았습니다.
일반적으로 아두이노향 체계에서 테스트하는 것과 약간의 차이가 있으며, 더군다나 c# 환경에서 코드가 만들어지고 실행되므로 초심자는 좀 어려워 할 수도 있습니다만 아래를 따라서 차근차근 해볼 수 있도록 최대한 자세히 언급해보고자 합니다.
○ Intel CPU : GUI 제공
○ ATmega32u4 : 실제 실행 액션
○ 상호연동 : Serial, 57600bps
7.2 디지털 출력 함수(digitalWrite) 테스트
디지털 출력함수 동작을 통해서 아두이노의 온보드 빌트인 LED인 D13을 점멸시켜 보도록 합니다. 아두이노를 맨 처음 배우면 테스트해보는 LEDBlink의 라테판다 버전이라고 생각하시면 됩니다.
이 짧은 예제 하나를 성공시키면 라테판다, Visual Studio c#, Firmata, Arduino를 두루두루 섭렵해보게 되는 것입니다.
□ 회로구성
아두이노 우노 R3 버전의 제품은 기본적으로 D13핀에 LED가 연결되어 있는 전통에 따라 아두이노 레오나르도 향으로 설계된 라테판다에서도 D13에 LED가 연결되어 간단한 테스트를 해볼 수 있습니다.( D13의 출력 ▶ High : LED On, Low : LED Off)
□ 소스코드 구조
□ blinkYourBoard의 소스코드 (Program.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace blinkYourBoard
{
class Program
{
static void Main(string[] args)
{
Arduino arduino = new Arduino();
arduino.pinMode(13, Arduino.OUTPUT);//Set the digital pin 13 as output
Console.WriteLine(“Blink Your Board.”); // 라테판다 화면에 메시지 출력
while (true)
{
// ==== set the led on or off
Console.WriteLine(“set the LED on”);
arduino.digitalWrite(13, Arduino.HIGH); //라테판다보드의 D13 LED on
Thread.Sleep(1000);//delay a seconds
Console.WriteLine(“set the LED off”);
arduino.digitalWrite(13, Arduino.LOW); //라테판다보드의 D13 LED off
Thread.Sleep(1000);//delay a seconds
}
}
}
}
□ blinkYourBoard 콘솔화면(도스창)
□ blinkYourBoard 프로젝트 소스코드 편집
7.3 디지털 입력 함수(digitalRead) 테스트
라테판다에 푸시버튼을 1개 연결하여 테스트를 해보기로 합니다.
본 리뷰의 주최 측에서 테스트를 위한 센서 세트를 배려해 주었으므로 지금부터는 여기에 담겨진 센서 등을 사용해서 간단한 테스트를 해 보도록 하겠습니다.
□ 회로구성
□ 소스코드 : digitalRead > Program.cs
새로운 솔루션을 하나 만든 후 아래 소스코드를 Program.cs에 부어 넣습니다. 또한 이전 예제에서 사용한 Arduino.cs도 솔루션에 포함시켜 컴파일 하여야 에러가 없이 정상적으로 컴파일이 됩니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace buttonDemo//your project name
{
class Program
{
// 인스턴스를 생성하고 기본 파라메터들을 초기화 한다.
static Arduino arduino = new Arduino();
static void Main(string[] args)
{
// pin9를 디지털 입력포트로 초기화 한다.
arduino.pinMode(9, Arduino.INPUT);
// 핀9를 한번 읽어 상태를 저장해 둔다.
int Value = arduino.digitalRead(9);
Console.WriteLine(Value);
// 이벤트 리스너를 등록해 입력으로 설정한 핀에 변화가 있거든 이벤트가 생기도록 한다.
// 즉, 계속하여 해당 포트의 상태가 변하였는지를 읽는(폴링) 하는 행위를 하지 않아도 된다.
arduino.digitalPinUpdated += Arduino_digitalPinUpdated;
while (true);
}
// 해당 핀에 업데이트가 발생하면 이 함수가 자동으로 호출이 된다.
private static void Arduino_digitalPinUpdated(byte pin, byte state)
{
Console.Write(pin);
Console.Write(“: “);
Console.WriteLine(state);
}
}
}
7.4 PWM(Pulse Width Modulation) 테스트
D3, D5, D6, D9, D10, D11은 PWM 기능을 지원하며 이 핀에 고휘도 LED를 연결하면 디밍 동작을 관찰해 볼 수 있습니다.
□ 회로구성
□ 소스코드 : pwm
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace analogWriteExample
{
class Program
{
// 인스턴스를 생성하고 기본 파라메터들을 초기화 한다.
static Arduino arduino = new Arduino();
static void Main(string[] args)
{
arduino.pinMode(9, Arduino.PWM);
while (true)
{
for (int i = 0; i <= 255; i++)
{
arduino.analogWrite(9, i);
Thread.Sleep(4);//delay 4ms
Console.WriteLine(i);
}
for (int i = 255; i >= 0; i–)
{
arduino.analogWrite(9, i);
Thread.Sleep(4);//delay 4ms
Console.WriteLine(i);
}
}
}
}
}
7.5 analogRead 테스트
아날로그 입력은 A0에서 A5까지에서 받을 수 있습니다.
□ 회로구성
□ 소스코드 : analogRead
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace analogReadExample
{
class Program
{
// 인스턴스를 생성하고 기본 파라메터들을 초기화 한다.
static Arduino arduino = new Arduino();
static void Main(string[] args)
{
int Value = arduino.analogRead(0); // A0를 읽는다.
Console.WriteLine(Value);
// 아날로그 입력에 변화가 생기면 이벤트 핸들러가 실행 된다.
arduino.analogPinUpdated += Arduino_analogPinUpdated;
while (true) ;
}
private static void Arduino_analogPinUpdated(int pin, int value)
{
if (pin == 0)
{
Console.Write(pin);
Console.Write(“: “);
Console.WriteLine(value);
}
}
}
}
7.6 Servo 테스트
D9에 연결된 서보모터를 0도에서 180도까지 제어를 해봅니다. 실험에 사용된 서보는 RBD-702MG로 금속기어가 들어간 제품입니다.
어떤 서보를 사용하여도 실험은 문제가 없을 것입니다.
□ 회로구성
□ 소스코드 : servo
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using LattePanda.Firmata;
namespace analogWriteExample
{
class Program
{
//
static Arduino arduino = new Arduino();
static void Main(string[] args)
{
arduino.pinMode(9, Arduino.SERVO);
while (true)
{
arduino.servoWrite(9, 170);//tell the servo motor go to the position in 180 degrees
Console.WriteLine(“–>servo motor go to the position in 180 degrees”);
Thread.Sleep(2000);//delay a seconds
arduino.servoWrite(9, 10);//tell the servo motor go to the position in 0 degrees
Console.WriteLine(“<–servo motor go to the position in 0 degrees”);
Thread.Sleep(2000);//delay a seconds
}
}
}
}
8. 7인치 디스플레이와 터치패널
라테판다는 외부에 7인치 IPS LCD와 10점 정전용량 감지방식(정전식) 터치패널을 연결할 수 있습니다.
외부에 HDMI를 통해 모니터가 연결되면 클론모드 혹은 확장모드로 운영할 수 있습니다. 이정도 가격의 제품에서 보여주는 이러한 기능은 놀라울 따름입니다.
해상도는 1024*600으로 매우 뛰어나며 터치 반응도 나쁘지 않다고 생각됩니다.
8.1 외관 살펴보기
□ 박스외관
박스는 7인치 LCD와 멀티터치 패널이 별도로 되어 있으며 커넥터가 매우 약하므로 주의하여 다뤄야 합니다.
□ 장착전 사진
버니어캘리퍼스로 측정해 본 결과 디스플레이면은 약 7.1인치가 나옵니다. 아직 시중에는 터치패널을 수납할 수 있는 case가 출시되지 않은 것으로 보여 집니다. 약간의 부주의로도 플랫 케이블이 손상 될 수 있으므로 주의하여야 합니다.
8.2. 라테판다 바탕화면 변경(테블릿모드)
Windows8.x 부터는 데스크탑과 태블릿모드가 동시에 지원되고 있습니다. 라테판다에 설치된 Windows10도 당연히 태블릿 모드가 되며 태블릿모드에서 어떻게 보여지는 지를 살펴보겠습니다.
□ 디스플레이 설정 변경하기
라테판다에 LCD패널이 연결되면 듀얼모니터 모드가 됩니다.
바탕화면>그래픽속성을 선택한 후 다중디스플레이에서 클론디스플레이를 선택하면 HDMI쪽 영상과 7인치 패널에서 동시에 화면을 볼 수 있습니다.
만일 7인치 LCD패널을 위주로 사용코자 한다면 태블릿 모드까지 변경해주는 것이 좋습니다.
전자액자와 유튜브 동영상을 돌려보고 있는 장면입니다.
커넥터가 매우 약하므로 실험 시 극도의 주의를 요합니다.
단 한번의 실수가 영구적 손상을 불러옵니다.
9. 스타터 센서 셋
라테판다는 6개의 3핀 몰렉스 커넥터를 실장하고 있습니다.
이 커넥터를 이용하여 디지털 3포트, 아날로그 3포트의 실험을 진행할 수 있으며 대체적으로 라테판다 및 아두이노 초심자를 타겟으로 한 센서들로 구성되어져 있습니다.
초등학생부터 중학생 정도의 학생들에게 아두이노의 개념을 설명하고 학습하는 데는 사용할만한 듯합니다.
신제품을 출시하면서 제품을 테스트해 볼 수 있는 센서키트까지 고려한 것을 보면 상당히 착실한 준비를 한 것으로 여겨집니다.
센서는 아두이노 진영이나 라즈베리파이 진영에서도 유명한 DFROBOT사 제품입니다.
참조 : https://www.dfrobot.com/index.php?route=product/category&path=36 |
다만 한 가지 유의사항이 있다면 몰렉스 3핀 커넥터는 5V전원이 인가되어 있으며 이 파워는 라테판다의 CPU에도 똑같이 사용되고 있습니다.
만일 DC모터, 서보 등 돌입전류가 큰 부하를 사용하는 경우 시스템이 재부팅하는 불상사가 생길 수 있습니다.
돌입전류가 큰 부하는 라테판다와 분리된 파워를 사용하는 것이 바람직해 보입니다.
10. 응용해 보기
라테판다는 윈도우기반 컴퓨터이므로 PC의 사용법에 익숙한 유저를 위한 GUI체계가 지원된다는 것은 매우 큰 강점이 아닐까 합니다.
열심히 구글링을 한 결과 github에 올려진 충분히 응용 가능성이 있는 Sample Code를 발견하였고 이를 바탕으로 실험 해본 결과물을 올려 봅니다.
우선 다음 주소에서 데모코드를 다운 받습니다.
github.com/LattePandaTeam/LattePanda-Development-Support
github에 올려진 파일을 윈도우 상에서 받는 방법은 동일합니다.
‘Clone or Download’를 클릭하면 zip 파일을 다운 받을 수 있습니다.
이렇게 다운받은 파일을 적당한 폴더에 풀은 후 Visual Studio에서 불러옵니다.
일전에 실험한 프로그램은 윈도우 콘솔상에서 I/O가 일어나는 프로그램이었으나 이 프로그램은 윈도우 상에서 라테판다의 UI를 구상하는 방법으로 구동이 됩니다.
보드에 실장된 D13 LED를 원격 제어해 ON/OFF 시킬 수 있으며 슬라이딩 바를 움직여 원하는 만큼 서보모터를 구동시킬 수도 있습니다.
또한 PWM을 활용하여 디밍 기능을 테스트해볼 수도 있으며 D11에 연결된 고휘도 LED의 밝기가 원격 제어됨을 확인할 수 있습니다.
□ 소스코드 : 윈도기반의 전형적인 프로그램 구조답게 Form파일과 어플리케이션이 혼합되어 있어 분량이 상당히 크므로 위 웹사이트에서 확인하거나 필자의 블로그(blog.naver.com/crucian2k3)에서 확인이 가능합니다.
11. 총평
한마디로 라즈베리파이의 장점과 아두이노의 장점만을 뽑아서 잘 다듬어 놓은 보드란 생각이 듭니다. PC로 무엇인가를 계획하고 있는 상황이고 가격과 사이즈가 걸림돌인 상황이라면 라테판다는 충분히 고려해 볼 만한 제품이 아닌가 생각됩니다. 또한 교육현장에서 아두이노를 비롯하여 IOT과목을 가르치는 상황에서 좀 더 고수준의 임베디드 프로그래밍을 목표로 하고자 한다면 이 역시 고려해볼 만하다고 봅니다. 즉, PC와 아두이노가 한 몸에 있으므로 매우 낮은 비용으로 효과적인 교육환경을 구성할 수 있게 됩니다. 외부에 5V/2.5A전원, 키보드, 마우스 그리고 와이드모니터가 한 대 있다면 훌륭한 교육장비가 완성됩니다.
이번 리뷰의 전 과정을 라테판다 상에서 작성해 본 결과 워드작업이나 웹서핑을 하는데 아무런 걸림돌이 없음을 알 수 있었습니다. 전자앨범, 동영상플레이어, 원격제어장치, 웹서버, NAS, GAME 머신 등의 용도는 실로 무궁무진할 것으로 봅니다.
필자가 금번에 사용한 모델은 2GB 모델로 다중작업이 아닌 상황에서는 크게 문제가 되지 않았으나 여러 창을 열고 작업을 하는 경우에는 램 부족에 따른 랙 현상이 간혹 보이는 것을 확인 하였습니다. 좀 더 쾌적한 윈도 환경을 원한다면 4GB램에 64GB모델을 검토해 보는 것이 바람직해 보입니다.
퓨전이라는 말을 현대사회에서는 자주 쓰곤 합니다만 금번에 출시된 라테판다는 진정한 퓨전 IOT기기가 맞겠다고 생각합니다. 출시와 동시에 발표된 7인치 IPS LCD와 정전식 10점 터치패널의 색상과 감도는 매우 우수하여 원한다면 태블릿 기기로의 전환도 어렵지 않게 꾸밀 수 있을 것으로 생각되었습니다. 라테판다가 아두이노를 기반으로 하는 IOT세계에 신선한 기폭제가 되기를 바라며 이번 리뷰를 마칩니다. 감사합니다.
자료참고
1. 라테판다 공식홈페이지 : www.lattepanda.com/docs/
2. DFROBOT 센서 : www.dfrobot.com/index.php?route=product/category&path=36
3. 성능 비교검증 www.dfrobot.com/index.php?route=product/product&product_id=1404
4. 임베디드 공작소 : cafe.naver.com/embeddedworkshop/book4866534/1320
5. 뚝뚝이파파님의 블로그(c#에 대한 정보) : blog.naver.com/ambidext/220210257499
6. 가스센서에 대한 정보 : deneb21.tistory.com/279
7. PIR센서에 대한 정보 : fribot.blog.me/60203002180