Digispark の P5 を ADC で入力ピンとして使う 後編 [Arduino]
ロータリーディップスイッチで作ってみた。
カーボン抵抗 と 金属皮膜抵抗
抵抗の順番を間違えたのでLEDの並びが MSD ---- LSD となった。
チャタリングが確認できる。
カーボン抵抗 と 金属皮膜抵抗
抵抗の順番を間違えたのでLEDの並びが MSD ---- LSD となった。
チャタリングが確認できる。
Digispark の P5 を ADC で入力ピンとして使う 前編 [Arduino]
Digispark の互換機は P5 がリセットピンになっています。
(どうやら本家はFUSE設定ではじめから入出力ピンとして使えるらしい?)
FUSEの変更(hfuse:5F→DF or 5D→DD) という方法が王道とは思いますが、リセットピンのままでもADC入力としては使えるという情報をどこかで見かけたので試してみました。
ただ電圧下げすぎるとリセットがかかってしまいます。
(Vcc 5VのとHIGH⇒LOW(VIL)は2.25Vくらい)
Digisparkで複数のタクトスイッチを扱う:放課後マイコンクラブ:SSブログ
https://hello-world.blog.ss-blog.jp/2022-05-29
抵抗分圧でやるのもいいですが、、同時押しには対応できないし。
ロータリーコードスイッチ 10ポジション 0~9 正論理 S-2110A_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g110399/
こういうのでやろうと思って。
DIPスイッチみたいに設定用のスイッチに使うのががよさそう。
こういう用途ならチャタリングとか考えなくていいし。
ラダー抵抗でのD/A変換のような感じでいけるかと思いきや、スイッチはHIGH/LOWではなく、ON/OFFなのでできなさそう。
ということで、手探りで回路を作ってみた。
http://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxBTxCQBZtqBTAWjDACgAnEJmqsQyCF7gBUZHDYBncGBThK4DIXlVBggGYBDADaSGbAG6LlKBMp5VTytUMFIbMBJyF8FrObNVCME6e5GCYEoBYho6elIycigoNMYUsaEgWrr6frLgxB7BYFlJKRFcwvyBGSViYPCQzsV5-rlygjHwzv4xccLtYjQ+EgDu8Z6DotUDtXKdidUADi4gxMpBygsg9GpsY65Uwiuj8Vb7UxtzQ8Ujx0sJcZcNUBc5dTnBezdPi+ebIeN3AzduwbtjhYQsCDuwgA
漸減かつ2%の直線とわりと近似している。
1~2%の電位差を読み取る必要があるのだけれど、5%誤差のカーボン抵抗でつくった試作回路&スケッチでちゃんと4ビットを識別できた。
ちゃんとやるなら金属皮膜抵抗をつかったほうがよさそう。
(どうやら本家はFUSE設定ではじめから入出力ピンとして使えるらしい?)
FUSEの変更(hfuse:5F→DF or 5D→DD) という方法が王道とは思いますが、リセットピンのままでもADC入力としては使えるという情報をどこかで見かけたので試してみました。
ただ電圧下げすぎるとリセットがかかってしまいます。
(Vcc 5VのとHIGH⇒LOW(VIL)は2.25Vくらい)
Digisparkで複数のタクトスイッチを扱う:放課後マイコンクラブ:SSブログ
https://hello-world.blog.ss-blog.jp/2022-05-29
抵抗分圧でやるのもいいですが、、同時押しには対応できないし。
ロータリーコードスイッチ 10ポジション 0~9 正論理 S-2110A_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g110399/
こういうのでやろうと思って。
DIPスイッチみたいに設定用のスイッチに使うのががよさそう。
こういう用途ならチャタリングとか考えなくていいし。
ラダー抵抗でのD/A変換のような感じでいけるかと思いきや、スイッチはHIGH/LOWではなく、ON/OFFなのでできなさそう。
ということで、手探りで回路を作ってみた。
http://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxBTxCQBZtqBTAWjDACgAnEJmqsQyCF7gBUZHDYBncGBThK4DIXlVBggGYBDADaSGbAG6LlKBMp5VTytUMFIbMBJyF8FrObNVCME6e5GCYEoBYho6elIycigoNMYUsaEgWrr6frLgxB7BYFlJKRFcwvyBGSViYPCQzsV5-rlygjHwzv4xccLtYjQ+EgDu8Z6DotUDtXKdidUADi4gxMpBygsg9GpsY65Uwiuj8Vb7UxtzQ8Ujx0sJcZcNUBc5dTnBezdPi+ebIeN3AzduwbtjhYQsCDuwgA
漸減かつ2%の直線とわりと近似している。
// +5V ---[1k]---+-----+--[sw]--[47k]--+--- GND
// | +--[sw]--[22k]--+
// <P5> +--[sw]--[10k]--+
// +--[sw]--[4k7]--+
const uint8_t LEDsPn[4] = { 0, 1, 2, 4 }; // pin number
const uint16_t Vth[16] = { 1012, 990, 969, 945, 921, 903, 885, 860,
836, 821, 806, 789, 773, 760, 747, 0 };
void setup() {
for(uint8_t i=0; i<4; i++) pinMode( LEDsPn[i], OUTPUT );
}
void loop() {
uint8_t n, i;
uint16_t Va = analogRead( A0 ); // Digispark : P5, ADC0
for(n=0; Va<Vth[n]; n++); // Compare with each threshold and get the value
for(i=0; i<4; i++) digitalWrite( LEDsPn[i], (n>>i)&1 );
}
1~2%の電位差を読み取る必要があるのだけれど、5%誤差のカーボン抵抗でつくった試作回路&スケッチでちゃんと4ビットを識別できた。
ちゃんとやるなら金属皮膜抵抗をつかったほうがよさそう。
USB Type-C の Digispark 互換機を作ってみた。その2 [Arduino]
ブートローダを変更します。
もともとは firmware version 1.6 が入っていました。
ブートローダもいろいろなものがあるようですが、ATTinyCoreでお世話になっているSpenceKondeさんのところのを使うことにしました。
GitHub - SpenceKonde-ATTinyCore- Arduino core for ATtiny 1634, 828, x313, x4, x41, x5, x61, x7 and x8
https://github.com/SpenceKonde/ATTinyCore
ここから、
📂avr
📂bootloaders
📂micronucleus
まで行きます。
Digispark(互換機)から外したATtiny85なので、すでにmicronucleusが入っているため、リストの下のほうにある upgrade-attinyXX_XXXX.hex を選びます。(attinyXX_XXXX.hexはISPで書き込む用っぽい)
よくわからないけど「upgrade-attiny85_porf.hex」にしてみた。
porfは、Power-on Reset Flag(電源ONリセットフラグ)のことかなって思って。
このブートローダにすることで、スライドスイッチでUSB切断時には電源投入とほぼ同時にスケッチが動き出すようになりました。
HIDデバイスなどUSB機能を使いつつも待ちたくない場合は、以下の記事どおりちょっと古い ver1.11を使うことになりそう。
アップデートの方法も同様。
Digispark 起動までの5秒待たないBootloader:放課後マイコンクラブ:SSブログ
https://hello-world.blog.ss-blog.jp/2022-05-14
パーツどり後の抜け殻
もともとは firmware version 1.6 が入っていました。
ブートローダもいろいろなものがあるようですが、ATTinyCoreでお世話になっているSpenceKondeさんのところのを使うことにしました。
GitHub - SpenceKonde-ATTinyCore- Arduino core for ATtiny 1634, 828, x313, x4, x41, x5, x61, x7 and x8
https://github.com/SpenceKonde/ATTinyCore
ここから、
📂avr
📂bootloaders
📂micronucleus
まで行きます。
Digispark(互換機)から外したATtiny85なので、すでにmicronucleusが入っているため、リストの下のほうにある upgrade-attinyXX_XXXX.hex を選びます。(attinyXX_XXXX.hexはISPで書き込む用っぽい)
よくわからないけど「upgrade-attiny85_porf.hex」にしてみた。
porfは、Power-on Reset Flag(電源ONリセットフラグ)のことかなって思って。
このブートローダにすることで、スライドスイッチでUSB切断時には電源投入とほぼ同時にスケッチが動き出すようになりました。
HIDデバイスなどUSB機能を使いつつも待ちたくない場合は、以下の記事どおりちょっと古い ver1.11を使うことになりそう。
アップデートの方法も同様。
Digispark 起動までの5秒待たないBootloader:放課後マイコンクラブ:SSブログ
https://hello-world.blog.ss-blog.jp/2022-05-14
パーツどり後の抜け殻
USB Type-C の Digispark 互換機を作ってみた。 [Arduino]
久しぶりにDigisparkネタ。
使い慣れたAVRで同じ8ピンのATtiny202や412と比べて、容量も大きく、USBにダイレクトでつながるのは魅力的。
ただ本家は販売しておらず、互換機しか売っていない状態。
Type-A直挿しタイプは差し込み口が9mmくらいしかなく(本来規格上は11.75mm)、うちのパソコンだと届かなくて認識されないのも問題。
micro USBのタイプは、いまどきじゃないので避けたい。
共通して言えるのはブレッドボードで使いづらい。
ということで Type-C の Digispark互換機を自作してみた。
方向性:
・もちろん接続はUSB Type-C
・電源はType-Cからの供給として外部入力なし
・ブレッドボードに載るレイアウト
・P3(PB3,USB D-), P4(PB4, USB D+)もできればI/Oピンに使いたい
・電源LED なし、BUILTIN LED も用途が限られるのでなし
ちょっと工夫したのは、 スライドスイッチでUSB機能を使うか外部ピンを使うか選択すること。
USBの信号を物理的に切り離すスイッチを付けてみた。
ただ、pull up抵抗をUSB側に残すとUSB機器として認識されてしまうようなので、D-のpull up抵抗はATtiny85側に持ってくることにしました。68Ωの抵抗はダンピング抵抗というもののようなので、pull up抵抗よりUSB側に持ってきても大丈夫かなと思って移動してみました。(いいのかどうかはわからない)
ということで、P3(PB3,USB D-)のpull upだけは妥協することにしました。
スライドスイッチは、DPDT(Double Poles Double Throws, 双極双投, 2回路2接点)です。
表面実装用スライドスイッチ SSSS213202_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g105043/
これをDPDTと思い込んでフットプリントも作成して基板をオーダーしていざ作ってみたら案の定動かない。これは、SPDT(単極双投, 1回路2接点)だから。
スライドスイッチ IS-2245S-G_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g115369/
ちょっとフットプリントが違うけど、なんとか載せられた。
機構部品は面積大きいので、やむなく両面実装に。
パーツは、基板の他に、Type-Cレセプタクル、CC(Configuration Channel)の5.1kΩ抵抗、スライドスイッチと、それ以外はDigispark(互換機)から外して使用。
0, 1, 2, 4ピンを使って、CharlieplexingでLED 12個操作。
使い慣れたAVRで同じ8ピンのATtiny202や412と比べて、容量も大きく、USBにダイレクトでつながるのは魅力的。
ただ本家は販売しておらず、互換機しか売っていない状態。
Type-A直挿しタイプは差し込み口が9mmくらいしかなく(本来規格上は11.75mm)、うちのパソコンだと届かなくて認識されないのも問題。
micro USBのタイプは、いまどきじゃないので避けたい。
共通して言えるのはブレッドボードで使いづらい。
ということで Type-C の Digispark互換機を自作してみた。
方向性:
・もちろん接続はUSB Type-C
・電源はType-Cからの供給として外部入力なし
・ブレッドボードに載るレイアウト
・P3(PB3,USB D-), P4(PB4, USB D+)もできればI/Oピンに使いたい
・電源LED なし、BUILTIN LED も用途が限られるのでなし
ちょっと工夫したのは、 スライドスイッチでUSB機能を使うか外部ピンを使うか選択すること。
USBの信号を物理的に切り離すスイッチを付けてみた。
ただ、pull up抵抗をUSB側に残すとUSB機器として認識されてしまうようなので、D-のpull up抵抗はATtiny85側に持ってくることにしました。68Ωの抵抗はダンピング抵抗というもののようなので、pull up抵抗よりUSB側に持ってきても大丈夫かなと思って移動してみました。(いいのかどうかはわからない)
ということで、P3(PB3,USB D-)のpull upだけは妥協することにしました。
スライドスイッチは、DPDT(Double Poles Double Throws, 双極双投, 2回路2接点)です。
表面実装用スライドスイッチ SSSS213202_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g105043/
これをDPDTと思い込んでフットプリントも作成して基板をオーダーしていざ作ってみたら案の定動かない。これは、SPDT(単極双投, 1回路2接点)だから。
スライドスイッチ IS-2245S-G_ 制御部品・駆動部品 秋月電子通商-電子部品・ネット通販
https://akizukidenshi.com/catalog/g/g115369/
ちょっとフットプリントが違うけど、なんとか載せられた。
機構部品は面積大きいので、やむなく両面実装に。
パーツは、基板の他に、Type-Cレセプタクル、CC(Configuration Channel)の5.1kΩ抵抗、スライドスイッチと、それ以外はDigispark(互換機)から外して使用。
0, 1, 2, 4ピンを使って、CharlieplexingでLED 12個操作。
1ピンだけで2個のLEDを別々に操作する その2 [Arduino]
マイコンの1本のI/O端子で2個のLEDを駆動:Design Ideas - EDN Japan
https://edn.itmedia.co.jp/edn/articles/0806/01/news020.html
ここを元にシミュレーションしてみた。
ツェナーダイオード使用バージョン
ダイオードを4個直列バージョン
LEDは一定以上の電圧にならないと電流が流れないのをうまく利用している。
1ピンだけで2個のLEDを別々に操作する [Arduino]
以前にATtiny202で踏切の音と光を出すのをやりました。
ただATtiny202はふつうに使えるGPIOが5つしかないのでなるべく使用するピン数を少なくしたいところ。
LEDを1ピンだけで2個別々に操作することを思いついたのでやってみました。
(多分すでに誰かやってると思うけど)(NeoPixelを使うというのもありだけど)
5VとGNDの間に抵抗を入れて真ん中で分圧し、そことGPIOのHigh、Low、Hi-Zの3ステートで、2個の極性の反対のLEDを個別に点灯。
両方点灯させたいときはダイナミック点灯で。
欠点としては、やや暗いのと、消灯時でも電流を消費することかな。
Circuit Simulator Applet
https://www.falstad.com/circuit/circuitjs.html
というのでシミュレーションしてみた。
// LED test : Blink two LEDs using only one pin
// +5V ---[470 Ohm]--+---+--|<|--+--- GPIO (H/L/Hi-Z)
// GND ---[470 Ohm]--+ +--|>|--+
#define LED_PIN 2
void setup() {
}
void loop() {
unsigned int i;
pinMode(LED_PIN, OUTPUT);
for(i=0; i<4; i++) {
digitalWrite(LED_PIN, i&1); // Blink LEDs alternately
delay(500);
}
pinMode(LED_PIN, INPUT); // Off LEDs
delay(1000);
pinMode(LED_PIN, OUTPUT);
for(i=0; i<1000; i++) {
digitalWrite(LED_PIN, i&1); // dynamic both LEDs on
delay(1);
}
pinMode(LED_PIN, INPUT); // Off LEDs
delay(1000);
}
もっといいやり方があるらしい。
マイコンの1本のI/O端子で2個のLEDを駆動:Design Ideas - EDN Japan
https://edn.itmedia.co.jp/edn/articles/0806/01/news020.html
UNO R4 ライブラリ使わずにNeoPixel を使ってみる。 [Arduino]
ライブラリ使わずに NeoPixel を使ってみる。
素直にライブラリ使えばいいじゃん、っていう話なんですけど。
83.3nsという100ナノセカンドオーダーでI/Oポートレジスタの操作ができることを利用して、NeoPixelの制御信号を作ってみました。
素直にライブラリ使えばいいじゃん、っていう話なんですけど。
83.3nsという100ナノセカンドオーダーでI/Oポートレジスタの操作ができることを利用して、NeoPixelの制御信号を作ってみました。
// UNO R4 minima NeoPixel test
inline void PH() { R_PORT1->POSR = bit(11); } // D13(UNO R4 minima P111) HIGH (83.3ns)
inline void PL() { R_PORT1->PORR = bit(11); } // D13(UNO R4 minima P111) LOW (83.3ns)
inline void T0() { PH(); PH(); PH(); PH(); PL(); PL(); PL(); PL(); PL(); PL(); PL(); PL(); }
inline void T1() { PH(); PH(); PH(); PH(); T0(); }
#define NUMPIXELS (12)
uint8_t pixels[NUMPIXELS * 3]; // GRBGRBGRB...
void setup() {
R_PORT1->PODR |= bit(11); // D13(UNO R4 minima P111) pinMode OUTPUT
}
void loop() {
for (uint8_t i = 0; i < NUMPIXELS; i++) {
for (uint8_t c = 0; c < 6; c++) {
pixels[ ((NUMPIXELS + i - c) * 3 + 2) % (NUMPIXELS * 3) ] = 31 >> c;
}
neoPixelShow();
delay(100);
}
}
void neoPixelShow() {
for(uint8_t i = 0; i < NUMPIXELS * 3; i++) {
for(uint8_t bm = 0b10000000; bm; bm >>= 1) {
noInterrupts();
if (pixels[i] & bm) T1(); else T0();
interrupts();
}
}
}
UNO R4 digitalWrite と I/Oポートレジスタ [Arduino]
UNO R4 で digitalWrite() の代わりに、I/Oポートレジスタを制御することで高速化できるということは、各所で報告されております。
digitalWriteFast with UNO R4 - UNO R4 _ UNO R4 Minima - Arduino Forum
https://forum.arduino.cc/t/digitalwritefast-with-uno-r4/1145206
digitalWrite() と I/Oポートレジスタの制御でどのくらい時間が違うのかですが、
HIGH, LOW 1000回ループと、HIGH, LOW, HIGH, LOW 1000回ループの差分でfor()ループの影響を除去してHIGH, LOW 1000回分だけとして、これを2で割って、digitalWrite() 1回分にかかる速度を調べてみました。ただ、割り込みなどがあるので、その時々で結構まちまちの値が出ました。
だいたい、
digitalWrite(LED_BUILTIN, HIGH); や
digitalWrite(LED_BUILTIN, LOW);
で 700 ns ちょっと。
R_PORT1->POSR = bit(11); や
R_PORT1->PORR = bit(11);
で 83 ns ちょっと。
UNO R4が48MHzということは、CPU 1cycleあたり、20.8333 nsくらい。
83.333nsだと、4 cyclesに相当するのかな?
ポート操作は速いけど、UNO R4は、「MINIMA」と「WIFI」でも一部ポートが違うので注意。
digitalWriteFast with UNO R4 - UNO R4 _ UNO R4 Minima - Arduino Forum
https://forum.arduino.cc/t/digitalwritefast-with-uno-r4/1145206
digitalWrite() と I/Oポートレジスタの制御でどのくらい時間が違うのかですが、
HIGH, LOW 1000回ループと、HIGH, LOW, HIGH, LOW 1000回ループの差分でfor()ループの影響を除去してHIGH, LOW 1000回分だけとして、これを2で割って、digitalWrite() 1回分にかかる速度を調べてみました。ただ、割り込みなどがあるので、その時々で結構まちまちの値が出ました。
だいたい、
digitalWrite(LED_BUILTIN, HIGH); や
digitalWrite(LED_BUILTIN, LOW);
で 700 ns ちょっと。
R_PORT1->POSR = bit(11); や
R_PORT1->PORR = bit(11);
で 83 ns ちょっと。
UNO R4が48MHzということは、CPU 1cycleあたり、20.8333 nsくらい。
83.333nsだと、4 cyclesに相当するのかな?
ポート操作は速いけど、UNO R4は、「MINIMA」と「WIFI」でも一部ポートが違うので注意。
タグ:Uno R4
AtomS3 Liteで赤外線リモコン [Arduino]
AtomS3 Liteには赤外線LEDが付いていて、サンプルにもNECタイプのリモコンスケッチがあった。
でも、うちのテレビはソニー製。うちのソニーのテレビリモコンは電源ボタン以外は赤外線ではないものの、テレビ本体は赤外線リモコンの受信は可能。
というわけで、サンプルスケッチをいじってソニーのテレビの操作。
といってもボタンも1つしかないので単機能、ミュートのトグル。
それにしても、うちの遅いパソコンではコンパイルに時間がかかる。
調べてみると、ESP32は簡単にPWMをつくることができるようだ。
というわけでリモコン信号も簡単にできた。
ライブラリ不要となり、多少コンパイル時間も短くなり、プログラムのサイズも減った。
AtomS3 Liteの赤外線LEDが光っている様子。
でも、うちのテレビはソニー製。うちのソニーのテレビリモコンは電源ボタン以外は赤外線ではないものの、テレビ本体は赤外線リモコンの受信は可能。
というわけで、サンプルスケッチをいじってソニーのテレビの操作。
といってもボタンも1つしかないので単機能、ミュートのトグル。
// Infrared remote control (M5atomS3, SIRC version)
#define DISABLE_CODE_FOR_RECEIVER
#define SEND_PWM_BY_TIMER // use hardware PWM
#define IR_TX_PIN 4
#include "M5AtomS3.h"
#include <IRremote.hpp>
void setup() {
auto cfg = M5.config();
AtomS3.begin(cfg);
IrSender.begin(DISABLE_LED_FEEDBACK); // Start with IR_SEND_PIN as send pin
IrSender.setSendPin(IR_TX_PIN);
}
void loop() {
AtomS3.update();
if( AtomS3.BtnA.wasPressed() ) {
IrSender.sendSony( 0x01, 0x14, 3, SIRCS_12_PROTOCOL ); // SONY TV mute toggle
} // address:0x01(TV,5bits), command:0x14(mute,7bits), repeat:3times, 12bits
}
それにしても、うちの遅いパソコンではコンパイルに時間がかかる。
調べてみると、ESP32は簡単にPWMをつくることができるようだ。
というわけでリモコン信号も簡単にできた。
// Infrared remote control with 40kHz PWM (ESP32, SIRC version)
uint8_t ledIR = 4;
void setup() {
ledcSetup( 1, 40000, 8 ); // 40 kHz PWM, 8-bit resolution
ledcAttachPin( ledIR, 1 ); // assign IR LED pin to channel
pinMode( 41, INPUT_PULLUP );
}
void loop() {
while( digitalRead( 41 ) );
sendIrSIRCesp32( 0x14 | 0x01 << 7 ); // SONY mute toggle (cmd:0x14(7bit), adrs:0x01(5bit))
sendIrSIRCesp32( 0x14 | 0x01 << 7 ); // repeat 3 times
sendIrSIRCesp32( 0x14 | 0x01 << 7 );
}
void sendIrSIRCesp32( uint32_t d ) { // T = 0.60msec
uint8_t b = (d & 0xF8000) ? 20 :
(d & 0x07000) ? 15 : 12; // number of bits
uint16_t usON, usTrailer = 42000; // 70T = interval(75T) - leader(5T)
ledcWrite( 1, 85 ); delayMicroseconds( 2400 ); // leader ON (4T)
ledcWrite( 1, 0 ); delayMicroseconds( 600 ); // leader OFF (1T)
for(uint8_t i = 0; i < b; i++) { // data(command + address)
usON = ((d>>i)&1) ? 1200 : 600; // data(0:1T / 1:2T)
ledcWrite( 1, 85 ); delayMicroseconds( usON ); // data ON
ledcWrite( 1, 0 ); delayMicroseconds( 600 ); // data OFF (1T)
usTrailer -= (usON + 600); // trailer
}
delayMicroseconds( usTrailer );
}
ライブラリ不要となり、多少コンパイル時間も短くなり、プログラムのサイズも減った。
AtomS3 Liteの赤外線LEDが光っている様子。
AtomS3 Lite 買ってみた。 [Arduino]
無線(というかWi-Fi)を使ってみたくてちょっと調べてみた。
・Uno R4 WiFi でもいいんだけど、、小さいやつ希望
・type-Cで
・技適通ってるやつで
・DIPの幅狭めで
・新しめで
・情報多めのやつで
Nano ESP32 | Arduino Documentation
https://docs.arduino.cc/hardware/nano-esp32
「Arduino Nano ESP32」がtype-CでArduino純正のボードだけど、技適通ってないっぽい。
Seeed Studio XIAO ESP32S3 — スイッチサイエンス
https://www.switch-science.com/products/8968
同じESP32S3使ってる「Seeed Studio XIAO ESP32S3」もいいけど、アンテナが外付け&本体よりでかい。
ESP32-C3 か S3 かどっちがいいのかもよくわからない。
UNO R4 WiFi や nano ESP32 には S3 が載っているので、とりあえず S3 の方向で。
ほかにESP32S3で探すと、M5Stack関連が出てきた。
M5Stackというとディスプレイとかボタンとかいろいろ付いている系と思っていたけど、割とシンプルなボードもあったので購入してみた。
AtomS3 Lite
https://docs.m5stack.com/en/core/AtomS3%20Lite
AtomS3 Lite:ボタン、RGB LED、赤外線LEDが付いている。
M5StampS3 PIN2.54
https://docs.m5stack.com/en/core/M5StampS3%20PIN2.54
M5stampS3:ボタン、RGB LEDだけ。ブレッドボードで遊べるように2.54mm DIPタイプを選択。
とりあえず、AtomS3 Liteを開封
技適通ってる。
裸眼では読めない部分あり。
・Uno R4 WiFi でもいいんだけど、、小さいやつ希望
・type-Cで
・技適通ってるやつで
・DIPの幅狭めで
・新しめで
・情報多めのやつで
Nano ESP32 | Arduino Documentation
https://docs.arduino.cc/hardware/nano-esp32
「Arduino Nano ESP32」がtype-CでArduino純正のボードだけど、技適通ってないっぽい。
Seeed Studio XIAO ESP32S3 — スイッチサイエンス
https://www.switch-science.com/products/8968
同じESP32S3使ってる「Seeed Studio XIAO ESP32S3」もいいけど、アンテナが外付け&本体よりでかい。
ESP32-C3 か S3 かどっちがいいのかもよくわからない。
UNO R4 WiFi や nano ESP32 には S3 が載っているので、とりあえず S3 の方向で。
ほかにESP32S3で探すと、M5Stack関連が出てきた。
M5Stackというとディスプレイとかボタンとかいろいろ付いている系と思っていたけど、割とシンプルなボードもあったので購入してみた。
AtomS3 Lite
https://docs.m5stack.com/en/core/AtomS3%20Lite
AtomS3 Lite:ボタン、RGB LED、赤外線LEDが付いている。
M5StampS3 PIN2.54
https://docs.m5stack.com/en/core/M5StampS3%20PIN2.54
M5stampS3:ボタン、RGB LEDだけ。ブレッドボードで遊べるように2.54mm DIPタイプを選択。
とりあえず、AtomS3 Liteを開封
技適通ってる。
裸眼では読めない部分あり。