'Iot'에 해당되는 글 3건

  1. 2018.01.12 Arduino vs. mbed 1
  2. 2017.03.20 대표적인 아두이노 보드의 특징
  3. 2017.03.09 드론에서 사용되는 무선 통신 1


영국의 ARM사가 주도하는 mbed는 ARM-cortex기반의 MCU를 사용하여 IoT제품이나 여러 전자제품의 프로토타이핑(prototyping)을 쉽게 제작하고 Cloud 서비스 테스트까지 할수 있는 플랫폼으로, Arduino와 같은 해에 시작하고 2009년에 베타서비스를 시작했지만 2013년에야 mbed를 오픈하기로 결정하고 주변 디바이스, API, 기판 설계 데이터, 펌웨어 등을 공개하면서 주목받기 시작하였습니다.



사실 기존에는 Arduino라는 가볍고 쉬운 AVR이 존재했지만 ARM 계열에서는 Arduino Due 제외하고는 가볍고 쉬운 AVR은 없었고 대부분 전문 컴파일러를 사용하여 제작하였기 때문에 전문가가 아니면 사용하기가 어려웠었습니다. 그렇기 때문에 ARM에서도 Arduino와 같이 접근성이 좋고 빠르게 개발이 가능하도록 만든 소프트웨어가 바로 "mbed"라는 것입니다. 아직까지 국내에서는 Arduino보다 인지도가 적은 편이지만 Ardunio보다 더 좋은 성능으로 IoT개발 보드 시장 영역을 넓혀가고 있다는 것입니다.


참고로 ARM사의 cortex-M4를 MCU의 경우에는 IoT에서 가장 중요한 화두인 전력문제에 있어서 저전력기술을 활용함으로써, 100~180MHz로 동작하는 동안 매우 낮은 동적 전력 사용량을 제공하며, 경쟁사 유사제품에 비해 7배 낮은 정적 소비 전력을 보여줍니다. 


웹브라우저를 통한 온라인 컴파일 및 소스 버전 관리 기능(Web-IDE)을 제공하여 어떤 OS에서든 웹브라우저에서 온라인으로 컴파일이 가능하고, 프로그램 업로드는 별도 장비없이 USB에 연결만 하면 가능하도록 되어 있다는 것입니다. 게다가 커뮤니티를 통한 라이브러리 공개 및 방대한 개인 위키 페이지 제공으로 협업에 유익하고 무엇보다, 모든 사용자가 기본적으로 같은 하드웨어를 이용하고 있기에 확장 보드가 아닌 이상 바로 적용 가능하다는 것입니다.



mbed의 장점으로는 기본적으로 MCU의 성능이 Arduino보다 좋기 때문에 고성능으로 더 높은 사양대를 커버할 수 있지만, Ardunio에 비해 상대적으로 사용자가 적다는 단점이 있습니다. 온라인 컴파일러에서 브레이크 포인터를 사용하여 스텝별 실행 및 내부 레지스터, 변수 등의 디버깅은 불가능하고 프로그램 업로드 방식에 있어서도 파일을 추출하고 이 파일을 다시 보드에 업로드 시켜야하는 상대적으로 Arduino에 비해 귀찮은 과정도 단점으로 여겨질 수 있습니다.


Arduino와 mbed 차이점으로, 모든 Arduino는 Atmel MCU 사용하여 작은 메모리와 제한된 기능을 가지고 있으며 느리다는 것입니다. 대부분의 Arduino 보드들은 ATmega328이고, Mega보드는 ATmega2560이며, 새로운 Due보드는 ARM Cortex-M3를 사용한다. 반면에 mbed 플랫폼은 더 빠르고, 메모리도 크고, 더 많은 기능을 가진 ARM Cortex MCU를 사용합니다. 사실 공식적인 mbed 플랫폼들은 Cortex-M0, M3와 M4를 기반으로 만들어진다는 것입니다.


프로토타입을 만드는데는 둘 다 우수하지만 프로토타입을 만든 후에 생산을 하고자 할 때는 mbed가 더 scalable한 플랫폼이기 때문에 더 낮고, 아주 간단한 응용제품을 제외하고는 ARM MCU들이 같거나 더 싼 가격에 더 낮은 전력 소모를 하며, 더 많은 기능을 가지고 있기 때문에 그 입지가 점점 좁아지고 있다는 것입니다.



Posted by Nature & Life

Arduino 보드는 몇가지로 구분할 수 있습니다. 첫번째로 입문용 보드(Entry Level)입니다. 입문용 보드는 초급자들이 사용이 용이하여 기초 전자 지식을 쌓고 처음 코딩을 시작하기에 적합하다는 것입니다. UNO, LEONARDO, MICRO, NANO, MINI 보드 등이 여기에 해당합니다. 특히 MICRO, NANO, MINI 보드는 크기를 최소화 한 것으로 프로그램의 업로드시에 별도의 FTDI 케이블이 필요합니다. 뿐만 아니라 보드가 작기 때문에 대부분의 마이크로컨트롤러는 SMD 타입으로 고장시 초보자는 땜질(soldering)로 교체가 어렵습니다.

※ FTDI 케이블 - USB-Serial (TTL) 변환기로 TTL 장치(아두이노 보드)를 쉽게 USB에 연결할 수 있게 합니다. 언듯 보기에 단순 케이블로 보이지만 USB 커넥터안에는 FT232RQ칩 등이 내장되어 있습니다.


※ SMD(
Surface Mount Device) 타입 - 전통적인 DIP(Dual Inline Package) 타입의 부품들은 기판에 홀이 있어 꽂을 수 있지만, SMD 타입의 부품들은 홀이 없이 부품을 동박면에 얹은 상태로 땜질을 하게 됩니다. 예를 들어, SMD 부품의 동박면에 미리 솔더크림을 바르고, 부품을 얹은 다음 고열을 가해 크림을 녹이므로써 단단한 납으로 변하여 고정됩니다. 이는 기존의 타입에 비해서 부품 패키지가 작아지므로 칩 자체의 성능이 개선될 뿐만 아니라, PCB 입장에서도 홀이 없어 배선이 용이하고 부품의 실장 개수도 증가하며 전반적으로 성능이 개선됩니다.


두번째는 중급용 보드(Enhanced Features)입니다. 향상된 기능과 빠른 성능을 요구하는 좀 더 복잡한 프로젝트에 적합합니다. 이러한 이유로 입출력 핀은 입문용 보드보다 훨씬 많습니다. 대표적인 보드로는 MEGA, DUE, MEGA ADK, PRO, M0 등이 있습니다.

세번째는 사물인터넷(Internet of Things; IoT)에 쉽게 이용할 수 있는 보드로 인터넷에 연결할 수 있는 기능을 제공합니다. 예를 들어, YUN, ETHERNET, TIAN, Industrial101, MKR1000, YUN Mini 보드 등이 여기에 해당합니다. 이외에도 교육 목적이나 Wearable, 3D printing 용도의 보드들도 선보이고 있습니다.

위와 같은 보드(board) 이외에도 모듈(module)과 쉴드(shield)가 있습니다. 모듈과 쉴드는 보드와 흡사하지만 차이가 있습니다. 먼저 모듈은 사용자의 보드에 장착할 수 있도록 핀헤더가 마련된 것이 대부분이고, 이 모듈은 사용자가 원하는 기능을 업로드하여 자체적으로 동작합니다. MICRO, NANO, MINI 보드가 모듈에 해당합니다.

반면에 쉴드는 아두이노 보드에 장착할 수 있는 사용자의 확장 보드로 스스로 동작할 수는 없습니다. 예로써 MOTOR Shield는 아두이노 보드를 이용하여 실제 모터를 구동하기 위해서 제작한 응용 보드입니다. 때로는 사용자가 전자 회로를 직접 꾸밀 수 있도록 PROTO Shield도 제공하는데 이는 PCB만 제공하는 것으로, 핀아웃(Pinout) 배열이 같아 아두이노 보드에 Stack 형태로 장착할 수 있으며 몇가지의 footprint를 만들어 놓아 IC나 저항 등과 같은 소자들을 쉽게 남땜할 수 있습니다.

다음은 대표적인 Arduino 보드를 비교하였습니다.

보드

Microcontroller

동작전압

디지털 I/O

PWM

아날로그I/O

Flash[KB]

SRAM[KB]

EEPROM[KB]

Clock[MHz]

크기[mmxmm]

 특징

Uno

 ATmega328

5

14

6

6

32

2

1

16

68.6x53.4

가장 보편적

Leonardo

 ATmega32u4

5

20

7

12

32

2.5

1

16

68.6x53.3

 컴퓨터 주변장치 인식 가능

Micro

 ATmega32u4

5

20

7

12

32

2.5

1

16

48.0x18.0

 

Nano

 ATmega328

5

22

6

8

32

1

0.51

16

45.0x18.0

 

Mini

 ATmega328

5

14

 

6

32

2

1

16

30.0x18.0

작지만 업로드시 별도의 FTDI 모듈 필요 

Due

 Atmel SAM3X8E

3.3

54

12

12

512

96


84

102.0x53.3

 강력한 프로세싱

Mega

 ATmega2560

5

54

15

16

256

8

4

16

102.0x53.3

다수의 장치 연결 가능 

M0

 Atmel SAMD21

3.3

20

12

6

256

32


48

68.6x53.3

 

Yun Mini

 Atheros AR9331

3.3

20

7

12

32

2.5

1

400

71.1x23.0

Ethernet과 WiFi 가능

Ethernet

 ATmega328

5

20

4

6

32

2

1

16

68.6x53.4

 

Tian

 Atmel SAMD21,

Atheros AR9342

5

20

12


16000

64000


560

68.5x53.0

 

Mega ADK

 ATmega2560

5

54

15

16

256

8

4

16

102.0x53.3

 안드로이드 연결 가능

M0 Pro

 Atmel SAMD21

3.3

20

12

6

256

32


48

68.6x53.3

 

Industrial 101

 ATmega32u4,

Atheros AR9331

5

7

2

4

16000

64000

1

400

51.0x42.0

 

Leonardo Ethernet

 ATmega32u4,

W5500

5

20

7

 12

 32

 2.5

 1

 16

 68.6x53.3

 

MKR1000

 ATSAMW25

3.3

8

12

 7

 256

 32

 

 48

 64.6x25.0

 


자세한 비교 정보는 다음의 링크를 참조하시기 바랍니다.

https://www.arduino.cc/en/Products/Compare



Posted by Nature & Life


사용자는 무선송신기(Tx)를 이용하여 드론에 명령을 내리게 됩니다. 이때 전송된 신호는 주로 FM 통신 방식으로 드론에 장착된 수신기(Rx)에 전달되고, 수신기는 이 FM 신호로부터 각 채널의 신호를 뽑아 PWM 방식으로 비행제어기(FC)의 각 채널에 유선으로 보내집니다. 이런 식으로 국내의 수십 MHz 대역의 무선조종용 ISM(Industrial Scientific Medical) 주파수를 사용해 제한된 출력으로 허가 없이 사용하여 저렴한 비용으로 실현하였습니다.


최근에는 송수신시 드론의 다양한 상태, 예를 들어, 밧데리 소진으로 인한 저전압 등을 드론으로부터 조종자에게 보여질 수 있도록 양방향 통신의 필요성이 대두되었고, 이러한 기능은 종래 사용하던 주파수의 좁은 대역폭의 한계로, 종래에는 무선데이터통신시스템용 ISM 주파수인 2.4GHz 대역으로 옮겨가 PPM 방식이 주류가 되었다는 것입니다.


드론에서는 이와같은 Wireless 통신 방식이 점차 증가하였는데 일례로, 지상관제국(GCS)에서 설정한 경유지(waypoint)에 따라 순차적으로 비행하는 자동비행 모드나 드론에서 촬영된 항공 사진이나 동영상 혹은 기타의 정보를 전송받기 위해서 텔레메트리(telemetry)라는 통신 장치가 그것이라는 것입니다. 이들의 무선 통신 방식은 2.4GHz의 ISM 주파수로 블루투스(Bluetooth)와 지그비(Zigbee) 등이 있습니다.


블루투스와 지그비 통신 방식은 현재도 계속 진화하고 있으며 도달거리나 전송속도 등의 차이는 아래 표에서와 같이 비교하였습니다.



위와 같은 무선 통신 기술은 Bluetooth와 유사한 BLE, Zigbee와 유사한 Z-wave에 Wi-Fi(Wireless LAN)와 함께, 모두 2.4GHz의 ISM 주파수를 사용하는 근거리 무선 통신 기술들로 요즈음 사물인터넷 즉, IoT(Internet Of Things) 장비들을 묶어주는 역할을 하고 있다는 것입니다. 드론 조종의 특성상, 지그비가 통신거리가 가장 적합하고 2.4GHz 대역이 도달거리가 짧고 장애물에 취약하다는 점을 감안하면 드론이 시야에서 완전히 확보된 상태에서 조종해야 함을 유의해야 할 것입니다.  



'Flight Controller 이해 > 인터페이스' 카테고리의 다른 글

CAN 통신이란?  (0) 2017.12.24
TWI(I2C) 통신이란?  (0) 2014.03.24
Posted by Nature & Life