실험을 위해서 여러 하드웨어 보드들을 구해서 잠깐씩 살펴보았는데, 하드웨어를 제어하는 (주로 오픈소스)보드들이 공통적으로 가지고 있는 필수 기능으로 다음과 같은 것들이 있다.


  • (디지털) In/Out 포트            : on/off 입출력
  • 인터럽트 (interrupt)             : 이벤트 처리
  • PWM                                : 아날로그 (처럼) 출력
  • A/D 변환기                         : 아날로그 입력 (주로 센서의 입력)
  • 통신 (주로 시리얼 통신)       : (주로) PC 혹은 다른 보드와의 통신
  • D/A 변환기                      : 아날로그 전압 출력


보드에 따라서 이러한 기능을 구현하는데 사용하는 언어도 다르다.


  • 아두이노는 C++
  • 넷두이노는 (매우 특이하게) C#.Net
  • R-Pi는 주력 언어가 파이썬 (하지만 리눅스 보드이므로 다른 언어도 가능함)
  • 비글본블랙은 자바스크립트 (마찬가지로 C++, JAVA 등도 가능). 비글본블랙은 D/A변환기도 내장하고 있으며 주변기기가 가장 풍부하게 마련되어 있다.


 어떤 보드의 기능과 프로그래밍을 살펴볼 때 위의 기능들을 사용 언어로 어떻게 구현하는지를 파악할 수 있다면 반 이상은 아는 것이라고 봐도 될 것 같다. 많이 사용되는 라즈베리 파이는 GPIO에 A/D변환기가 없으며 PWM기능도 매우 빈약하다.


  언어의 난이도 순으로 배열해 보면 (순전히 주관적인 생각임) 다음과 같다, 


  • C++ >  JAVA, C# > javascript > python


C++이 제일 어렵고 파이썬이 상대적으로 제일 난이도가 낮은 편에 속한다.


얼마 전까지만 해도 임베디드는 닥치고 C/C++ 이었는데 요즘에는 고수준 언어나 심지어 스크립트 언어로도 프로그래밍할 수 있는 보드들이 출시되고 있어서 비전문가들이 좀 더 쉽게 접근할 수 있는 환경이 되고 있다.

[#00093]


Posted by 살레시오
,

  라즈베리파이 컴퓨트 모델에 이어서 새로운 모델이 출시되었다. 이름은 model b+ 인데 기존 model b 의 단점과 제기되었던 불편한 요소들을 개선한 최종 진화판이라고 소개하고 있다.



하지만 아쉽게도 모델B와 동일한 프로세서를 사용하므로 사용자들이 가장 원했던 성능의 향상은 없지만 소소하게 개선된 점들을 짚어보면 다음과 같다.


  1. 전원부의 회로를 개선하여 불안정했던 전원을 보완하였다.
  2. 오디오 회로의 수정으로 잡음이 많았던 단점을 보완하였다.
  3. 아날로그 비디오와 오디오 단자를 하나로 통합하였다.
  4. USB포트를 두 개에서 네 개로 늘려서 키보드, 마우스, 와이피이동글을 꽂고도 하나가 남는다.
  5. 마이크로SD카드 채용하여 메모리카드의 고정성이 좀 더 향상되었다. 
  6. GPIO가 26핀에서 40핀으로 확장되었으나 추가된 핀들이 대부분 포트핀(디지털입출력핀)이다. 외부의 EEPROM을 자동 인식하기 위한 통신선 두 개가 추가되었고, PWM은 여전히 하나이며 ADC는 없다.
  7. 그외 마운트 홀의 위치를 좀 더 안정적으로 변경하였고 모서리를 둥글게 처리하였다.


그외 크기나 성능 사양은 model B와 동일하다. 프로세서와 동작클럭도 같고 램도 512MB 이다. 가격은 모델B와 같은 가격으로 책정되었다.


  참고로 (3)번 항에서 알 수 있듯이 새로운 A/V 단자가 있는데 이 단자에 스테레오 이어폰을 끼우면 그냥 오디오 단자로 사용할 수 있는데 아래 그림과 같은 케이블을 이용하면 영상신호와 음향신호를 모두 뽑아낼 수 있다고 한다. 이건 참 개인적으로 기발한 변경점이라고 생각된다.


[#00072]

Posted by 살레시오
,

  내가 학부생이었던 90년대에만 해도 DC모터를 제어하는 간단한 실험을 하려면 마이크로프로세서나 DSP부터 먼저 공부해야 했었는데 요즘 나오는 마이컴 보드들을 보면 그런 산을 피해가게끔 해 준다는 생각이 든다. 기초적인 전기회로 지식과 간단한 프로그래밍만으로(궂이 C/C++ 도 필요 없고 python(라즈베리파이) 이나 Java Script(비글본블랙) 같은 언어도 사용 가능하다.) 예전에는 무척이나 어려운 실험이 간단하게 가능하다는게 참 신기하다.


  한편으로는 이러한 환경이 비전공자들을 많이 끌어들일 것이고 더 많은 아이디어가 실제로 구현될 것이다. 참 고무적이고도 즐거운 일이다. 필자도 라즈베리파이를 접해 보고 이전부터 막연히 구상해 왔던 물건을 틈틈이 만들기 시작했는데 전에는 무척이나 어렵게 구현해야 했던 것이 의외로 쉽게 해결되서 상당히 놀란 적이 있다.


그림: 왼쪽부터 아두이노 우노 R3, 아두이노 Due, 라즈베리파이, 비글본 블랙


  특히 아두이노의 경우 하드웨어 제어보드 중에서 거의 표준과 같은 (적어도 비전공자들에게는) 위치를 차지하고 있다는 사실을 알게 되었다. 아두이노 자체도 많이 쓰이고 있고 거기서 파생된 보드들과 (오픈소스이므로 이것을 수정한 수많은 변종 보드들이 존재한다) 또한 연결해서 사용할 수 있는 센서보드(쉴드) 등이 셀 수 없이 다양하다. AVR로 회로를 어떻게 설계해야하는지, avrstudio를 어떻게 사용해야 하는지 굳이 알지 못하더라도 적당한 보드와 필요한 입력장치 및 센서보드를 선택해서 다양한 응용제품(제어기나 로봇 같은 것들)을 쉽게 만들 수 있는 것이다. 


  비교적 높은 컴퓨팅 능력을 요하는 분야에도 사용할 수 있는 옵션이 속속 등장하고 있는 추세이다. 심지어 50달러 내외의 리눅스를 OS로 사용하는 보드들도 많다. 라즈베리파이, 비글본(블랙), 마스보드, 큐티보드 등등이다.


  결국 중요한 것은 사용자의 프로그래밍 능력이라는 결론이 나온다. 프로그래밍이 가능하다면 이러한 보드들을 이용해서 (3D프린팅도 중요한 역할을 하는 것 같음) 원하는 동작을 수행하는 물리적인 제품을 손쉽게 만들 수 있는 시대가 온 것이다.

[#00073]


Posted by 살레시오
,