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


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.