배터리로 작동하는 데이터 수집 프로젝트를위한 마이크로 컨트롤러 선택


18

우물에서 수위를 측정 할 계획입니다. 최대 수위는 최대 5m이며 깊이는 약 10m입니다. 내 계획은 초음파 센서 HC SR04 를 사용하여 깊이를 측정하고 지그비를 통해 집안의 라즈베리 파이로 전송하는 것입니다.

이전 질문 에서 논의했듯이 초음파 센서와 ZigBee 모듈을 함께 연결하려면 마이크로 컨트롤러를 선택해야합니다.

선택을위한 매개 변수는 다음과 같습니다.

  1. 저전력 : 배터리로 이것을 작동시킬 계획이므로, 저전력 사용이 우선 순위입니다. 현재로서는 전력 사용이나 배터리 교체 사이 또는 사용할 배터리에 대한 목표가 없습니다. 이것은 더 많은 학습 프로젝트이며 집에 있기 때문에 융통성이 있지만 전력 사용량이 적을수록 좋습니다.

  2. 저렴한 비용 : 이것은 저를위한 학습 프로젝트이며, 이것에 엄청난 돈을 쓰고 싶지 않으므로 저렴한 비용이 좋습니다.

  3. 우물 내부 작업 : 전체 프로젝트는 우물 내부에서 작동하며 가혹한 햇빛과 비에 노출 될 것입니다. 그래도 좋은 사례와 보호를 제공 할 것입니다.

  4. 프로그래밍하기 쉽습니다.

ZigBee를 간단하게 선택하고 사용 사례와 저전력을 충족시킵니다. 그러나 내 요구 사항은 센서 데이터를 전송해야하며 다른 전송에 개방되어 있습니다. 내 우물에서 라즈베리 파이까지의 거리는 벽이 6 미터 정도입니다. 수도 펌프가 작동 중일 때 (매일 약 20 분) 10 분마다 1 분에 2 회의 수심을 측정 할 계획입니다.


2
다소 폭이 넓거나 주제가 아닌 것 같습니다. 보드의 작은 MCU가 적합합니다. 지그비를 결정하지 않았다면, BLE가 내장 된 BBC 마이크로 비트와 배터리 커넥터를 살펴 보는 것이 좋습니다.
Sean Houlihane

2
지그비 라디오를 원한다면 최소한 MCU (일반적으로 ARM Cortex-M) CPU와 결합하는 부분을 평가해야합니다. 당신이 그 길을 가야한다는 것을 의미하지는 않지만, 그렇게 결정하지 않으면 정당한 이유가 있어야합니다.
Chris Stratton

2
"우물 내부"란 무엇을 의미합니까? 사건이 물 아래에 있습니까? 수 중에서 Xbee 모듈로 전송하거나 수신하지 마십시오. 대부분은 2.4 GHz 대역에서 작동하며 물에 잘 흡수됩니다. 다른 것들은 900 MHz 부근에서 작동하며 아마도 물을 아주 잘 관통 할 수는 없습니다. 케이스가 수중이 아닌 경우 xbees로 6m + 벽면이 양호해야합니다.
Jonas Schäfer

"우물 내부"는 장치가 우물 내부에 있지만 물 위에 위치 함을 의미합니다.
Raj

답변:


20

마이크로 컨트롤러 선택의 일반적인 프로세스.

  1. 마이크로 컨트롤러에 대한 요구 사항을 요약하십시오. 예를 들어이 경우

    • 트리거와 에코 펄스 사이의 시간을 측정하기위한 1 개의 하드웨어 타이머 .
    • 센서 에코 및 트리거 핀을 인터페이스하기위한 2 개의 GPIO 핀.
    • 아마도 UART는 상기 RF 통신 모듈을 인터페이싱한다.
    • 배터리 전압을 모니터링하기위한 1 개의 ADC 입력 .


    이를 위해 8 핀 컨트롤러를 사용할 수 있으며 일반적인 용도로 프로그래머 핀을 사용해야 할 수도 있습니다.

  2. 필요한 CPU 성능메모리 요구 사항을 결정하십시오 . 8 비트 MCU를 사용하는 것으로 충분합니까 아니면 32 비트 MCU가 필요합니까? 수용 가능한 수십 MHz 또는 1 MHz의 CPU 클럭 속도는 무엇입니까? 프로그램 메모리, RAM 및 ROM이 얼마나 필요합니까?

    설명 된 응용 프로그램이 주어지면 높은 컴퓨팅 성능이 필요하지 않습니다. 아마도 8 비트 컨트롤러로 충분할 것입니다 (32 비트 컨트롤러보다 훨씬 저렴하지는 않으므로 가격으로 결정할 수 있습니다).

  3. 저전력 . 중요하지 않을 때는 공급 전압과 시스템 클록 주파수가 가장 낮은 저전력 모드를 사용하여 거의 모든 종류의 컨트롤러를 사용할 수 있습니다. 더 중요한 경우 (ARM® Cortex®-M0 또는 M0 + CPU 코어)와 같은 전용 저전력 MCU 코어로 시작하여 검색 범위를 좁힐 수 있습니다. 일반적으로 데이터 시트에는 대부분의 저전력 모드 / VCC / SysClk 주파수에 대한 표가 포함되어 있으며 , 각 주변 장치의 소비량도 목록에 있습니다.

  4. 개발자 도구 . 나는 그것을 매우 중요한 측면으로 생각합니다. 전용 하드웨어 프로그래머 도구는 많은 비용이들 수 있으므로 일반적으로 이미 프로그래머가 사용했던 MCU를 고수합니다. 다른 제품군이나 브랜드로 전환 할 때는 나중에 맞춤형 보드를 프로그래밍하는 데 사용할 수있는 온보드 프로그래머가있는 개발 보드에 투자하는 것이 좋습니다. 일반적으로 프로그램을 마이크로 컨트롤러로 다운로드하는 데 드는 비용이 얼마인지 항상 먼저 확인하십시오.

@Sean이 의견에서 지적했듯이, 가능하고 비용 효율적인 솔루션은 프로그래밍 가능한 통합 응용 프로그램 MCU와 함께 제공되는 RF 모듈을 검색하여 RF 통신 부분을 처리하면서 펌웨어를 실행할 수있는 솔루션입니다. 이러한 모듈은 BLE, WiFi 및 ZigBee 및 기타 여러 기술에 존재합니다.

또한 모든 MCU가 우물에서 어떻게 살아남을 수 있는지에 관한 것입니다. 장치에 제공 할 인클로저에 모두 표시됩니다. 예를 들어 인클로저가 100 % 방수가 아닌 경우 어떤 MCU를 선택하든 문제가되지 않습니다.


TL; DR; 다음은 제품 별 부분입니다.

  1. Farnell에서 0.87 $ / 1 조각ATtiny25 를 선택할 수 있습니다 . 8 비트, 8 핀은 공간을 많이 차지하지 않습니다. 파워 다운 모드에서는 워치 독이 활성화 된 경우 3 V에서 워치 독이 비활성화 된 상태에서 0.2 μA를 소비합니다. 2-4 μA. 그것은이다 아두 이노 호환 이 많이 비용 (USBASP 또는 AVRdude 프로그래머 비용 eBay에 2 $에 대한)되지 않습니다 프로그래밍 그래서. ( 참고 :이 MCU에는 하드웨어별로 SPI 만 있기 때문에 Arduino Software Serial 라이브러리를 사용하여 RF 통신 모듈을 인터페이스해야합니다.) 전력 소비가 비교적 작지만 저렴하지만 비트 UART가 발생할 수 있습니다. 그래도 복잡합니다 . 2kB 프로그램 메모리가있어 충분합니다.

  2. 또는 대기 모드에서 2μA를, 정지 모드에서 5μA를 소비하는 ARM Cortex M0을 사용하십시오. 이러한 MCU는 예를 들어 1.09 $ / 1 piece의 STM32F030F4 입니다 . 최대 48MHz 시스템 클럭 주파수를 가진보다 강력한 32 비트 컨트롤러이지만 + 0.2 $ 만 볼 수 있습니다. 이 간단한 작업에는 충분하지 않은 16kB 프로그램 메모리가 제공됩니다. SPI, UART, I2C 및 기타 많은 주변 장치가 있습니다. 프로그래밍 비용이 더 많이 들며, 파넬 에서는 전용 프로그래머 비용이 20 $입니다. 내 의견으로는 가치가 없다. 대신 온보드 프로그래머 (ST-LINK)가있는 F0 제품군 개발 보드에 투자 할 수 있습니다 . 디스커버리 보드 비용 ~ 10 $. 이 보드로 프로토 타이핑을 시작하고 나중에 프로그래머로 사용할 수 있습니다.


3
디스커버리 및 nucleo 보드의 ST-LINK는 종종 보드 자체의 MCU 이외의 다른 MCU에 사용될 수 있습니다. 특정 보드는 확실하지 않지만 외관상으로는 SWD를 사용하며 오른쪽의 점퍼를 사용하여 연결을 끊을 수 있습니다. 이것에 대한 좋은 점은 ST-LINK가 프로그래머 일뿐만 아니라 인-서킷 디버거 이기 때문에 개발이 많이 필요 하다는 것입니다 .
Jonas Schäfer

3
또한 XBEE의 회신에 신경 쓰지 않으면 ATtiny의 범용 직렬 인터페이스를 사용하여 비트 뱅킹 소프트웨어 구현보다 빠른 UART를 얻을 수 있습니다.
Jonas Schäfer

3
라디오 모듈에는 종종 전용 MCU 리소스가 제공된다는 점에 주목할 필요가 있습니다 (모듈은 유형 승인을 단순화하기 위해 존재합니다). CPU는 일반적으로 RF 스택과 공유되므로 주기적 인터럽트 등을 수용해야합니다.
Sean Houlihane

3
ULPBENCH 는 저전력 작동 (배터리)이 중요 할 때 좋은 리소스입니다.
neonzeon 2012 년

5

프로그래밍의 용이성과 저렴한 비용을 고려할 때 아마도 일종의 Arduino 모듈 (또는 저렴한 클론)로 시작할 것입니다. Digi XBee 모듈을 사용하는 것과 같이 ZigBee 용 예제 코드와 마찬가지로 초음파 센서 용 코드가 이미 존재합니다. 후자의 경우 XBee를 직렬 포트에 연결하고 기존의 오래된 "AT"명령 인터페이스와 연결 한 후 텍스트를 아래로 보낼 수있는 지점 간 채널이 있습니다 (Raspberry Pi로). ). ZigBee는 가장 저렴한 단거리 통신 유형은 아니지만 XBee 모듈의 가격은 지난 5 년간 실질로 떨어졌습니다.

일부 사람들은 Arduino에서 사용되는 C / C ++ 기반 언어에 문제가 있다는 것을 알고 있지만이 경우 다른 사용자의 기존 스크립트를 대부분 병합합니다.

"Arduino 절전 모드"를 Google에서 사용하는 경우 Arduino를 저전력 모드로 전환하고 산발적으로 일어나서 읽기를하고 통신 한 다음 절전 모드로 다시 들어가는 방법에 대한 예를 찾을 수 있습니다.


1
ATmega 칩으로 우수한 전원 관리가 가능하지만 일반적인 Arduino 보드 에는 기생 전력 소모가있어 배터리 수명을 크게 제한합니다.
Chris Stratton 2012
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.