micro:bit v2로 플레이
소개
micro:bit의 v2가 나왔기 때문에 샀습니다.
변경점에 대해서는 스위치 사이언스의 blog등을 봐 준다고 하고, v2에서는 nRF52833이 사용되고 있어 Flash나 RAM의 사이즈, 스피커나 마이크의 추가, Bluetooth 5등 파워 업하고 있습니다.
스피커나 마이크의 추가에 의해 목소리를 사용한 작품도 할 수 있는 것은 아닐까요.
micro:bit의 프로그래밍에서는 공식 사이트의 브라우저로 프로그래밍하는 것이 일반적이라고 생각합니다만, 방금 Arduino의 라이브러리가 대응한 것을 보았으므로 이번은 Arduino에서 해 보고 싶습니다.
준비
우선 ArduinosIDE를 열고 환경설정 > 보트 관리자에서 URL을 붙여넣습니다.
https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json
URL을 붙이면 도구>보드>보드 관리자를 열고 nrf로 치고 검색하면
Nordic Semiconductor nrf5 Boards
가 나오므로 설치합니다.설치한 후 보드에서
BBC micro:bit V2
를 선택할 수 있게 되면 준비 완료입니다.놀자.
adafruit의 기사의 스케치를 복사하여 우선 LED 빛나게 해 보겠습니다.
microbit_v1_blink.ino
const int COL1 = 3;
const int LED = 26;
void setup() {
// because the LEDs are multiplexed, we must ground the opposite side of the LED
pinMode(COL1, OUTPUT);
digitalWrite(COL1, LOW);
pinMode(LED, OUTPUT);
}
void loop(){
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
You should see the top left LED blinking!
왼쪽 상단 LED가 ... 붙지 않습니다 ... orz
공식 사이트 를 보면,
micro:bit v1에서는 LED matrix의 9x3이었지만, v2는 5x5로 사양이 바뀐 것 같습니다.
v1과 v2의 변수 정의를 살펴보면
v1
const uint32_t g_ADigitalPinMap[] = {
// 0 - 4
3, // A0 - left pad
2, // A1 - middle pad
1, // A2 - right pad
4, // A3 - COL1
5, // A4 - COL2
//省略
// 17 + 18
(uint32_t)-1, // 3.3V
(uint32_t)-1, // 3.3V
0, // SCL
30, // SDA
25, // RX
24, // TX
7, // COL4
8, // COL5
9, // COL6
13, // ROW1
14, // ROW2
15, // ROW3
v2
const uint32_t g_ADigitalPinMap[] = {
// 0 - 4
2, // A0, LEFT PAD
3, // A1, MIDDLE PAD
4, // A2, RIGHT PAD
31, // A3, COL3
28, // A4, COL1
// 21 - 25
21, // ROW1
22, // ROW2
15, // ROW3
24, // ROW4
19, // ROW5
v1에서는
col=3, row=26
를 선택하면 왼쪽 위의 LED가 붙은 곳을 v2에서는 col=4, row=21
라고 선택하면 LED가 붙을 것 같습니다.col=4, row=21
로 스케치를 작성해 보면 LED가 켜졌습니다.microbit_v2_blink.ino
const int COL1 = 4; //←4にする!!!
const int LED = 21; //←21にする!!!
void setup() {
// because the LEDs are multiplexed, we must ground the opposite side of the LED
pinMode(COL1, OUTPUT);
digitalWrite(COL1, LOW);
pinMode(LED, OUTPUT);
}
void loop(){
digitalWrite(LED, HIGH);
delay(500);
digitalWrite(LED, LOW);
delay(500);
}
왼쪽 상단에서 오른쪽 하단까지 하나씩 깜박입니다.
c++
const int cols[5] = {4, 7, 3, 6, 10};
const int rows[5] = {21, 22, 23, 24, 25};
void setup() {
// because the LEDs are multiplexed, we must ground the opposite side of the LED
Serial.begin(115200);
for(int i=0; i < 5; i++) {
pinMode(cols[i], OUTPUT);
if(i==0) {
digitalWrite(cols[i], LOW);
} else {
digitalWrite(cols[i], HIGH);
}
pinMode(rows[i], OUTPUT);
}
}
void loop(){
for(int i=0; i< 5; i++) {
for(int j=0; j < 5; j++){
digitalWrite(rows[i], HIGH);
digitalWrite(cols[j], LOW);
delay(200);
digitalWrite(rows[i], LOW);
digitalWrite(cols[j], HIGH);
delay(200);
}
}
}
다음은 Bluetooth로 무언가하고 싶다고 생각했습니다만, 라이브러리 쪽에서 아직 nrf52833은 대응할 수 없어 컴파일 에러가 됩니다.
현재 Arduino + micro : bit v2 + Bluetooth로 재생하는 것은 어려울 것 같습니다 ... 유감! 😭😭😭
htps : // 기주 b. 코 m / 산데에 p 미 스트리 / 아
htps : // 기주 b. 이 m / 씨데에 p 미스트리 / 아 루즈이의 -B ぺぺ리 p 주걱 l / b ぉ b /까지 r / src / n RF51822. h
※nrf52832에 대응하는 commit도 있었으므로 대응해 준다고 생각하고 싶습니다만, 최근 활동이 대단합니다...
htps : // 기주 b. 코 m / 씨데에 p 미스트리 / 아 루즈의 - B ぺぺ리 p 주걱 l / 코미 t / 1 세아 5d24 아 6218515f180811837784c1742에 10에 0c
Reference
이 문제에 관하여(micro:bit v2로 플레이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sat0ken/items/13bd03378c28b98a794e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)