Microsoft Windows 데스크톱과 Arduino의 만남: 제조업체의 꿈?
DigiKey 유럽 편집자 제공
2017-09-26
제조업체 커뮤니티는 새로운 아이디어로 넘쳐납니다. 그중 상당수는 기술의 이용과 관련이 있으며 새로운 서비스 제공 방식을 제시합니다. 이전에는 가능하다고 생각지도 못했던 아이디어로 삶의 질을 높여주는 경우도 있습니다. 이러한 아이디어를 가진 유능한 인재들이 제품을 설계하여 출시하기까지 상당한 어려움이 따를 수 있습니다. 신진 기업가들은 시장에 처음 진출하는 것이 매우 어려우며 빠른 개발 단계가 필수적임을 실감하게 됩니다. Arduino, Raspberry Pi, BeagleBone Black 등과 같은 내장형 단일 기판 컴퓨터(SBC)를 플랫폼으로 선택하는 제조업체가 빠르게 증가하고 있습니다. 대부분의 SBC에서는 Linux를 운영 체제로 선택하고 있습니다. 뛰어난 유연성과 많은 기능을 설계에 통합하고 있지만, Linux를 시작하려면 높은 숙련도가 요구되므로 오픈 소스 운영 체제를 사용하는 데 자신이 없는 경우 사용을 주저하게 됩니다. Arduino는 운영 체제를 사용하지 않는다는 점에서 예외입니다. 하지만 이는 임베디드 설계의 실제 인터페이싱에 대한 문제에 대해 단순성과 프로그래밍 편의성을 제공하는 데 있어 Arduino의 신뢰성에 아무런 영향도 미치지 않습니다. 제조업체 커뮤니티, 특히 신규 전자 부품 제조업체에서의 엄청난 인기 덕분에 Arduino는 전자 제품 애호가들의 관심을 재연하여 많은 새로운 제품 아이디어에 대한 상상력을 자극한다는 평가를 받고 있습니다.
신제품 개발의 측면에서, 많은 제조업체들이 마주하는 문제점은 Arduino가 제공하는 최고의 기능을 Microsoft® Windows의 사용자 및 응용 제품 숙련도와 결합하는 시제품을 제작하는 방법을 찾는 것입니다. SPI, I2C, UART 등과 같은 다양한 연결 옵션과 GPIO, PWM 및 ADC 주변 장치를 비롯하여 Arduino는 설계를 실제 세계와 연결하고 실제 세계를 감지할 수 있는 신뢰성 높은 방법을 제공합니다. 응용 제품 개발의 관점에서 개발자들은 Microsoft Visual Studio IDE에서 Linux 대신 C#, Java, Python 등과 같은 언어로 데스크톱 응용 제품을 개발하는 데 더 익숙할 것입니다. 최근까지도 Windows 데스크톱과 Arduino의 다양한 도메인을 통합할 수 있는 간편한 방법이 없었지만, 이제 DFRobot의 LattePanda라는 SBC를 통해 간단히 통합할 수 있습니다(그림 1).

그림 1: DFRobot의 LattePanda.
콤팩트한 크기로 제공되고 Microsoft Windows 10 Home Edition이 미리 설치된 단일 기판 Windows 컴퓨터인 LattePanda는 1.8GHz에서 실행되는 Intel® Cherry Trail Atom Z8350 쿼드 코어 마이크로 프로세서와 Arduino 호환 Atmel ATmega32u4 코프로세서를 호스트합니다. 이 시스템은 정식 Windows 10 시스템이며 축소형 IoT 버전이 아닙니다. 32GB e-MMC 스토리지(2GB RAM 기판) 또는 64GB 스토리지(4GB RAM 버전)의 두 가지 모델이 제공됩니다. LattePanda 기판은 Windows 10 키를 정품 인증하지 않고도 사용할 수 있습니다. LattePanda는 USB 2.0 및 USB 3.0, 100Mbps 이더넷 포트, HDMI 출력, 3.5mm 오디오 소켓, microSD 소켓, Bluetooth 4.0, Wi-Fi 등을 표준 연결 옵션으로 제공합니다. 그림 2는 LattePanda의 주요 부품과 인터페이스를 보여줍니다. 기판은 마이크로 USB 소켓을 통해 공급되는 단일 5VDC, 2.5A 전류에 의해 작동됩니다. 전력 어댑터가 작동 중에 최소 2.3A 이상을 공급할 수 있어야 LattePanda가 부팅 중에 리셋되지 않습니다. LattePanda는 치수가 88mm x 70mm(3.46" x 2.76")에 불과하여 공간 제약이 있는 설계에도 충분히 통합될 수 있습니다. 인클로저 내에 배치하려는 경우 LattePanda 기계 사양과 3D 모델 파일은 기판의 포럼에서 확인할 수 있습니다. 기판을 비좁은 공간에 장착할 경우 정상 작동 중에 기판이 매우 뜨거워지므로 팬을 통해 강제 공랭 방식으로 냉각하고, 적절한 방열판을 설치하는 것이 좋습니다. LattePanda과 함께 맞춤형 구리 방열판 세트를 사용할 수 있습니다. 기판 상에 5VDC 팬 공급 장치가 있습니다.

그림 2: LattePanda의 주 부품 및 인터페이스.
Windows 운영 체제 이외에 Microsoft Visual Studio와 Arduino IDE가 기판에 미리 로드되어 있습니다. TightVNC와 같은 적절한 가상 네트워크 컴퓨팅(VNC) 단자 응용 제품을 사용하거나 LattePanda 1074 x 600 7인치 LCD 디스플레이 패널을 해당 터치 패널과 연결하여 헤드 없이 기판을 작동할 수 있습니다. 디스플레이와 정전 용량 방식 터치 패널 모두 FFC 케이블과 ZIF 소켓을 통해 LattePanda에 연결됩니다.
다양한 주변 장치 IO 사용의 측면에서 Windows와 Arduino는 훌륭한 조합으로 간주합니다. 그림 3은 사용 가능한 핀 출력을 보여줍니다. Atom 신호와 ATmega32u4 신호를 모두 사용할 수 있으며 대부분의 신호는 Arduino에서 24핀 2열 소켓을 통해 제공됩니다. Atom IO는 그림 3의 U1 영역에서 확인할 수 있습니다. 20개의 모든 GPIO 핀(아날로그 A0 ~ A5 및 디지털 D0 ~ D13)에서는 5V 논리를 사용하며, 모든 핀을 입력 또는 출력으로 사용할 수 있습니다. 그중 12개 핀을 아날로그 입력용으로 개별 설정할 수 있습니다. 그림 3의 U2 영역을 참조하세요. 센서 또는 장치를 IO에 연결할 경우 해당 센서 또는 장치에서 5V 논리를 사용하는지 확인하세요. 3.3VDC 장치를 사용하려면 논리 수준 컨버터가 필요합니다. 각 아날로그 핀은 분해능이 10비트이며 입력 전압 범위가 0VDC ~ 5VDC인 1,024개 값을 제공합니다. 핀 D3, D5, D6, D9, D10 및 D13을 8비트 PWM 출력으로 사용할 수 있습니다. 또한 핀 D7, D3, D2, D1 및 D0을 사용하여 다양한 조건에서 외부 인터럽트를 트리거할 수 있습니다. Arduino의 전통에 따라 표준 깜박임 LED 스케치에 사용 가능한 D13에 LED가 연결되어 있습니다.

그림 3: LattePanda - 주변 장치 핀 출력.
D9, D10, D11, A0, A1, A2를 비롯한 일부 Arduino 핀은 코어 Arduino 커넥터에 표시되며 DFRobot 중력 센서에도 사용할 수 있습니다.
ATmega32u4 코어에서 실행 중인 응용 제품과 Atom에서 실행 중인 응용 제품 모두에서 핀에 접근할 수 있습니다. 표준 GPIO 기반 IO 이외에 핀 헤더에서 I2C 및 SPI를 통한 직렬 통신도 이용할 수 있습니다. 또한 6비트 ICSP 커넥터가 제공됩니다. Visual Studio에서 사용할 수 있는 LattePanda Firmata 오픈 소스 라이브러리가 제공되므로 Windows 응용 제품에서 Arduino GPIO 핀을 쉽게 사용할 수 있습니다. 따라서 응용 제품에서 클래스 함수를 사용하여 핀에 접근하고 핀을 제어할 수 있습니다. 사용 가능한 라이브러리 함수에 대한 자세한 내용과 다운로드 가능한 개별 Visual Studio C# 예제 파일은 여기에서 확인할 수 있습니다.
그림 4: 기판 실장형 LED를 깜박이는 코드에 대한 Visual Studio 화면 캡처.
모든 기능이 올바르게 작동하는지 확인하려면 그림 4에서 Firmata 클래스 라이브러리를 호출하는 Visual Studio C# 코드를 참조하세요. 이 코드를 실행하면 기판 실장형 LED가 깜박입니다. Arduino의 C 기반 코드 구조와 함수를 잘 알고 있다면 클래스 함수가 Arduino 스케치에 사용되는 함수와 비슷하다는 것을 알 수 있습니다.
LattePanda에서는 기판에 맞게 맞춤 설계된 센서를 사용할 수 있으므로 응용 제품을 매우 쉽게 생성할 수 있습니다. 총 14개의 센서와 연결 케이블로 구성된 중력 센서 시험용 키트에는 온도 센서, 광센서, 가스 센서, 불꽃 센서, 아날로그 회전 센서, 디지털 누름 버튼, 다양한 색상의 LED 및 계전기 모듈이 포함되어 있습니다. 이러한 부품은 기판에 있는 6개의 3핀 중력 커넥터에 연결됩니다. 핀 출력은 그림 3을 참조하세요.
센서, 액추에이터 및 디스플레이에 간편하게 연결하는 다른 방법으로 기판의 I2C 버스를 사용할 수도 있습니다. Firmata 라이브러리에서는 wireBegin, wireRequest, didI2Cdatareceive 등과 같은 함수를 사용하여 Visual Studio 응용 제품과 데이터를 직접 주고 받는 데 필요한 클래스 함수를 제공합니다. 아래 예에서는 Adafruit의 I2C 3축 가속도계 평가 기판을 사용합니다. 이 기판에서는 Analog Devices의 ADXL345 초저전력 고분해능 3축 MEMS 센서를 사용합니다. MEMS 센서는 그림 5와 같이 LattePanda에 연결됩니다.

그림 5: Adafruit의 ADXL345 3축 MEMS 센서를 LattePanda에 연결하는 방법.
핀 6(노란색 전선 SDA) 및 핀 8(파란색 전선 SCL)에 연결된 I2C와 핀 22(5V) 및 핀 21(GND)을 통해 전력이 공급됩니다.
그림 6의 소스 코드는 기본 센서 주소 0x53 및 기본 측정 범위 0x2D(2G)를 사용하여 작성된 센서 기판을 보여줍니다. 그런 다음 센서에서 지속적으로 데이터를 판독하여 X축, Y축, Z축 판독값으로 구문 분석한 후 콘솔 화면에 표시합니다.
그림 6: I2C 인터페이스를 통한 ADXL345 3축 MEMS 설정 및 판독을 보여주는 C# 코드.
위의 두 예에서는 LattePanda를 사용하여 응용 제품을 빠르게 생성할 수 있는 방법을 보여주며, 응용 제품을 빠르게 개발하여 시장에 배포할 수 있도록 사전 인증된 플랫폼이 기판에 제공된다는 사실을 알려줍니다. 관련 NRE 비용, 위험 및 출시 준비 기간을 감수하면서 적절한 내장형 설계를 처음부터 다시 개발할 필요 없이 SBC를 사용하여 몇 주 이내에 설계를 구현할 수 있습니다. 설계를 출시하고 고객 설치를 통해 시장을 선점한 후 대량 제작으로 비즈니스를 지원할 수 있다면 엔지니어링 팀에서는 LattePanda 포럼에 제공된 기계 모델을 최대한 활용하여 맞춤형 설계에 대한 자재 명세서(BOM)를 준비할 수 있습니다.
LattePanda는 다양한 응용 분야에서 사용할 수 있지만 가장 적합한 분야는 사물 인터넷(IoT) 솔루션입니다. Wi-Fi 또는 이더넷 통신을 통해 다양한 유/무선 연결 센서에서 실시간으로 데이터를 읽고, 결과를 집계한 후 클라우드 분석 플랫폼에 전달하는 데 충분한 컴퓨팅 리소스와 연결 리소스가 지원됩니다. 이 게이트웨이 방법은 산업용 사물 인터넷(IIoT) 응용 제품에서 특히 인기를 얻고 있습니다. ‘포그(fog)’ 컴퓨팅이라고도 하는 이 방법에서는 클라우드 응용 제품이 응답할 때까지 대기할 필요 없이 일부 제어 기능을 로컬로 실행할 수 있으므로 지속적인 클라우드 연결에 대한 종속성이 낮습니다. 한 예로, 특정 온도에 도달하면 에어컨 장치를 켜는 경우를 들 수 있습니다. 온도 센서와 공장 액추에이터를 게이트웨이에 로컬로 배치하면 추가적인 통신 비용, 대기 시간 제어, 클라우드 컴퓨팅 리소스 없이 찬 공기에 대한 수요를 맞출 수 있습니다.
Microsoft의 Azure IoT 허브 플랫폼은 LattePanda SBC를 완벽하게 지원하는 인기 있는 클라우드 컴퓨팅 플랫폼입니다. GitHub 저장소에는 기판에서 Azure 플랫폼과 통신하는 데 사용되는 절차가 문서화되어 있습니다. 이 정보는 LattePanda에 제공된 정보와 별도로 제공됩니다. 개발 및 테스트 절차를 원활하게 수행할 수 있도록 Microsoft에서는 IoT 허브에 대한 연결을 테스트하는 Node.js 샘플 파일을 제공합니다. 샘플을 다운로드하기 전에 Azure 포털을 사용하여 Azure 계정을 설정하고 새 IoT 장치를 생성해야 합니다(그림 7).

그림 7: 새 Azure IoT 허브 삽입부 생성.
그림 8은 허브 삽입부 세부사항을 설정하고 호스트의 이름을 지정하는 방법을 보여줍니다. 이 프로세스에서는 LattePanda에서 센서를 찾아서 Azure IoT 허브에 연결하는 데 사용되는 자격 증명(연결 문자열 및 액세스 키)을 제공합니다. 이 프로세스를 완료하고 나면 제공된 'simple_sample_device.js' 파일을 편집하고 연결 문자열을 입력한 후 코드를 작성하여 실행할 수 있습니다. Azure IoT 허브 내에서 DeviceExplorer 유틸리티 기능을 사용하여 허브에서 LattePanda로부터 수신하는 메시지를 확인할 수 있습니다.

그림 8: Azure IoT 허브 - 새 장치 등록.
통신이 올바르게 설정되는 경우 Azure의 서비스를 사용하여 응용 제품의 설계를 처리할 수 있습니다. 예를 들어, Azure 스토리지 서비스를 사용하여 센서 판독 표를 작성할 수 있습니다. 센서 데이터로부터 값 및 추세를 해석, 분석, 표시할 수 있는 다른 Azure 앱으로는 Azure Stream Analytics 및 Azure Power BI가 있습니다.

그림 9: Azure 스토리지 기능을 보여주는 광센서 Node.js 예제.
그림 9는 핀 ‘A0’에 연결된 중력 광센서에서 값을 판독한 다음 Azure 스토리지 표에 저장하는 Node.js 코드 예제를 보여줍니다. Azure 스토리지와 통신하는 기능은 빨간색으로 강조 표시됩니다.
LattePanda를 사용하면 매우 쉽게 개발할 수 있습니다. 이 플랫폼은 다양한 공급업체 설명서, 온라인 커뮤니티 포럼과 자체 GitHub 저장소에 포함된 기계 모델, 라이브러리 및 코드 예제를 통해 체계적으로 지원됩니다. 또한 핵심 운영 체제인 Microsoft Windows 10은 많은 상업용 개발 환경과 응용 제품에서 체계적으로 지원됩니다. Arduino 코프로세서는 광범위한 간행물, 개발자 및 프로그래밍 리소스 커뮤니티를 보유하고 있습니다. Arduino IDE는 가장 널리 사용되는 IDE 중 하나입니다. Microsoft Visual Studio는 C#, Python, F#/.Net 등과 같은 널리 사용되는 다양한 프로그래밍 언어를 통한 개발을 지원하는 이상적인 IDE컴패니언입니다.
결론
LattePanda는 제조업체 커뮤니티에 새로운 개념을 도입합니다. Arduino의 간편한 실제 인터페이스를 광범위한 Windows 개발자 및 응용 제품 커뮤니티와 결합하면 내장형 설계 범위를 대폭적으로 확장하여 무한한 신제품 출시 기회가 보장됩니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.




