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


Arduino Uno R3는 가장 널리 사용되는 입문용 기본 보드로 R3는 세번째 버젼을 의미합니다. 이 보드는 8-bit 마이크로 콘트롤러인 ATmega328P을 탑재하며 PC와 USB로 연결할 수 있어 프로그램 다운로드 및 시리얼 통신에 가능합니다. 그 밖에도 ATmega16U2의 또 다른 마이크로 콘트롤러를 내장하는데, 이는 기존 보드들에서 사용하던 FTDI FT232R USB-to-Serial 드라이버 칩을 대체하기 위한 것으로 USB-to-Serial 변환 프로그램이 들어 있습니다. ATmega328P는 1KB의 부트로터(Bootloader)용을 포함한 32KB의 Flash 메모리와 2KB의 SRAM, 1KB의 EEPROM을 갖고 있으며, 클럭 속도(Clock speed)는 16MHz입니다.


5V로 동작하는 이 Uno 보드의 전원공급은 두 가지 방법이 있는데, 첫번째는 USB로부터 제공되는 5V를 그대로 사용할 수 있으며, 두번째로는 7~12V의 AC 어댑터를 잭에 꼽아 외부에서 공급하는 방법인데 이는 Uno 보드가 내부적으로 5V를 정류하는 레귤레이터(Regulator)를 내장하고 있기 때문이며 위의 두 가지 전원이 모두 연결되어 있다면 외부 전원이 우선이 됩니다.



디지털 입출력 핀 14개 (0번~13번)

디지털 입출력 핀들을 이용해서 외부의 이진 신호를 읽어들어나 또는 이진 신호를 내보낼 수 있다. 디지털 입출력으로 사용되면서 또한 다른 기능을 가지는 핀들이 있는데, 이 기능들은 한 핀으로 두가지를 다 사용할 수는 없으며 다른 기능은 다음과 같습니다.

    • 0번~1번: 시리얼 통신에 사용되어 USB로 PC와 통신을 할 수 있습니다.

    • 2번~3번: 인터럽트(interrupt) 기능을 갖습니다.

    • 3, 5, 6, 9, 10, 11번 핀은 PWM 기능을 가지며 아날로그 출력을 흉내낼 수 있다.


아날로그 입력 핀 6개 (A0~A5)

외부의 아날로그 입력값을 읽어들여 ATmega328P칩 내부의 ADC(Analog to Digital Converter)를 이용하여 0~1023 사이의 숫자로 변환합니다. 이때 필요한 기준 전압은 5V 이지만 1.1V의 내부 전압이 사용될 수 있으며 AREF핀으로 기준 전압을 직접 인가할 수도 있습니다. 그리고 아날로그 핀은 디지털 입출력 핀으로도 사용할 수 있습니다.


아날로그 출력핀 6개 (3,5,6,9,10,11번 핀)

아날로그 출력핀은 0~5V사이의 전압 값(256레벨)을 가질 수 있으며 이는 PWM(Pulse Width Modulation) 방식으로 동작하므로 흉내를 내는 것입니다.


인터럽트 (2, 3번 핀)

2번과 3번 핀에 가해진 외부 이벤트를 감지하여 사용자가 원하는 방향으로 이를 처리하기 위한 기능으로 이를 인터럽트 처리(interrupt handling)라 부르는데, 즉 이 핀들에 변화가 있는면 하드웨어는 즉각적으로 알리고 이때 사용자가 원하는 정해진 동작을 코딩하여 사용합니다.



ICSP for ATmega328 : 기존의 ATmega328P에 ICSP(In Circuit Serial Programming)를 위한 SPI 통신용 6핀 포트입니다. ICSP는 전통적으로 마이크로 컨트롤러에 직접 펌웨어를 프로그래밍하기 위해 마련된 것입니다.


ICSP for USB interface : 기존의 ATmega16U2에 ICSP(In Circuit Serial Programming)를 위한 SPI 통신용 6핀 포트입니다. 


TWI(I2C) 통신 : A0, A1 핀




Posted by Nature & Life



근래에 PC와 랩톱, Portable 장치들에서는 RS232C 포트가 사라진지 오래되었습니다. 기존의 RS232C 포트는 기구적으로 소형화에 걸림돌이기도 하며, 넓은 대역폭으로 빠른 전송 속도와 Plug & Play 등의 장점을 앞세운 USB 포트로 대체되었습니다.


하지만 아직도 AVR을 비롯한 많은 MCU들은 여전히 기존 시리얼 통신 방법을 채택하고 있습니다. 한편 이런 MCU와 PC간의 interactive 제어나 수행 결과를 모니터하기 위해서는 USB 통신을 지원하는 범용 툴을 사용하거나 사용자가 Win32 Application을 직접 제작하여야 한다는 것입니다.


이렇듯 사용자는 PC의 USB 포트로 통신하는 Win32 Application을 기존의 시리얼(RS232C) 통신 프로그램과 마찬가지로 ReadFile(), WriteFile() 혹은 DeviceIoControl() 함수를 이용하여 구현하게 됩니다. 그런데 USB 통신에서는 물리적인 장치에 접근하기 위해서 드라이버(예를 들어, *.sys)가 필요하게 되는데, 좀더 구체적으로 MS Windows 환경하에서는 Windows가 장치에 접근하기 위해서 Windows Driver Model(WDM) 드라이버가 필요하다는 것입니다.


USB 드라이버는 어떻게 해야 할지요?


가장 좋은 방법은 사용자가 직접 자신이 사용할 드라이버를 드라이버 제작 툴(예를 들어, Jungo社의 WinDriver)을 이용하여 만드는 것입니다. 하지만 그리 쉬운 작업이 아니므로 두 번째 방법인 USB 드라이버 칩 제조사가 제공하는 드라이버를 가져다 사용하는 것입니다. 예를 들어, CypressFTDI Chip의 칩셋을 사용하는 경우 각 에서 제공하는 드라이버를 무료로 사용할 수 있습니다.





이러한 드라이버는 범용이기에 필요없는 오버헤드로 인해 다소 느릴 수는 있지만, 대부분의 USB 통신에서 만족할만한 결과를 얻을 수 있을 것입니다. 그러나 최신 아두이노(Arduino) 보드에서는 위와 같은 칩셋을 사용하지 않고 ATmega16U2를 사용하니 세 번째 방법인 직접 드라이버를 일일이 제작해야 합니다.


하지만 다행이도 아두이노는 다음과 같이 설명합니다.

http://arduino.cc/en/Main/arduinoBoardUno


The Uno differs from all preceding boards in that it does not use the FTDI USB-to-serial driver chip. Instead, it features the Atmega16U2 (Atmega8U2 up to version R2) programmed as a USB-to-serial converter.

우노는 FTDI USB-to-serial 드라이버 칩을 사용했던 모든 이전 보드와 다름니다. 대신에 USB-to-serial 컨버터로써 프로그램된 Atmega16U2를 사용합니다.


The '16U2 firmware uses the standard USB COM drivers, and no external driver is needed. However, on Windows, a .inf file is required. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the USB-to-serial chip and USB connection to the computer (but not for serial communication on pins 0 and 1).

'16U2 펌웨어는 표준 USB COM 드라이버를 사용합니다. 그리고 어떤 외부의 드라이버도 필요하지 않습니다. 그러나 Windows 상에서 *.inf 파일이 요구됩니다. 아두이노 소프트웨어는 간단한 텍스트 기반의 데이터를 아두이노 보드로 송수신하기 위한 시리얼 모니터(serial monitor)를 포함합니다. 보드상에 RX와 TX LED들은 컴퓨터의 USB와 USB-to-serial 칩을 경유하여 데이터가 전송될 때 반짝일 것입니다(pin 0 그리고 pin 1 상에 시리얼 통신을 위한 것이 아닙니다).


A SoftwareSerial library allows for serial communication on any of the Uno's digital pins.

SoftwareSerial 라이브러리는 우노의 디지털 pin들이 시리얼 통신을 가능하게 합니다.


The ATmega328 also supports I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus; see the documentation for details. For SPI communication, use the SPI library.

ATmega328은 또한 I2C(TWI)와 SPI 통신을 지원합니다. 아두이노 소프트웨어는 I2C 버스의 사용을 간단화하기 위한 Wire 라이브러리를 포함합니다. 자세한 사항은 문서를 확인하세요. SPI 통신에 대해서는 SPI 라이브러리를 사용하세요.


그러므로 아두이노 보드는 별도의 USB 드라이버를 사용하지 않고 표준 USB COM 드라이버를 사용하므로 기존의 RS232C 통신과 동일한 Win32 함수로 데이터를 송수신하는 사용자 전용 통신 프로그램을 제작할 수 있습니다. 간단히 모니터를 위한 것이라면 아두이노 IDE 환경에서 제공하는 '시리얼 모니터'로도 충분하리라 생각됩니다.







Posted by Nature & Life


아두이노(Arduino)가 오픈 소스 플랫폼으로 자리잡은 이유는 AVR 칩이 제공하는 Self-programming 기능으로 거슬러 올라갑니다. Self-programming 기능이란 칩의 퓨즈를 적절히 설정함으로써 부팅시 Application 영역이 아닌 Boot 영역으로 시작 지점이 변경된다는 것입니다.



한편, AVR 칩은 추가적인 하드웨어 구성 없이 USART나 TWI, SPI 등으로 통신이 가능한데, 칩이 Boot 영역에서 수신된 데이터를 감지하고 Application 영역을 변경할 수 있다는 것입니다. 이러한 기능은 3세대 AVR 칩에서 등장하여 펌웨어의 유지 및 보수 목적으로 특히 가혹한 원격지에서 펌웨어 업그레이드에 유연성을 주기 위함이었습니다.


따라서 이러한 기능이 가능하게끔 작성된 Bootloader를 최초 한번 JTAG이나 ISP를 이용하여 펌웨어를 프로그래밍을 하면 아두이노는 그 다음부터 ISP 없이 USART로 프로그램의 간단히 업로드가 가능하게 됩니다. 결국 아두이노 보드는 아래 회로도에서와 같이 별도의 ATmega16U2 칩을 이용해 USB로 데이터를 송수신하고, 이를 다시 ATmega328 칩에 USART 규격으로 통신하는 구조를 가집니다.



요약하면 아두이노 IDE 환경은 AVR 칩에 최초 Bootloader를 탑재하여 PC의 USB 포트로 C 코드인 스케치(Sketch) 파일을 컴파일하고 이를 아두이노 보드로 추가의 하드웨어 없이 전송하여 쉽고 빠른 개발환경을 제공한다는 것입니다. 게다가 아두이노 IDE 환경에서 함께 제공하는 Serial Monitor를 이용해서 클릭 한번으로 그 결과를 바로 확인할 수 있다는 장점을 가집니다.





Posted by Nature & Life



Overview


Galileo is a microcontroller board based on the Intel® Quark SoC X1000 Application Processor, a 32-bit Intel Pentium-class system on a chip (datasheet). It is the first board based on Intel® architecture designed to be hardware and software pin-compatible with Arduino shields designed for the Uno R3. Digital pins 0 to 13 (and the adjacent AREF and GND pins), Analog inputs 0 to 5, the power header, ICSP header, and the UART port pins(0 and 1), are all in the same locations as on the Arduino Uno R3. This is also known as the Arduino 1.0 pinout.


갈릴레오(Galileo)는 32-bit Intel Pentium 클라스 SoC인 Intel Quark SoC X1000 응용 프로세서에 기반을 둔 마이크로컨트롤러 보드입니다. 이것은 Uno R3를 위한 아두이노 쉴도 보드에 핀이 호환되는 하드웨어 및 소프트웨어로서 설계된 인텔 아키텍처의 최초 보드입니다. Analog input 0 to 5, power header, ICSP header 그리고 UART port pins(0 and 1)은 모두 Arduino Uno R3와 동일한 위치를 가집니다. 이것은 또한 Arduino 1.0 핀아웃(pinout)으로 알려집니다.


Galileo is designed to support shields that operate at either 3.3V or 5V. The core operating voltage of Galileo is 3.3V. However, a jumper on the board enables voltage translation to 5V at the I/O pins. This provides support for 5V Uno shields and is the default behavior. By switching the jumper position, the voltage translation can be disabled to provide 3.3V operation at the I/O pins. Of course, the Galileo board is also SW compatible with the Arduino SW Development Environment, which makes usability and introduction a snap.


갈릴레오는 3.3V 혹은 5V 모두에서 동작하는 쉴드 보드를 지원합니다. 갈릴레오의 코어 동작 전압은 3.3V 입니다. 그러나 보드상에 점퍼로 I/O에서 5V로 전환이 가능합니다. 이것은 5V Uno 쉴드 보드를 지원하기 위함입니다. 점퍼 스위치로 I/O 핀에서 3.3V 동작을 제한할 수 있습니다. 물론 갈릴레오 보드는 아두이노 소프트웨어 개발 환경과 소프트웨어 또한 호환 가능합니다.


In addition to Arduino HW and SW compatibility, the Galileo board has several PC industry standard I/O ports and features to expand native usage and capabilities beyond the Arduino shield ecosystem. A full sized mini-PCI Express* slot, 100Mb Ethernet port, Micro-SD slot, RS-232 serial port, USB Host port, USB Client port, and 8MByte NOR flash come standard on the board.


아두이노 하드웨어와 소프트웨어 호환 뿐만아니라 갈릴레오 보드는 아두이노 쉴드 보드 이상으로 본래의 사용과 그 가능성을 확장시키기 위해서 몇개의 PC 산업 표준 I/O 포트와 특징을 갖습니다. full sized mini-PCI Express 슬롯, 100Mb Ethernet 포트, Micro-SD 슬롯, RS-232 시리얼 포트, USB Host 포트, USB Client 포트, and 8MByte NOR flash.





Details and Specifications


Galileo is compatible with Arduino Uno shields and is designed to support 3.3V or 5V shields, following the Arduino Uno Revision 3, including:


갈릴레오는 아두이노 Uno 쉴드 보드와 호환되며, 3.3V 혹은 5V 쉴드 보드를 지원하고 다음 특성을 포함한 Arduino Uno R3 사양을 따릅니다:


  • 14 digital input/output pins, of which 6 can be used as Pulse Width Modulation (PWM) outputs;


- Each of the 14 digital pins on Galileo can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions.

- The pins operate at 3.3 volts or 5 volts. Each pin can source a max of 10mA or sink a maximum of 25 mA and has an internal pull-up resistor (disconnected by default) of 5.6k to 10 kOhms.


  • A0 – A5 - 6 analog inputs, via an AD7298 analog-to-digital (A/D) converter (datasheet)


- Each of the 6 analog inputs, labeled A0 through A5, provides 12 bits of resolution (i.e., 4096 different values). By default they measure from ground to 5 volts.


  • I²C* bus, TWI, with SDA and SCL pins that are near to the AREF pin.


- TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library.


  • SPI


- Defaults to 4MHz to support Arduino Uno shields. Programmable up to 25MHz.

- Note: While Galileo has a native SPI controller, it will act as a master and not as an SPI slave. Therefore, Galileo cannot be a SPI slave to another SPI master. It can act, however, as a slave device via the USB Client connector.


  • UART (serial port) Programmable speed UART port (Pins 0 (RX) and 1 (TX))


  • ICSP (SPI) - a 6 pin in-circuit serial programming (ICSP) header, located appropriately to plug into existing shields. These pins support SPI communication using the SPI library.


  • VIN. The input voltage to the Galileo board when it's using an external power source (as opposed to 5 volts from the regulated power supply connected at the power jack). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.


- Warning: The voltage applied to this pin must be a regulated 5V supply otherwise it could damage the Galileo board or cause incorrect operation.


  • 5V output pin. This pin outputs 5V from the external source or the USB connector. Maximum current draw to the shield is 800 mA


  • 3.3V output pin. A 3.3 volt supply generated by the on-board regulator. Maximum current draw to the shield is 800 mA


  • GND. Ground pins.


  • IOREF. The IOREF pin on Galileo allows an attached shield with the proper configuration to adapt to the voltage provided by the board. The IOREF pin voltage is controlled by a jumper on the board, i.e., a selection jumper on the board is used to select between 3.3V and 5V shield operation.


  • RESET button/pin


- Bring this line LOW to reset the sketch. Typically used to add a reset button to shields that block the one on the board.


  • AREF is unused on Galileo. Providing an external reference voltage for the analog inputs is not supported.


- For Galileo it is not possible to change the upper end of the analog input range using the AREF pin and the analogReference() function.


Power


Galileo is powered via an AC-to-DC adapter, connected by plugging a 2.1mm center-positive plug into the board's power jack. The recommended output rating of the power adapter is 5V at up to 3A.


갈릴레오는 보드상에 2.1mm 파워잭으로 AC-to-DC 어뎁터를 연결함으로서 파워가 공급되며, 권장하는 파워 어뎁터의 사양은 최대 3A의 5V 전원입니다.





'Embedded Programming > Arduino ' 카테고리의 다른 글

Arduino Uno R3의 개요  (0) 2017.03.11
아두이노(Arduino) 보드와 PC 통신  (0) 2014.05.28
아두이노(Ardunio)의 장점(2)  (0) 2014.05.27
아두이노(Ardunio)의 장점(1)  (0) 2014.03.27
아두이노(Arduino) 보드란?  (0) 2012.12.05
Posted by Nature & Life


 

아두이노(Arduino)는 오픈 소스(Open Source)를 기반으로 한 단일 보드(board) 마이크로 컨트롤러입니다. 2005년 이탈리아 사람에 의해서 최초 만들어지기 시작한 프로젝트로 현재에도 진행 중에 있으며 Arduino는 이탈리아어로 영어의 'Best Friend'와 같은 의미를 가진다고 알려집니다.

 

아두이노는 대부분 Atmel社의 ATmega8이나 ATmega32U4, ATmega168, ATmega328, ATmega2560 등을 탑재한 보드로 이들 마이크로 컨트롤러에 탑재할 펌웨어(Firmware)를 개발하는 환경에서부터 컴파일 및 독립적으로 작동할 수 있도록 업로드 과정이 편리하여 최근에 전 세계적으로 인기를 끌고 있습니다. 

 

2011년에는 구글의 안드로이드(Android)가 아두이노를 하드웨어 파트너로 선택한 이유도 이런 확장성과 편리함 때문에 상호간에 시너지 효과를 기대해 보자는 것으로 풀이되며, 이러한 추세에 힘입어 얼마전에는 Intel社에서도 아두이노 플랫폼에 자사의 Quark Processor를 탑재한 갈릴레오(Galilo)를 출시하였는데, 이러한 것도 내내 동일한 맥락이라는 것입니다.

 

갈릴레오 보드

 

하드웨어에 서툰 사람들조차도 아두아노에 관심을 가지게 만드는 이유는 요구하는 제품이 기존의 AVR의 개발환경에 비하여 뚜렷하게 간소화됨으로 말미암아 편리함일 수도 있지만, 이러한 과정들이 복잡하지 않아 소프트웨어 제작이나 다양한 하드웨어 DIY(Do It Yourself)를 즐기는 사람들에게 호기심을 불러 일으키기에 충분하였기 때문일 것입니다.

 

그럼 아두이노는 어떤 장점이 있는지 요약하여 봅니다.

 

1) 소프트웨어 개발을 위한 통합 환경(IDE)이 간소화 되었다는 것입니다.

가장 큰 장점으로 기존의 AVR 프로그래밍은 WinAVR로 컴파일하여 별도의 ISP 장치를 통해 업로드 해야하는 번거로운 과정을 거쳐야 하는데, 아두이노는 컴파일된 펌웨어를 보드 내 USB 포트에서 PC의 USB 포트로 케이블을 연결하는 것만으로 쉽게 업로드 할 수 있다는 것입니다.

 

2) Windows를 비롯한 Mac OS X 및 Linux와 같은 다양한 OS 환경을 지원합니다.

 

3) 다양한 소프트웨어와 연동이 가능하다는 것입니다.

사용자들이 기존에 즐겨 사용하여 익숙했었던 Flash나 Processing, Max/MSP, Android, Object C, Labview, Pure Data 등과 같은 소프트웨어를 연동할 수 있다는 것입니다.

 

4) 가격이 저렴합니다.

사실 마이크로컨트롤러를 배우고 싶어서 강좌를 듣거나 데모보드를 구입하려면 최소한 수 십만원 정도 이상을 호가하는데, 이에 비해 아두이노 보드는 상대적으로 매우 저렴하다는 것입니다.

 

5) 아두이노는 오프 소스입니다.

아두이노는 보드의 회로도가 공개되어 있으며 개발환경 조차도 오픈 소스이고 이로 인해 각종 회로도나 펌웨어 소스가 웹상에서 다량 공유되어 있다는 것입니다. 뿐만 아니라 여러 개발자들이 만들어 놓은 라이브러리 조차도 공유되어 개발 시간을 단축시키고 있다는 것입니다. 

 

다음은 아두이노 포럼입니다.

 

http://forum.arduino.cc/

 

 

현재 가장 많이 사용되는 아두이노는 보드는 기본형 우노(Arduino UNO)로써 손바닥만한 크기를 가지면서 ATmega328을 탑재하고 있는데 6개의 아날로그 입력단자와 14개의 디지털 입출력단자를 지원합니다. 이러한 입출력 단자들은 우노 보드에 위로 쌓아(Stack-up) 연결된 확장보드(Shield 보드, Shield-up 보드)에 서로 연결되고, 사용자는 1개 이상의 이들 확장보드에 주변회로를 직접 꾸며주게 됩니다.

 

 

 

Posted by Nature & Life

 

아두이노(Arduino)란?

 

취미생활을 하면서 특정 기능을 요구하는 하드웨어를 구현할 때 입력을 받아 스스로 생각하고 판단하여 출력하거나 기능을 수행하는 프로세서가 요구됩니다. 이러한 프로세서는 컴퓨터의 CPU처럼 규모가 대단할 필요는 없고 단지 다양한 입출력 기능이 포함된 마이크로 컬트롤러(Microcontroller)면 충분할 것입니다. 이 마이크로 컨트롤러는 줄여서 '마이컴'이라고 부릅니다.

 

이러한 마이컴(Micom)은 제조사도 다양하고 종류 또한 다양하지만 전통적으로 Atmel社의 ATmega나 마이크로칩社의 PIC 시리즈의 8비트 마이컴을 선호하며 이들 양 社는 어셈블러에 능숙하지 않은 아마추어들에게 C언어를 이용해 간단히 구현하고 최적화된 코드를 생성시킬 수 있는 환경을 제공하며 또한 최근에 플레쉬(Flash) 메모리의 가격하락과 고용량 메모리를 탑재한 마이컴 시리즈가 시장에 주류를 이루면서 고급언어를 이용한 Compact code 제공에 대한 부담이 줄어들고 있는 추세입니다.

 

ATmega 칩을 사용하여 WinAVR 툴을 이용하여 코드를 생성하고 MK2와 같은 ISP 프로그래머를 사용하여 칩에 업로드하는데 아두이노(Arduino)는 이러한 과정을 간소화하여 아두이노 보드와 툴을 이용하면 코드를 생성하고 바로 업드로하여 테스트할 수 있는 환경을 제공합니다.

 

현재 아두이노 보드는 주로 ATmega328 칩을 실장하며 PC와 소통을 위한 USB단자와 주변회로가 보드에 내장되어 있고 또한 Shield 보드를 이용하여 아두이노 보드에 수직으로 장착하여 아마추어들이 원하는 주변회로를 쉽게 구현도록 하였습니다. 이를테면 확장보드인 셈입니다.

 

무엇보다도 가장 좋은 장점은 오픈소스를 기반으로 한 피지컬 컴퓨팅 플랫폼을 제공한다는 것이며 이는 단순히 보드와 소프트웨어 개발을 위한 통합 환경(IDE)를 제공한다는 이점보다는 아마추어가 쉽게 원하는 기능을 만들기 위한 레퍼런스가 풍부하다는 것을 의미할 것입니다.

 

그리고 이런 환경은 Window를 비롯해 Mac OS X, 리눅스 등 여러 OS를 모두 지원한다고 알려지며 오픈소스인 만큼 아두이노 보드의 회로도가 CCL에 따라 공개되어 있습니다.

 

http://arduino.cc

 

다음은 가장 최근에 출시된 아두이노 보드입니다.

 

Arduino Uno R3의 앞면

 

Arduino Uno R3의 뒷면

 

Posted by Nature & Life