Wio GPS Boardを開けてみた
深センの電気街の中にあったSeeedのアンテナショップを行ったときに日本には売っていないWio GPS Boardという商品を見つけました。電気街に言ったときの話はこちらです。
見た目はWio LTEとよく似ています。僕はWio LTEを買ったことがありませんが、セルラー通信の入門に一つ買ってみたわけです。付属品ははBluetoothのアンテナとGSMアンテナ、そしてGPSを受信するためのGNSSだけです。Wio LTEは国によってバージョンがあり、日本版のWio LTEの価格は9800円でしたが、こちらのWio GPS boardは買った時は200元(約3000円)でした。結構安いです。
裏面はこんな感じです。よく見ると左下に製造年月日らしきものが書かれている通り、2017年に出たものみたいです。Wio LTEよりも前に発売されたもののようです。(ちなみにWio LTEの海外版にはGPSが搭載されていますが、日本版には未搭載です)
ネットで調べてもWio GPS Boardの情報はあまりありませんでしたが、代わりにWio Trackerというのが出てきました。
明らかにここに書かれたハードの仕様とよく似ているのでこのwikiを参考にしていろいろいじってみました。
まずはLチカ
まずはお約束のLチカをやってみます。なんとこのボードにはNeo Pixel RGBが内蔵されているようなので、実際に3色に光らせています。ArduinoにAdafruit NeoPixel Libraryをインストールして、以下のソースコードを実行させます。
#include "MC20_Arduino_Interface.h"
#include <Adafruit_NeoPixel.h>
#define RGBPOWER 6 //To use User LED, D6 should be HIGH.
#define RGBPIN 10
#define LED_NUM 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(LED_NUM, RGBPIN, NEO_GRB + NEO_KHZ800);
void setup() {
pinMode(RGBPOWER, OUTPUT);
digitalWrite(RGBPOWER, HIGH);
pixels.begin(); // This initializes the NeoPixel library.
}
void loop() {
// For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(0, pixels.Color(0,0,100)); // Moderately bright blue color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(1000); // Wait for 1 second
pixels.setPixelColor(0, pixels.Color(0,100,0)); // Moderately bright green color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(1000); // Wait for 1 second
pixels.setPixelColor(0, pixels.Color(100,0,0)); // Moderately bright red color.
pixels.show(); // This sends the updated pixel color to the hardware.
delay(1000); // Wait for 1 second
pixels.setPixelColor(0, pixels.Color(0,0,0)); // Turn off the led.
pixels.show();
delay(1000);
}
実際に動かしてみました。
無事に3色光りました。まさかマイコンに最初からNeo Pixel使っているとは思いませんでした。
現在地を取得してみた
今度はGNSSがあるので、これで現在地を取得してみます。これもサンプルコードで試してみます。
#include "MC20_Common.h"
#include "MC20_Arduino_Interface.h"
#include "MC20_GNSS.h"
GNSS gnss = GNSS();
void setup() {
SerialUSB.begin(115200);
// while(!SerialUSB);
gnss.Power_On();
SerialUSB.println("\n\rPower On!");
while(!gnss.open_GNSS(GNSS_DEFAULT_MODE)){
delay(1000);
}
SerialUSB.println("Open GNSS OK.");
}
void loop() {
if(gnss.getCoordinate()){
SerialUSB.print("GNSS: ");
SerialUSB.print(gnss.longitude, 6);
SerialUSB.print(",");
SerialUSB.println(gnss.latitude, 6);
} else{
SerialUSB.println("Error!");
}
delay(1000);
}
実際に動かすと、受信するのに時間がかかりますが、暫く待つとシリアルコンソールで現在地の経度と緯度が出力されます。という事でWio GPS BoardはWio Tracker の名前を変えただけのようです。でもなんで変えたんでしょうね?とはいえ、それが分かれば今度はここにsimカードを挿せばセルラー通信もできそうなので、今度買ってきて試したいと思います。
趣味の開発についての小ネタを中心に書きます。