Arduino Picoがリリースされたようです。

最終更新日:2022/3/15
作成日:2021/4/16

2022年3月30日 Arduino-Picoのベンチテスト情報があるようです。2022年3月15日 M5Stackの接続で嵌まりました。2022年3月10日 PiPicoを入手しました。

※Arduino PicoはArduino財団公式のモノでは無く Earle F. Philhower, III 氏によるプロジェクトです。
Arduino財団公式版といわれる Arduino Mbed OS RP2040 Boards とは異なります。

Arduino財団は RP2040を搭載した公式開発ボードをいくつかリリースしています。


ArduinoIDEにPico用のボードマネージャが用意されArduino-Picoが実現しています。
https://github.com/earlephilhower/arduino-pico
ただ、モノが手元にありません。実際の動作確認まではもう少し時間が必要です。

それと合わせて、GroveShieldもリリースされています。



2022年3月9日 マイコンはじめの一歩! Arduino IDEではじめるRaspberry Pi Pico: 1st Kindle版 と云う本がリリースされている事が判りました。Kindle版しかないようなので中身は確認出来ていません。

Arduino IDEでRaspberry Pi Picoを使う記事はCQ出版インターフェース2021年8月号に紹介されているのですが、MicroPythonを使った開発方法について解説されている事もあり、Arduino IDEについてはさらっと触れているだけです。

現在自分のArduinoIDE環境は1.8.19環境です。ボードマネージャに選択肢がありました。

ちょっとExampleがチープですね。秋月に注文済みのPiPicoが届き次第動作確認をしたいと思っています。


2022年3月10日 PiPicoその他が届きました。

3/7に秋月電子通商に注文した品々が届きました。相当の注文残を抱えていたようで、発送が3/9の夕方になってました。それでも翌朝には手元に届いたのは有り難いです。

早速PCと接続してテストコードをダウンロードしようと思いましたが、幾つか躓いてしまいました。


2022年3月15日 M5StackのENV・VセンサをPiPico+GroveShield で使いたいと思いました。Groveコネクタのセンサを使う事で動作確認が容易になります。

実際に接続し動作確認をしたいと思いました。ENV・VセンサのサンプルスケッチがM5Stack社の製品紹介ページに用意されています。
https://docs.m5stack.com/en/unit/envIII?id=description
『ENV III Unit Test』というサンプルスケッチなのですが、コンパイルエラーが発生します。ESP32ベースの仕組みに従っているようでソースコードのレタッチは必須です。
※Example自体互換性無しの項にあります。インクルードの仕方が問題です。
#include <M5Stack.h>
#include "UNIT_ENV.h"
を変更して、
#include <Wire.h>
#include <SHT3x.h>
#include "QMP6988.h"
とします。

/*
 * 2022/03/15 T.Wanibe
 * PiPicoの動作確認の為にExampleをレタッチして実行確認しています。
 * このスケッチはPicoをGroveShieldに装着し、I2C0にM5StackのセンサUNIT_ENV3を接続して
 * 温度、湿度、圧力計測するモノです。
 * UNIT_ENV3にはI2C: SHT30(0x44), QMP6988(0x70)です。
 * I2Cアドレスが指定出来るライブラリを使わないとうまくデータ取得出来ませんね。
 * またQMP6988のライブラリは限られるようです。
 * I2C0のポートに接続しましたが、Wire.setSDA(8);Wire.setSCL(9);の設定を怠るとデータが取得出来ません。
 * ポート番号はSeeedStudioが提供するShield回路図を必ず確認する必要があります。
 * 
 * Released into the public domain 
 * 最大2093056バイトのフラッシュメモリのうち、スケッチが58880バイト(2%)を使っています。
 * 最大262144バイトのRAMのうち、グローバル変数が11132バイト(4%)を使っていて、ローカル変数で251012バイト使うことができます。
 * 最大2093056バイトのフラッシュメモリのうち、スケッチが64128バイト(3%)を使っています。
 * 最大262144バイトのRAMのうち、グローバル変数が11948バイト(4%)を使っていて、ローカル変数で250196バイト使うことができます。
 */
#include <Wire.h>
#include <SHT3x.h>
#include "QMP6988.h"
SHT3x   sht30(0x44);
QMP6988 qmp6988;
float tmp       = 0.0;                                          //なぜかNaNが認められない
float hum       = 0.0;
float pressure  = 0.0;
//--------------
void setup() {
        Serial.begin(115200);
        Wire.setSDA(8);
        Wire.setSCL(9);
        Wire.begin();                                           //ENV IIのgroveコネクタ接続pin設定
        sht30.Begin();                                          //ワイヤ初期化、I2Cバスの追加。
        qmp6988.init(0x70);
        Serial.println(F("ENV Unit III test"));
}
//--------------
void loop() {
        sht30.UpdateData();
        delay(1000);
        pressure        =       qmp6988.calcPressure();         //qmp6988のデータを取得します。
        tmp             =       sht30.GetTemperature();         //SHT30のデータを取得します。
        hum             =       sht30.GetRelHumidity();         //SHT30から得られた湿度を代入します。
        Serial.printf("Temp: %2.1f[℃]\nHumi: %2.0f[%%]\nPressure:%2.0f[Pa]\n", tmp, hum, pressure);
        //delay(1000);
}

GroveShieldはI2C0のポートアサインはSDA(8),SDL(9)、I2C1はSDA(6),SDL(7)です。RP2040をArduinoIDE利用するならば、この点は意識して明記する方が得策かと思います。

/*
 * 2022/03/15 T.Wanibe
 * UNIT_ENV3をI2C1に変更しての動作確認。折角なのでanalogReadTemp()も同時取得してみる
 * PiPicoの動作確認の為にExampleをレタッチして実行確認しています。
 * このスケッチはPicoをGroveShieldに装着し、I2C0にM5StackのセンサUNIT_ENV3を接続して
 * 温度、湿度、圧力計測するモノです。
 * UNIT_ENV3にはI2C: SHT30(0x44), QMP6988(0x70)です。
 * I2Cアドレスが指定出来るライブラリを使わないとうまくデータ取得出来ませんね。
 * またQMP6988のライブラリは限られるようです。
 * I2C1のポートに接続しましたが、Wire.setSDA(6);Wire.setSCL(7);の設定を怠るとデータが取得出来ません。
 * ポート番号はSeeedStudioが提供するShield回路図を必ず確認する必要があります。
 * 最大2093056バイトのフラッシュメモリのうち、スケッチが65880バイト(3%)を使っています。
 * 最大262144バイトのRAMのうち、グローバル変数が12024バイト(4%)を使っていて、ローカル変数で250120バイト使うことができます。
 */
#include <Wire.h>
#include <SHT3x.h>
#include "QMP6988.h"
SHT3x   sht30(0x44);
QMP6988 qmp6988;
float tmp       = 0.0;                                          //なぜかNaNが認められない
float hum       = 0.0;
float pressure  = 0.0;
float tmpOnPico = 0.0;
//--------------
void setup() {
        Serial.begin(115200);
        Wire.setSDA(6);
        Wire.setSCL(7);
        Wire1.begin();                                          //ENV IIのgroveコネクタ接続pin設定
        sht30.Begin();                                          //ワイヤ初期化、I2Cバスの追加。
        qmp6988.init(0x70);
        Serial.println(F("ENV Unit III test"));
}
//--------------
void loop() {
        sht30.UpdateData();
        delay(1000);
        tmpOnPico       =       analogReadTemp();
        pressure        =       qmp6988.calcPressure();         //qmp6988のデータを取得します。
        tmp             =       sht30.GetTemperature();         //SHT30のデータを取得します。
        hum             =       sht30.GetRelHumidity();         //SHT30から得られた湿度を代入します。
        Serial.printf("OnPicoTemp: %2.1f[℃]\nTemp: %2.1f[℃]\nHumi: %2.0f[%%]\nPressure:%2.0f[Pa]\n", tmpOnPico,tmp, hum, pressure);
}


2022年3月30日 Arduino-Picoのベンチテスト情報があるようです。

Arduino Support for the Pi Pico available! And how fast is the Pico? - https://youtu.be/-XHh17cuH5E

これによるとチップ単体の比較のようで開発環境も含めたモノではなさそうですね。


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。