메모리는 단어가 의미하는 그대로 데이터를 기억해주는 장치이다. 디지털 시스템의 모든 데이터는 1/0으로 표현되며 메모리 소자들도 이러한 이진 데이터를 기억하며 보통은 8개(바이트), 16개(워드) 등과 같이 이진 데이터(비트)를 8의 배수개로 묶어서 저장한다. 메모리는 크게 롬과 램으로 분류할 수 있다.

램 (RAM, random access memory)

 데이터를 일시적으로 저장하는 장치이다. 즉 램상의 데이터는 자주 변경되며 램에 전원이 인가되는 동안에만 그 데이터를 유지한다. 크게 SRAM (static RAM)과 DRAM (dynamic RAM)으로 나뉜다. SRAM은 재충전(refresh)이 필요 없고 속도가 빠른 반면 가격이 비싸다는 특징이 있다. 고속 동작이 요구되는 비디오 카드의 기억 장치로 사용된다. 반면 DRAM은 재충전이 필요하므로 속도가 SRAM에 비해 느린 반면 가격이 싸다는 특징이 있어서 PC의 메인 메모리로 사용된다.


[그림 1] 램의 예

롬 (ROM, read only memory)

 데이터를 영구적으로 저장하는 장치이다. 즉 롬상의 데이터는 특정한 작업을 하지 않는 이상 변경되지 않으며 롬에 전원이 인가되지 않더라도 저장된 데이터는 그대로 유지된다. 종류로는 마스크롬 (mask ROM), EP롬 (erasable programmable ROM), EEP롬 (electrically erasable PROM), 플래시EEP롬 (flash EEPROM, 보통 플래시롬이라고 함)등이 있다.


[그림 2] ROM의 예


● 마스크롬 (mask ROM)

 한 번만 구울 수 있는 롬이며 달리 칩 제조업체가 제품 출하 전에 굽는다.

● EP롬 (erasable and programmable ROM)

 칩 표면에 부착된 유리창을 통해 자외선을 쬐어 데이터를 지울 수 있으며 다시 전기적으로 롬에 데이터를 쓸 수 수 있다. 자외선 이레이져가 필요하고, 삭제하는데 많은 걸린다.

● EEP롬 (electriaclly erasable and programmable ROM)

 회로 상에서 전기적으로 지우고 다시 프로그램 할 수 있으므로 ISP가 가능하다. 주로 마이크로콘트롤러에서 시스템 매개변수(네트워크 주소, 시리얼번호 등)나 저장용으로 소형 EEPROM을 사용한다.


[그림 3] 롬라이터의 예

● 플래시롬(FLASH EEPROM)

 가장 최신 ROM 기술이고 시장 점유율도 가장 높다. ISP(in-system progrmamming, 시스템에 장착된 상태로 프로그래밍하는 것을 의미함)가 가능하고, 지우고 프로그램하는 속도도 상대적으로 빠르다. 소형 마이크로콘트롤러에서는 1-2메가 미만의 플래시들이 사용되고, 32비트 마이크로프로세서에서는 2메가 이상의 플래시들이 주로 사용된다.


메모리에 데이터가 저장되는 방식

 디지털 시스템에서의 데이터는 0/1로 표현되는 2진수이며 이를 비트(bit)라고 한다. 메모리는 이러한 데이터를 저장하는 물리적인 장치인데 8개의 비트를 묶어서 바이트(byte)라고 하고 이 바이트에 하나의 주소를 할당하면 8비트 메모리이다. 그리고 16개의 비트를 묶어서 워드(word)라고 하고 이 워드에 하나의 주소를 할당하면 16비트 메모리라고 한다. 각각의 바이트/워드는 최하위 비트부터 bit0, bit1, bit2, .., 와 같이 번호를 붙여서 참조한다.


 주소(address)는 특정한 데이터를 읽거나 쓰는 장소를 식별할 수 있는 번호인데 0번지 부터 시작하여 1번지, 2번지 와 같이 되어 있다. 마지막 번지가 몇 번지인가에 따라 메모리의 용량이 결정된다. 예를 들어 끝번지가 $FFF라면 16KByte메모리가 된다.


 다음 그림은 8비트 메모리의 예를 나타내며 본 교재에서는 b0~b7로 표기하여 각각의 비트를 참조하도록 하겠다.


[그림 4] 8비트 메모리 구조


 반면 16비트 메모리의 경우 2바이트(word)당 주소가 하나씩 할당되어 있으며 하나의 번지당 하위바이트와 상위바이트로 나뉘며 bit0~bit15로 각각의 비트를 지칭한다.

[그림 5] 16비트 메모리 구조


참고로 AVR의 경우 내장 메모리는 크게 프로그램을 저장하는 플래시 메모리와 SRAM, 그리고 EEPROM으로 나뉘는데 플래시메모리는 16비트 메모리이고 SRAM과 EEPROM은 8비트 메모리이다.


ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0003}

Posted by 살레시오
,

 마이크로프로세서는를 크게 활용 분야와 내부 명령어 구조에 따라서 분류해 볼 수 있다.

활용분야에 따른 분류


① 범용 마이크로프로세서


 uP는 전술한 바와 같이 CPU의 기능 대부분을 하나의 반도체 칩에 집적한 것이다. PC에서 사용되고 있는 인텔의 펜티엄(pentium) 프로세서가 대표적인 범용 마이크로 프로세서이다. 마이크로프로세서 한 개만으로는 동작하지 않으며, 외부에 롬, 램 및 주변장치를 장착하기 위한 부가회로가 필요하다. 주변장치를 효율적으로 관리하기 위해 운영체제 (operating system, OS)가 필요하다.


[그림 1] 범용 마이크로프로세서의 예


② 마이크로컨트롤러 (micro-controller, uC)


 주로 기기의 제어 용도로 사용되는 프로세서로서 내부에 롬(ROM), 램(RAM) 및 I/O포트를 내장하여 간단한 외부 회로만으로 동작이 가능하다. 이 밖에도 기기를 제어할 때 많이 사용되는 부가회로들 즉, A/D(analog/digital) 변환기, PWM (pulse width modulation) 발생기, 타이머/카운터(timer/counter) 등을 프로세서 내부에 내장하고 있는 경우도 많다. 대표적인 8비트 uC로서 8051계열, PIC계열 그리고 AVR계열의 디바이스들이 있다.


[그림 2] 여러가지 마이크로콘트롤러


③ DSP (digital signal processor)

 많은 연산이 필요한 영상처리나 복잡한 실시간 제어에 uP를 활용하기 위해서는 그 여러 가지 기능 중에서 빠른 연산 속도가 가장 중요하다. DSP는 다양한 신호 처리 및 고속 연산에 유리하도록 특별히 제작된 프로세서로 하드웨어적으로 부동 소수점 (floating point) 연산기능, MAC (multiplication and accumulation, 덧셈과 곱셈을 한 사이클에 수행) 연산기능, 빠른 외부 메모리 인터페이스 등이 특징이다.


[그림 3] DSP의 예


내부 명령어의 구조에 따른 분류


① CISC (complex instruction set computer) 프로세서


 어떤 필요한 기능을 수행하기 위한 명령어가 프로세서에 지속적으로 추가되어 상대적으로 명령어가 복잡하고 많은 형태이다. 명령어의 길이가 가변적이고 다양한 주소지정 모드 (addressing mode)를 가진다. 현재의 마이크로 프로세서 아키텍쳐들 중에 x86과 m68k 아키텍쳐만이 CISC이다. 추가된 많은 명령어를 잘 활용하면 짧은 프로그램 코드로 빠른 결과를 얻을 수 있지만 프로세서 설계가 복잡해지는 단점이 있다.

② RISC (reduced instruction set computer) 프로세서


 1980년대에 RISC에 대한 연구가 미국의 버클리 대학과 스탠포드 대학에서 굉장히 활발하였고, 버클리 대학의 패터슨 교수가 RISC이라는 용어를 처음으로 만들어 냈다. RISC 프로세서는 CISC 프로세서의 복잡한 명령어들의 집합대신 자주 쓰이는 간단한 명령어들만 남겨두고, 대신 이러한 명령어들이 보다 빨리 수행될 수 있도록 프로세서를 설계한 것이다. 적은 명령어 수와 적은 주소지정 모드(addressing mode)를 가지며 명령어의 길이가 고정적이다. 이전에는 고성능의 워크스테이션에서 주로 사용되었으나 최근에는 간단한 마이크로컨트롤러, DSP 등에도 적용되고 있다.

ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0002}

Posted by 살레시오
,

 마이크로(micro, 1/1000000)라는 말은 매우 작다는 의미를 내포하며 프로세서는 ‘어떠한 일을 처리하는 장치‘라는 뜻으로서 이 두 단어의 합성이인 마이크로프로세서 (microprocessor, 이후 uP로 표기함)는 단어의 뜻으로만 보면 ’극소형의 처리장치‘정도로 해석될 수 있을 것이다. 좀 더 기술적인 설명은 작은 면적의 실리콘에 복잡한 전자회로를 집적시킨 것으로, 이 전자회로는 미세한 도선으로 연결된 수천 혹은 수백만 개의 콘덴서나 트랜지스터(transistor) 등으로 구성되어 있다.


 인텔이 발표한 최초의 uP는 1971년에 소개된 4004로 2300개의 트랜지스터를 가지고 있었으며 클럭속도는 108KHz이고 4bit 프로세서이다. 이 μP는 간단한 계산을 수행하는 계산기를 만드는데 사용이 되었으나 그 이후에 발전에 발전을 거듭하여 개인용 컴퓨터를 탄생시키는 등 우리의 생활을 광범위하게 바꾸는 계기가 되었다.


 참고로 [그림 1]에 내부회로가 도시된 펜티엄3는 약 9백5십만 개의 트랜지스터를 집적하였음을 보면 마이크로프로세서의 발전 속도를 짐작할 수 있다.


[그림 1] 인텔의 4004 외형 / 인텔 4004 내부 회로 / 펜티엄4의 내부 회로


 일반적으로 uP는 [그림 2]에 도시된 바와 같이 레지스터(register), 산술논리장치 (arithmatic logic unit, ALU), 제어장치, 데이터버스 등의 구조를 가지며 이러한 기능을 가지는 장치들을 하나의 칩에 집적한 것이다.

[그림 2] uP의 구성 요소

레지스터 (register)

 레지스터는 CPU내부의 기억장치이고 ALU에서 수행한 연산의 결과를 임시로 저장하는 역할을 한다. 고속으로 데이터에 접근, 처리가 가능하며 외부메모리는 번지로 구별하는데 반해 레지스터는 이름으로 구별한다. 크게 범용레지스터 (누산기 등)와 특수 목적 레지스터(프로그램 카운터, 명령어 레지스터 등)로 나뉜다.

산술논리장치 (ALU)

 산술 및 논리 연산 수행하는 장치이다. 레지스터에서 피연산자를 받고 연산 결과를 다시 레지스터에 저장한다. 조합논리회로로 구성되어 있다.

제어장치

 CPU 내부의 신호의 흐름를 제어하는 신호를 발생한다.

각종 버스(bus)

 버스(bus)라는 것은 디지털 시스템에서 동일한 기능을 수행하는 신호선들의 집합이다. uP내부에서 하나의 신호선은 두가지 상태(0, 1)만을 가질 수 있다. 이러한 선이 여러개 모이면 다양한 경우의 수가 생겨서 여러 상태나 값을 가지고 전달할 수 있게 된다.

  • 데이터(data) 버스 : uP가 내외부의 메모리와 데이터를 주고받는데 사용하는 신호선이다.

  • 어드레스(address) 버스 : uP가 내외부의 메모리 번지를 지정하는데 사용하는 신호선이다.

  • 신호(signal) 버스 : uP가 수행할 작업의 종류 및 상태를 메모리나 입출력기기에 알려주고, 외부의 요구를 받아들이는 신호선이다.


 참고로 디지털 시스템(digital systme)에서는 전압값을 이용하여 0/1 신호를 구분한다. 신호 0은 0V (혹은 GND라고 표시함) 이고 신호 1은 5V/3.3V/1.8V 등의 전압값이 사용된다. 이러한 2진 신호를 여러 개 묶어서 어떤 정보나 데이터 값을 전달하게 되는 것이다. 2진 신호가 몇 개가 묶였느냐에 따라서 다음과 같이 구분한다.

  • 비트 (bit) : 0/1을 표시하는 최소 데이터 단위

  • 바이트 (byte) : 8 bits

  • 워드 (word) : 2 bytes = 16 bits

  • 더블 워드 (double word) : 2 words = 4 bytes = 32 bits


ATmega8(A) 강좌 전체 목록 >>>


c{am8},n{a8m0001}

Posted by 살레시오
,

  STM32 칩셋을 이용한 Maple이라는 아두이노 호환 보드가 있다. 아래는 메이플과 메이플미니 보드이다. leaflabs 라는 제조사에서 2010년도에 출시하였다.

아두이노 호환 핀배열을 가지면서 AVR기반의 보드들보다 고성능 칩셋을 사용하여 높은 성능을 가진다.


 하지만 아두이노두에(due)나 곧 출시될 제로(zero) 보드 및 타 제조사의 다양한 저가형 고성능 보드에 밀려서 유지가 힘들어 더이상 지원하지 않게 되었다는 공지가 나왔다.


    Maple end-of-life notice


하드웨어는 단종되었지만 여전히 소스는 github에 오픈되어 있으며 소소한 업데이트는 계속된다고 한다. [#00108]

Posted by 살레시오
,

micropython 코어를 이용한 wipy 라는 IoT 보드가 킥스타터에서 자금을 모으고 있다.



내세우고 있는 특징들은 다음과 같다.


  • 저가, 소형, 빵판에 장착 가능
  • 초저전력 소모 (와이파이 연결해도 850uA )
  • 100% 파이썬 프로그래밍 
  • 충분히 많은 GPIOs, 인터페이스, 주변기기
  • 고성능  CPU와 최신 WiFi radio.


이 기기의 최대 특징은 와이파이와 결합된 파이썬 보드라는 것이다. micropython의 펌웨어를 이용하여 파이썬 3.4를 지원한다. 그리고 와이파이로 무선 프로그래밍이 가능하다는 것이다. 다음과 같이 텔넷 연결도 가능하다.



보면 알겠지만 일반적인 파이썬쉘로 접속이 가능하므로 그때그때 프로그램의 동작을 확인해 볼 수 있다.


  물론 전문적인 시스템 개발자들은 앞으로도 한동안 여전히 C/C++을 이용해야 할 것이다. 하지만 이런 보드들이 좀 더 늘어나면 하드웨어 프로그래밍을 하는데 굳이 C/C++을 배우지 않고 파이썬만으로도 할 수 있는 환경이 마련되어 일반 사용자들에게 충분히 어필을 할 수 있을 것 같다.

[#00097]


Posted by 살레시오
,

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


  • (디지털) 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 살레시오
,

  라즈베리파이를 사용하기 위해서는 HDD대신 사용되는 SD카드에 OS를 미리 인스톨하거나 또는 인스톨할 수 있는 파일들을 미리 복사해 놓아야 한다.


  이를 위해서는 용량이 4GB 이상인 SD카드가 필요하다. SD카드를 선택할 때 한 가지 알아둘 것은 class 에 따라서 읽고 쓰는 속도가 다르므로 가능한 속도가 빠른 SD카드가 더 유리하다는 것이다. 보통 class 10 이 가장 빠른 속도를 가지며 이 클래스가 낮아지면 더 느려지고 가격도 조금 저렴해 진다. (Minibian 을 사용하면 2G SD카드에도 들어간다. 대신에 최소한의 OS만 들어있기 때문에 모든 프로그램을 직접 설치해 주어야 하는 불편함이 있다.)


  노트북에는 SD카드 홀더가 있는 경우가 많고 없다면 별도의 SD카드 리더기를 이용해야 한다. 먼저 포멧을 해야 하는데 SDFormatter 라는 유틸리티를 사용한다. 이것을 실행한 후 다음과 같이 Option>Format Size Adjustment 옵션을 반드시 'ON'으로 설정한 후 포맷을 한다.




그 다음 http://www.raspberrypi.org/downloads 에서 다운 받은 NOOBS_v1_x_x.zip 파일의 압축을 해제한 다음 그 것을 통째로 SD카드의 루트 디렉토리에 복사하면 된다. 이것을 라즈베리파이에 끼운 후 전원을 인가하면 여러가지 OS중에서 택일하여 운영체제를 인스톨할 수 있다.

[#00074]


Posted by 살레시오
,

 아두이노를 사용해서 프로토타잎을 만들어 실험을 하다 보면 빵판에 와이어링(wiring)을 하게 되어 있는데 회로가 조금만 복잡해져도 선이 얽히게 되어 무척이나 불편하다. 처음에는 간단한 방법으로 시제품을 만들 수 있다는 점이 신기하고 편리하게 생각되지만 이게 반복되다 보면 무척이나 번거로운 작업이 되어 버린다.


와이어링 미로 (wiring maze)


이런 단점과 학습의 편이성을 높이기 위한 방편으로 seeed 라는 회사에서 판매하고 있는 grove 시스템이라는 것이 있다. 이 모듈들은 주변 기기와의 인터페이스를 3핀이나 4핀으로 통일하는 시도를 하고 있다.

Newbundle1.jpg

상단 중앙에 있는 것이 아두이노 그로브 쉴드이고 이것을 아두이노에 끼우면 3핀이나 4핀 인터페이스로 되어 있는 모듈들을 쉽게 연결할 수 있다. 자세히 보면 모두 4핀으로만 구성된 것을 알 수 있다. 모듈은 디지털핀, 아날로그핀. 혹은 I2C, 시리얼 통신으로 제어할 수 있다. 모듈의 종류도 100가지가 넘어서 웬만한 기초적인 장치들은 다 갖추어져 있는 것 같다. 버튼이나 LED모듈과 같이 간단한 것은 디지털핀 하나와 매핑이 되어 있지만 LCD모듈과 같은 것은 시리얼통신으로 연결하여 제공되는라이브러리를 이용하여 간편하게 제어하는 식이다. 이것을 이용하면 물론 자작하는 재미는 줄어들겠지만 지저분한 점퍼선으로부터 벗어날 수 있다.


 라즈베리파이의 GPIO핀에 연결해서 사용할 수 있는 GrovePi 라는 것도 있다. GrovePi는 이러한 grove 모듈들을 라즈베리파이에서 연결해 제어할 수 있도록 하는 인터페이스 보드이다.



가장 큰 장점은 파이에서 파이썬 스크립트로 간편하게 모듈들을 제어할 수 있다는 점이다. 아마도 파이와 GrovePi 간에 I2C 통신이나 시리얼 통신으로 제어 신호를 주고 받는 식으로 되어있지 않을까 짐직이 든다.




Posted by 살레시오
,