見出し画像

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カードを挿せばセルラー通信もできそうなので、今度買ってきて試したいと思います。

趣味の開発についての小ネタを中心に書きます。