개발자/Arduino

Arduino Nano 33 BLE 코어를 Mbed OS에서 구축하기로 선택한 이유

지구빵집 2021. 2. 23. 10:30
반응형

 

 

Arduino Nano 33 BLE 코어를 Mbed OS에서 구축하기로 선택한 이유

 

이 게시물은 Arduino의 펌웨어 개발 팀을 담당하고 있는 Martino Facchin이 작성한 것입니다. 바라건대 이것은 우리가 하는 일의 내부 작동을 설명하는 일련의 게시물 중 첫 번째입니다.

 

 

새롭고 반짝이는 작은 Nano 33 BLE 및 Nano 33 BLE Sense는 해커의 여름휴가에 심각한 위협이 되고 있습니다. (보드의 굉장함에도 불구하고 어쨌든 호수나 해변에서 며칠을 보내는 것이 좋습니다!)

 

Arm 엔지니어가 매일 일하러 가는 데 사용하는 영국 케임브리지의 같은 거리를 걸었던 Isaac Newton 경을 처음부터 시작하는 것이 항상 영리한 생각은 아닙니다. 컴퓨터 과학이 시작된 이래로 바퀴를 재창조하기 위해 수만 시간이 소요되었습니다. 때로는 훌륭한 결과를 얻었고, 다른 때는 더 많은 조각화와 혼란을 가져왔습니다.

 

Nano 33 BLE 및 Nano BLE Sense의 기반이 되는 Nordic nRF52840 Cortex-M4 마이크로 컨트롤러에 대한 공식 Arduino 코어가 없었기 때문에 다양한 대안을 살펴보았습니다.

 

  • Nordic 소프트 장치 인프라 사용
  • 처음부터 코어 작성
  • Mbed OS를 기반으로 사용

옵션 1은 맛있어 보이지만 Arduino의 초석인 오픈 소스 소프트웨어와 충돌합니다. 사실, 소프트 디바이스의 폐쇄 소스 접근 방식은 사용자의 자유를 제한합니다.

 

옵션 2는 단일 보드에 대해 우리 어깨에 많은 부담을 줘서 코어를 재사용할 수 없게 만듭니다.

 

그래서 우리는 옵션 3으로 이동했습니다. 코어 기반 Mbed OS 기반, 드라이버 및 라이브러리 공유를 기본으로 합니다. 

 

많은 분들이 알고 계시 겠지만 Mbed는 완전 선점형 RTOS (실시간 운영 체제)입니다. 즉, 노트북이나 스마트 폰에서 발생하는 것과 매우 유사하게 동시에 여러 "프로그램"(특히 스레드)을 실행할 수 있습니다. Arduino에서 우리는 오랫동안 고급 보드에서 사용할 RTOS를 찾고 있었지만 Mbed OS로 작업을 시작할 때까지 우리가 좋아하는 것을 찾지 못했습니다. RTOS 프로그래밍은 일반적으로 매우 복잡합니다 (운영 체제에 대한 모든 대학 학년 과정은 '뮤 텍스'및 '기아'와 같은 무서운 용어로 가득 차 있을 것입니다). 하지만 아두 이노로 사용하고 싶다면 걱정할 필요가 없습니다. setup ()과 loop ()는 평상시 위치에 있으며, 프로그램이 실행되는 동안 아무도 당신의 프로그램을 망치지 않을 것입니다.

 

그러나 더 많은 작업을 수행하려면 모든 Mbed 인프라가 mbed :: 네임 스페이스 아래에 숨겨져 있습니다. 드라이버 재사용의 부작용으로 이제 Arduino의 모든 Mbed 보드를 최소한의 노력으로 지원할 수 있습니다. 또한 코어 구조를 통해 Mbed 개발자는 실제 함수 호출 전에 arduino ::를 추가하기 만하면 Arduino 함수 및 라이브러리를 사용할 수 있습니다.

 

Mbed는 틱리스 모드도 지원합니다. 이런 식으로 코드에 delay( )를 작성할 때마다 보드는 저전력 모드로 전환하여 다음 예약된 이벤트 (또는 외부 인터럽트)를 위해 언제 깨울지 정확히 알고 있습니다. Nano 33 BLE에서 평범한 오래된 Blink를 실행하는 동안 인상적인 4.5uA의 낮은 소비를 달성할 수 있습니다 (이 값을 얻으려면 최소한의 하드웨어 수정이 필요하지만 다른 블로그 게시물이 올 예정입니다). Bluetooth 지원에 관해서는 멋진 Arduino BLE을 사용하여 오늘 BLE 장치 생성을 시작할 수 있지만 Arduino BLE에서 아직 사용할 수 없는 기능이 필요한 경우 일반 Cordio API도 지원합니다. 

 

물론 모든 것이 오픈 소스입니다!

 

과다한 온보드 센서로 멋진 프로젝트를 만들고 싶다면 Arduino IDE를 실행하고 보드 관리자를 열고 Nano 33 BLE를 검색하십시오. 한 번의 클릭으로 갈 준비가 되었습니다!

 

코어를 해킹하거나 다른 Mbed 보드를 추가하거나 단순히 살펴보고 싶다면 다음 진입 점은 GitHub repo 입니다. 버그를 찾거나 제안이 있으면 부끄러워하지 마십시오. 우리는 커뮤니티를 사랑하며 가능한 반응을 보이려고 노력할 것입니다. 

 

포스팅의 원문 출처: Why we chose to build the Arduino Nano 33 BLE core on Mbed OS

 

 

오늘도 열심히! 늦는 것은 늦는 것뿐이야. 전혀 상관없어.

 

 

 

 

반응형