System Compleat.

'Cloud Client'에 해당되는 글 1건

  1. Beagle Board

Beagle Board

Techs
( younjin.jeong@gmail.com, 정윤진 ) 

최근 클라우드 스토리지 관련해서 어떤 시스템을 구축이 가능 할 것인가에 대해서 살펴보던 도중, 급작스럽게 임베디드 분야를 검색해 보기 시작했다. 이 와중에 아주 흥미로운 제품을 발견했는데, 제품의 이름은 귀엽게도 무려 "Beagle Board".

 
홈페이지는 위의 그림과 같다.

이들이 발매한 Beagle Bone v1 보드 제품은 $89 에 판매되고 있는데,  기본으로 Angstrom Linux 가 탑재되어 USB를 연결하기만 하면 동작한다. 게다가 더 놀라운 사실은, 이 제품에는 Cloud9 IDE가 임베드 되어있어 바로 보드상에서 개발이 가능하다는 점.  이러한 장치에서 Cloud9 IDE 가 돌아간다는 사실은 정말 많은 의미를 내포한다. 

이 보드는 아래와 같은 스펙을 가진다. 

  • Board size: 3.4″ x 2.1″
  • Shipped with 2GB microSD card with the Angstrom Distribution with node.js and Cloud9 IDE
  • Single cable development environment with built-in FTDI-based serial/JTAG and on-board hub to give the same cable simultaneous access to a USB device port on the target processor
  • Industry standard 3.3V I/Os on the expansion headers with easy-to-use 0.1″ spacing
  • On-chip Ethernet, not off of USB
  • 256MB of DDR2
  • 700-MHz super-scalar ARM Cortex™-A8
  • Easier to clone thanks to larger pitch on BGA devices (0.8mm vs. 0.4mm), no package-on-package memories, standard DDR2 vs. LPDDR, integrated USB PHYs and more.

또한, 이 보드가 지원하는 기능 및 이에 대한 장점은 아래와 같다. 

 Features Benefits 
 More than 1,400 Dhrystone MIPS using TI's superscalar AM335x ARM Cortex-A8 microprocessors up to 720 MHz Runs full Linux operating system with full-featured web servers, native compilers and scripting languages, video analytics libraries and much more 
 Two 48-pin, two-row, 0.1-inch spaced female expansion headers  Enables developers easily add off-the-shelf expansion hardware or directly breadboard connections to countless readily available peripherals
 Multipurpose USB device connection with on-board hub, USB-to-serial/JTAG conversion device with software reset and reprogrammable high-speed USB device interface Developers can plug in just one cable to power, debug and interface to their applications and not needing a JTAG emulator saves additional cost 
 Open GL  ES 2.0 capable 3D graphics accelerator Achieves photo-realistic, real-time pixel-shaded graphics for gaming and 3D user interface acceleration
 USB 2.0 host port that supports low, full and high speeds Can be used for USB peripherals like keyboard, mouse, WiFi, Bluetooth, Web cameras or USB hubs for additional expansion via con-chip USB PHY 
 microSD connector Adds multiple gigabytes of storage for your boot image and data 
 On-chip 10/100Mbit Gigabit Ethernet Network your network and the internet with minimal software stacks 
 Four on-board LEDs Provide user status without the need to add additional hardware 

결과를 추려서 한 문장으로 정리 해 보자면, 

- Node.js 를 돌릴 수 있는 저렴한 임베디드 베이스 보드. 

이는, 원하는 거의 모든 오픈소스 패키지의 설치 및 실행이 가능하다고 할 수 있으며, 필요한 경우 스테핑 모터의 연결, 또 이 스테핑 모터를 자바스크립트 코드를 통해 노드로 제어하는 것이 가능하다는 말이 되겠다. 

이러한 임베디드 장치의 출현은 이전에 소개한 Raspberry 프로젝트와 유사하기는 하지만, Beagle Board 의 강점은 사용하기 편리한, 그리고 모든 OS의 기능이 동작하는 ARM 기반의 멋진 임베디드 보드라는 것이다.

이 보드를 가지고 무엇을 할 수 있는지 가만히 생각해 보자. 
여러분은 여기에 카메라 모듈을 붙일 수도, 일반적인 키보드 마우스 모니터를 붙일 수도, 바코드 리더를 붙일 수도, 기타 등등의 상상할 수 있는 모든 임베디드 장치의 형태를 구현 해 낼 수 있게 된다. 

네트워크와 바로 물려있는 카드 결재모듈을 탑재한 POS 장비의 메인 보드로서, 스키장 또는 놀이 동산의 입장권 및 서비스 사용을 위한 바코드 인식, 일반 사용자가 거주하기 힘든 지역의 데이터 수집등등 헤아릴 수 없이 많은 것들이 가능해 진다. 단순히 C 를 사용하는 로우레벨의 개발자가 아니더라도 이런 것들이 가능해 질 것이며, 이는 node.js 모듈만 있다면 자바 스크립트 개발자도 충분히 좋은, 아니 더 멋진 애플리케이션의 작성이 가능해 질 지도 모르겠다. 

http://beagleboard.org/buy


이 간단한 장치에는 단순히 리눅스만 동작 가능한 것이 아니다. 이 장치로 진행중인 다른 프로젝트를 간단히 살펴 보자. 

Android Rowboat Project
Arrow Windows Embedded Bundle
Ubuntu on the BeagleBoard
Ångström Distribution of Linux
XBMC Media Center
RISC OS
Symbian
Gentoo
QNX Neutrino
DesignSomething.org


외국인 아자씨가 소개하는 영상도 한번 보자.
 



이런 장치를 볼 때마다, 정말 세상이 빠르게 변하고 있음을 느낀다. 이전에 ARM 베이스 프로그래밍을 배우고 싶다면 대학에만 할인되는 LED, LCD 모니터가 달린 ARM 보드를 엄청난 고가에 구매해야 했지만, 이제는 더 쉬운 인터페이스와 보다 고 수준의 언어, 그리고 일반적인 OS 가 동작하는 임베디드 보드의 사용이 가능하며, 저렴한 가격에 누구나 구입하여 테스트 해 볼 수 있을 것이다. 


빨리 하나 구매해서 이것저것 해 보고 싶다. 
'프로젝트만 끝나면.'  ㅠㅠ 

참조 
http://beagleboard.org/
http://elinux.org/BeagleBoardUbuntu



( younjin.jeong@gmail.com, 정윤진 ) 

#include <test.h>int x = foo();  /* This is a comment  Continuation of comment */
int y = bar();