:::: MENU ::::
Browsing posts in: Microbit

아두이노에서 WebUSB 사용하기

구글 크롬 65버전 이상일 경우 WebUSB를 지원한다.

Micro:Bit

Micro:bit의 경우 웹에서 MakeCode같은 프로그램으로 코딩을 하고 hex 파일을 다운로드 후 외장 디스크로 연결된 디바이스에 drag & drop를 해서 프로그래밍을 했는데, 이제는 웹브라우저에서 바로 USB를 통해 프로그래밍이 가능하다.

Arduino

아두이노의 경우 다음과 같이 작업을 한다.

  • 아두이노는 1.6.11 이상 버전 사용
  • Contents/Java/hardware/arduino/avr/cores/arduino/USBCore.h 파일의 #define USB_VERSION 0x200를 0x210 로 수정
  • https://github.com/webusb/arduino 이 repo의 WebUSB폴더를 아두이노 라이브러리에 copy
  • 예제 프로그램으로 동작 확인
  • 현재 지원되는 보드
    • Arduino Leonardo
    • Arduino/Genuino Micro
    • Arduino/Genuino Zero
    • Arduino MKR1000
    • Arduino MKRZero
    • Arduino MKRFox1200
    • Adafruit Feather 32u4

참고

https://www.hackster.io/FreeGroup/arduino-webusb-circuit-simulator-fun-9c841a

 



BBC Microbit 오프라인에서 사용하기

BBC microbit를 오프라인에서 사용하려면 링크를 참고 하고 Manuall Installation 항목을 따라서 환경을 셋업한다.

1. yotta설치

Mac OS의 경우

brew tap ARMmbed/homebrew-formulae
brew install python cmake ninja arm-none-eabi-gcc
pip install yotta

Trouble shooting
brew 관련 아래과 같은 문제가 있을 경우

sudo chown -R $(whoami):admin /usr/local
cd $(brew –prefix) && git fetch origin && git reset –hard origin/master

터미널에서 다음과 같은 에러메시지가 나올때
error: connection error: (“bad handshake: Error([(‘SSL routines’, ‘ssl3_get_server_certificate’, ‘certificate verify failed’)],)”,)

pip install -U certifi

참고: https://github.com/ARMmbed/yotta/issues/744

2. Srecord 설치

brew install srecord

3. 예제 코드 받기

git clone https://github.com/lancaster-university/microbit-samples
cd microbit-samples

4. 타겟을 miccrobit로 설정

yt target bbc-microbit-classic-gcc

5. 프로젝트 빌드

yt build

6. 마이크로비트에 다운로드 하기
마이크로비트는 MICROBIT라는 이름의 외장디바이스로 되어 있으니 hex파일을 copy하면 된다.

cp ./build/bbc-microbit-classic-gcc/source/microbit-samples-combined.hex /Volumes/”MICROBIT”

참고
https://lancaster-university.github.io/microbit-docs/offline-toolchains/
http://yottadocs.mbed.com/#installing


BBC micro:bit 분석

BBC micro:bit는 영국에서 컴퓨터 교육용으로 디자인된 마이크로컨트롤러 보드이다.

개발에 참여한 파트너사들

하드웨어

  • 메인 MCU: ARM CortexM0 코어에 블루투스 LE 내장된 노르딕사의 nRF51822 (256KB flash, 16KB SRAM)
  • 인터테이스 : USB 2.0 OTG 내장된 NXP KL26Z (CortexM0+) DAPLink를 제공하여, 가상 USB 플래시 드라이브를 제공해서 펌웨어 업데이트를 가능하게 하며, USB 파워를 받아서 전압 레귤레이터의 역할. 관련 포스팅
  • 3 가속도 : NXP MMA8652, 메인 MCU I2C 연결
  • 3 지자기센서 : NXP MAG3110, 메인 MCU I2C 연결
  • 5×5 LED 어레이
  • 2개의 버튼

핀아웃

소프트웨어

모두다 브라우저기반의 컴파일러를 제공하며, 난이도에 따라 아래 그림 처럼 3가지로 나뉠 수 있다.

아키텍처

기타

관련자료