Online IDE
8비트 MCU를 사용하고 싶은 경우는 ATmega를 사용하는 Arduino를 사용하는 것과
ARM MCU를 사용하고 싶은 경우는 STMicroelectronics의 NUCLEO 지원 보드를 사용하는 것을 추천하여 봅니다
Arduino의 경우는 제품으로는 Uno나 Nano를
mbed의 경우는 NUCLEO-F042K6나 NUCLEO-F091RC 제품군을 추천합니다
일단 Uno와 Nano는 ATmega328P 를 사용한 보드로 하드웨어 스펙은 다음과 같습니다
항목 |
Uno |
Nano |
MCU |
ATmega328P |
ATmega328P |
동작 전압 |
5V |
5V |
디지털 입출력 핀 |
14개 |
22개 |
PWM 디지털 핀 |
6개 |
6개 |
아날로그 입력 핀 |
6개 |
8개 |
Flash 메모리 크기 |
32 Kbyte |
32 Kbyte |
SRAM 크기 |
2 Kbyte |
2 Kbyte |
EEPROM 크기 |
1 Kbyte |
1 Kbyte |
클럭 스피드 | 16 MHz | 16 MHz |
F042K6와 F091RC 제품의 하드웨어 스펙은 다음과 같습니다
항목 |
F042K6 |
F091RC |
MCU |
ARM Cortex-M0 |
ARM Cortex-M0 |
클럭 스피드 |
48 MHz |
48 MHz |
동작 전압 |
2.0 ~ 3.6 V |
2.0 ~ 3.6 V |
Flash 메모리 사이즈 |
32 Kbyte |
256 Kbyte |
SRAM 사이즈 |
6 Kbyte |
32 Kbyte |
GPIO |
26 |
51 |
ADC |
10 채널(12bit) |
16 채널(12bit) |
DAC |
없음 |
2 채널(12bit) |
Timer |
2 |
9 |
I2C |
1 |
2 |
USART |
2 |
8 |
SPI |
1 |
2 |
Arduino나 STMicroelectronics 같은 경우 자신의 PC에 설치하는 형태의 IDE를 지원하고 이렇게 사용하는 것이 보편적입니다만
이 게시글에서는 Arduino와 mbed 온라인 IDE(Integrated Development Environment)를 소개함으로써 해당보드만 가지고 있다면 인터넷이 연결된 PC가 있는 어느곳에서든 개발을 이어서 할 수 있는 환경을 소개해보고자 합니다
Arduino의 경우
사이트의 Arduino Web Editor라는 항목으로 온라인 IDE를 제공하고 있습니다
위 접속 페이지에서 보이는 봐와 같이
가장 좌측에 리스트에는
내가 작성한 프로젝트 항목에 대한 "Sketchbook"
선택된 보드에 따른 예제 코드가 들어있는 "Example"
온라인 IDE기본 등록된 라이브러리나 사용자 라이브러리를 관리할수 있는 "Libraries"
시리얼 메시지 입출력을 위한 "Monitor"
의 메인 메뉴를 확인할수 있습니다
우선은 Sketchbook 항목으로 진입하여 NEW SKETCH를 클릭하여 프로젝트를 생성하고
생성된 프로젝트명.ino 파일을 클릭하면 우측에 에디트창에 기본적인
1 2 3 4 5 6 7 8 9 10 11 | /* */ void setup() { } void loop() { } | cs |
다음으로는 작성된 코드가 실행되는 보드종류를 선택해야 합니다 역시 에디터창 상단에 -- Select Board or Port -- 항목을 클릭하면 다음과 같은 창이 발생됩니다
여기서는 사용자가 사용할 보드를 선택한뒤 OK를 누르면 반영이 됩니다
이후 코드를 작성하고 에디터창 상단의 V 아이콘을 클릭하면 해당 보드에 맞도록 빌드가 진행합니다
만약 여러분이 해당 보드를 Arduino Web Editor가 실행된 PC에 USB포트와 연결을 한 상태라면 에디터창 상단에 있는 보드 선택 항목에 연결됨으로 상태가 전환되고 V 빌드 아이콘 우측의 → 버튼을 클릭하여 작성된 코드를 빌드한뒤 이미지를 바로 보드에 프로그래밍하여 동작을 시켜 볼 수 있게 됩니다
아두이노의 최대 장점은 여러 개발자들이 작성한 풍부한 라이브러리에 있기도 때문에 이와 같은 형태의 라이브러리의 사용이 필요할수 있습니다
Arduino Web Editor의 경우 이미 많이 알려진 라이브러리 대부분을 사용할 수 있도록 제공하고 있습니다
사용할수 있는 라이브러리에 어떤것들이 있는지 알아보고자 한다면 Libraries 항목에서 상단의 LIBRARY MANAGER를 클릭하여 제공되는 라이브러를 찾아 볼 수 있습니다
물론 위에서 포함되지 않은 라이브러리를 직접 추가 할 수 있는 방법도 제공합니다
라이브러리를 추가하기 위해서는 일단 Libraries 항목으로 진입한 뒤 보이는 CUSTOM 탭을 클릭합니다
위에 보이는 밑줄 부분의 uploaded as a.Zip file을 클릭하면 업로드를 위한 인터페이스가 표시됩니다
자신의 PC에 있는 라이브러리 zip 파일을 선택한뒤 업로드를 수행하여 라이브러리를 추가 할수 있습니다
라이브러리가 zip형태로 압축되어 있는데
일반적으로 라이브러리들은 github에 올려진 경우가 많은데 github의 경우는 개발자들이 포맷에 맞춰 등록한 경우가 대부분이라 단순히
위의 Download ZIP에서 받은 zip 파일 형태르 바로 올려주어도 반영이 됩니다
혹 본인이 직접 작성한 라이브러리를 올리고 싶다면 Arduino 제단에서 제안되는 가이드를 따라 작성한뒤 zip파일로 압축하여 업로드하면 됩니다
mbed의 경우
사이트에서 mbed compiler 라는 항목으로 온라인 IDE를 제공하고 있습니다
위와 같은 인터페이스를 보유하고 있으며 우측 상단에 보이는 NUCLEO-L432KC를 클릭하면 사용할 보드를 추가할수 있습니다(여기서는 사전에 L432KC보드를 선택하여 해당 보드명이 표시되고 있습니다)
이처럼 플렛폼 선택에서 하단의 Add Board를 선택하면 mbed지원 보드가 리스트 사이트가 보여지는데 여기서 자신이 구매하거나 빌드하고자 하는 보드를 클릭한뒤 아래와 같이 보이는 보드 설명 페이지에서 "Add to your Mbed Compiler"를 클릭하여 위 Select a Platform 항목에 하단에 보이는 Your registered plaforms에 추가할 수 있습니다
이제 사용할 보드가 선택이 되면
mbed 페이지에서 좌측 상단의 New를 클릭하여 프로젝트를 추가할수 있습니다
위에서 추가된 보드를 선택하고 템플릿에서는 예제 프로그램을 선택하거나 빈프로젝트를 생성할수 있습니다
이후 사용자 개발 코드 작성을 진행한 이후 상단의 Compile 을 클릭하여 빌드를 진행할수 있습니다
빌드가 문제없이 잘되었다면 브라우저에서 보드에 적용할 이미지 파일하나를 다운받게 되는데 이 파일은 mbed보드를 PC에 연결시 생기는 디스크드라이브에 복사해 넣으면 mbed 하드웨어에 이미지 프로그램 과정이 자동으로 수행되며 작성한 코드를 보드에 반영해 볼 수 있습니다
mbed의 경우도 이미 개발자들이 등록한 라이브러리를 검색하고 추가할수 있는 인터페이스가 제공됩니다
위와 같이 좌측 Program Workspace의 프로젝트명에서 마우스 우측클릭후 보이는 Import Library - From Import Wizard 를 클릭하면 우측에 보이는 Import Wizard 가 표시됩니다
사용자는 여기서 찾고자하는 라이브러리를 검색 선택하여 현재 프로젝트에서 해당 라이브러리를 참여시켜 사용할 수 있습니다
또한 아래와 같이 New Library를 선택하여 사용자가 직접 라이브러리 폴더를 생성하고 해당 폴더에서 New File을 선택하여 사용자 임의 라이브러리 파일을 작성하여 사용할 수도 있습니다
이와 같이 Arduino와 mbed 온라인 IDE에 대해 살펴보았습니다
온라인 IDE의 장점은 무엇보다도 사용자가 복잡하게 사용자 PC에 프로그램을 설치할 필요도 없으며 작성한 코드는 클라우드(온라인)영역에 저장되기 때문에 어느곳에서나 코드를 작성하거나 열람할수 있다는 장점이 있겠습니다
물론 위와 같이 온라인 IDE를 사용하는 것은 학습적인 부분에 의의가 있고 실제 회사 업무등에 활용하기 위해서는 해당 MCU의 부트코드나 적합한 OS 적용등 좀 더 폭넓은 영역의 지식을 요구하기도 합니다
허나 처음 접근하는 사용자에게는 MCU가 적용된 표준화된 보드를 사용하여 소프트웨어를 개발하여 보며 이 분야에 접근해보는것도 좋은 계기가 될 것이라고 생각됩니다
이후에는 STMicroelectronics 의 전용 STM32 마이크로 컨트롤러의 사용자 레이아웃을 지정하여 초기화 코드를 생성하는 STM32CubeMX와
PC설치용 IDE인 IAR-EWARM이나 CrossWorks등에 대해서도 알아보는 게시글을 준비해 보도록 하겠습니다