Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 64bit RISC-VのマイコンモジュールK210を搭載したマイコンボードである
- MaixduinoのオンボードのWiFiがArduinoから使えたので、使い方を紹介します
- ライブラリはWiFiNINAのライブラリを使います
- WiFiNINAのライブラリはここからダウンロードします
- https://github.com/arduino-libraries/WiFiNINA
- 使用したWiFiNINAライブラリのバージョンはVer 1.5.0です
- Maixduinoで使えるように
- 上記ライブラリと、Maixduinoのframework-maixduinoを一部改変します
- 1.framework-maixduinoの改変
- PlatformIOの方は
- C:\Users\username\.platformio\packages\framework-maixduino\variants\sipeed_maixduino
- Arduino IDEの方は
- C:\Users\username\AppData\Local\Arduino15\packages\Maixduino\hardware\k210\0.3.11\variants\sipeed_maixduino
- 注:ここでusernameの部分は自分の環境に合わせて変更してください
- ここのpins_arduino.hを一部改変します
- 74行目の
- #define MD_PIN_MAP(fpio) (((fpio) < 17) ? _maixduino_pin_map[(fpio)] : (fpio))
- static const uint8_t _maixduino_pin_map[17] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16};
- この部分を下記のように改変します
- #define MD_PIN_MAP(fpio) (((fpio) < 22) ? _maixduino_pin_map[(fpio)] : (fpio))
- static const uint8_t _maixduino_pin_map[22] = {4, 5, 21, 22, 23, 24, 32, 15, 14, 13, 12, 11, 10, 3, 31, 30, 16, 8, 9, 25, 6, 7};
- 2.WiFiNINAのライブラリの方は下記のように改変します
- NINA_GPIO0は下記ではIO32(Maixduinoのピンソケットの6番目のピン)に割り当てありますが適当な使ってないピンを割り当ててください
- srcの中のutilityの中の52行のspi_drv.cppの次の部分を
- static uint8_t SLAVESELECT = 10; // ss
- static uint8_t SLAVEREADY = 7; // handshake pin
- static uint8_t SLAVERESET = 5; // reset pin
- 下記のように改変します
- static uint8_t SLAVESELECT = 19; // K210 pin 25 ss pin
- static uint8_t SLAVEREADY = 18; // K210 pin 9 handshake pin
- static uint8_t SLAVERESET = 17; // K210 pin 8 reset pin
- static uint8_t NINA_GPIO0 = 6; // K210 pin 32
- #define PINS_COUNT 22
- 次にsrcのutilityの中のspi_drv.cppの563行目を
- int SpiDrv::available()
- {
- return (digitalRead(NINA_GPIO0) != LOW);
- }
- 下記のように変更してください
- int SpiDrv::available()
- {
- // return (digitalRead(NINA_GPIO0) != LOW);
- return 1;
- }
- WiFiNINAライブラリのexampleはここです
- https://github.com/arduino-libraries/WiFiNINA/tree/master/examples
- ここで
- exampleのWiFiUdpNtpClientですが
- 129行目のsendNTPpacket関数の型がunsigned longなのにreturn文がないために
- MaixduinoのToolchainに含まれるg++ Ver 8.2.0では暴走してしまいます。
- unsigned longではなくvoidにします
- unsigned long sendNTPpacket(IPAddress& address) {
- この部分を下記のように変更します
- void sendNTPpacket(IPAddress& address) {
Advertisement
Add Comment
Please, Sign In to add comment