Arduino互換機 2枚目 [転載禁止](c)2ch.net
259 名前:不要不急の名無しさん[sage] 投稿日:2020/09/16(水) 13:35:31.72 ID:XdGKdrqv0
大阪さんの言動を否定的にみてる人ってのは悪人どころか逆に規律やルールを守る人だと思うけど >>415
高いって言われそうだけどオレ的にはTeensy 4.1が超おすすめ
無茶苦茶速い。Unoの100倍ぐらい。
今までGPIOのレジスタ直接叩くようなコーディングしてたのをdigitalWriteで書いても十分速い。
値段は海外で$30ぐらい、日本だとSwitch scienceで4177円。
https://www.switch-science.com/catalog/6377/
DigikeyやMouserだと今は品切れ再入荷待ち。
高いって言われそうだけど、この性能でこの価格なら満足。 >>417
値段はともかく、
色々入っててすごいなこれw
RAMも大きくて何も考えずにstring使えそう その価格帯だと 64bit デュアルコア AIプロセッサ のK210だな
ttps://www.switch-science.com/catalog/5707/
ArduinoもMicroPythonもどっちもいける
Arduinoに拘らなければRaspberry-piとかNano-pi系のがOS乗ってるし速くて開発も楽なんじゃね
手軽なマイコンということならESP32だろうね raspiのlinuxとかだと起動に時間がかかるし、ブッツリ電源落とすと壊れたりするし。
動かしぱなしなら関係ないけど arduino ideのボードマネージャでサードベンダーのjsonファイル指定するところ、複数追加できないのですかね?
esp32,esp8266,seeduinoなど同時に扱得ればいいかなと >>417
Teensy 4.0も併売されてるよ
Teensy 4.1よりピン数が少なくて、いろいろ対応してるものが少ないが
小さいのがいいって人には4.1より4.0の方がいい
価格も少し安い
https://www.switch-science.com/catalog/5877/
Teensy 4.0、Teensy 4.1はRaspberry Pi Zeroより速い Cortex-M7 600MHz x 2.14DMIPS/MHz = 1284DMIPS
BCM2835 1GHz x 1.25DMIPS/MHz = 1250DMIPS
処理能力はほぼ同じに思えるが… >>419
Maixduino、試しに買ってみて今使い始めたんだけど、
Arduino IDEだとライブラリのバグが放置されてたり、サンプルスケッチが動かなかったり、
全然使えない感じだったよ。
MaixPy IDEってやつを使えばいいのかな。 >>431
実際にDhrystone 2.1やってみた結果
Teensy 4.0の方が1.2倍くらい速い
Teensy 4.0の512KBの密結合メモリが効いてるのかも
実測値
Raspberry Pi Zero gcc version 8.3.0
Option -O3
Dhrystone値 2173913.0
Teensy 4.0 gcc version 7.2.1 Platform IO IDE
Option -O3
Dhrystone値 2690303.5 サンプルスケッチはMaixduinoじゃないほかのMaix用のも含まれてて
Maixduinoだと動かないのもある
特にWiFi関連はMaix Go用のサンプルスケッチでMaixduinoでは動かない
それはMaixduinoはSPIでESP32がつながれているが
Maix GoはシリアルでESP8285が接続されてるから動くわけないわな
Maixduinoは公式にはArduinoではWiFiは使えない
MaixduinoのオンボードのESP32はMaixduino専用版のWiFiNINAのファームウエアが書き込まれてるので
WiFiNINA用のライブラリを少し変更してやると
MaixduinoでWiFiがArduinoで使えるようになる
その場合、サンプルスケッチもWiFiNINA用のサンプルスケッチを使う
やり方はこの板のK210のスレに書かれてるよ >>434
Arduino15/packages/Maixduino/hardware/k210/0.3.11/libraries/Sipeed_OV2640/src/Sipeed_OV2640.cpp
のソースにお粗末な誤植があって、コンパイル時にエラー
× void Sipeed_OV2640::setRotaion(uint8_t rotation)
○ void Sipeed_OV2640::setRotation(uint8_t rotation)
これはいろいろググってわかったんだけど、去年から放置されてるっぽい。
これを直してコンパイルは通るようになったんだけど、依然としてカメラは動かず。
Arduino IDEはあきらめてMaixPy IDEにしたんだけど、
そっちはそっちで最新リリース版のファームウェア(0.3.2_full)だとIDEとボードがポート接続できず、
開発中バージョンのファームウェア(0.5.1_103)でやっと接続。
こっちだとカメラも動いて顔認識のサンプルも動いた。
ファームが原因だったのかと思ってArduino IDEに戻って再度試したけどそっちでは
依然としてカメラ動かず。という状態。
もこのボードでいろいろ開発する気にはなれないなあ。っていう第一印象になってしまった。
とりあえずK210のスレも見てみます。 LGT8F328Pは内部基準電圧1V2V4Vを設定出来るそうですが、この電圧をREFピン等から出力する事は出来るのでしょうか Maixduinoでカメラは普段使ってないけど、以前0.3.10や0.3.11ではダメで
0.3.9ならうまくいったことあるな 0.3.9と0.3.11のカメラのライブラリを比較したところ
Camera.h
79行目
virtual void setRotation(uint8_t rotation) = 0;
ここだけを中途半端にsetRotaionからsetRotationに修正してあってそれが原因でエラーが出てる模様
下記も修正するとうまくいく
Sipeed_OV2640.h
60行目
virtual void setRotaion(uint8_t rotation);
これを下記に修正
virtual void setRotation(uint8_t rotation);
Sipeed_OV2640.cpp
724行目
void Sipeed_OV2640::setRotaion(uint8_t rotation)
これを下記に修正
void Sipeed_OV2640::setRotation(uint8_t rotation) Maixduinoのカメラがarduino IDEで動かない問題ですが、いろいろググって答えが見つかりました。
camera snap fail
https://github.com/sipeed/Maixduino/issues/73
OV2640用のライブラリをGC0328のカメラ用のライブラリに差し替える必要があるようでした。
これで動くようになりました。 >>439
ありがとうございます。
それでコンパイルエラーは回避できるのですが、ちゃんと動くようにするには
>>440のURLに書いてあるライブラリの差替えが必要なようでした。 新しいのはカメラ変わってるのかな?
自分のは去年買ったやつなので>>439で動きましたが 新しいのが変わってるかどうかはよくわからないのですが、
ネット上の情報を見る限り、混在しているのは確かなようです。
セットで販売されているものでこんなはまり方をすると
この会社の製品はもう使いたくないなという印象を持ちました。 Maixduinoのカメラの違いでトラブっていた者です。
GC0328用にいろいろ書き直して物体認識のサンプルがかろうじて動くところまで行ったんですが、
認識結果が滅茶苦茶で、何が悪いのか切り分けが面倒だったので、
結局OV2640のカメラを買って付け替えました。
そしたら認識結果が多少はまともになったような気がする。 ああああ LGT8F328Pのnanoをおそらく5VピンとGNDのショートで破壊してしまった
USBコネクタからの給電を受け付けず、5Vピンに直接5Vを給電するとUSBも認識して普通に
使えるのですが、何処が飛んだのか… 基板のD10、D11近くのショットキーダイオード(S4, おそらく1N5819)がとんでる
https://www.shigezone.com/?product=nano-lgt8f328p
USBからの供給と外部からの電源供給を同時に行わないように注意するならこのダイオードはショートしておいても多分大丈夫 >>449
有り難う御座います 不通確認出来ました
普段使いは辞めて何かに組み込んでしまう事にします https://www.netlib.org/benchmark/whetstone.c
ここのwhetstone.cをある程度RAMのあるArduino互換機で動くようにして
Teensy 4.0で計測してみました
PlatformIOで下記オプションを指定
build_unflags = -Os
build_flags = -O3 -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16
500000回で計測
結果は1590.6 MIPS
Raspberry Pi Zeroでもgccで-O3のオプションを付けて計測してみた
200000回で計測
結果は1666.7 MIPS
Raspberry Pi4Bでも
2500000回で計測
結果は7575.8 MIPS
Teensy 4.0はRaspberry Pi Zero並みの浮動小数点演算性能あるね
Cortex-M7 600MHzすごいわ
Whetstone.cのArduino互換機用のソース(PlatformIO IDE用)
main.cpp
https://pastebin.com/AfdU9rbi
mylib.cpp
https://pastebin.com/LqFD9GBW
whetstone.c
https://pastebin.com/x6HFC051
使い方
ターミナル上で小文字の"s"キーを押すとスタートします
Teensy 4.0でビルドしてRAM、Flashの使用量はこんな感じなので
ある程度RAMのあるArduino互換機ではないと動作しないです
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [= ] 8.7% (used 45748 bytes from 524288 bytes)
Flash: [ ] 1.8% (used 37152 bytes from 2031616 bytes) ESP32 Dev Moduleでもwhetstoneの計測してみました
20000回計測
結果は60.4 MIPS Maixduinoでもwhetstoneの計測してみました
platformio.iniに下記のオプションを指定
build_unflags = -Os
build_flags = -O3
50000回計測
結果は78.9 MIPS
platformio.iniに下記のオプションを指定
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
50000回計測
結果は216.3 MIPS
Maixduinoは
build_unflags = -march=rv64imafc
build_flags = -mabi=lp64f -march=rv64gc
のオプションを指定しないとdouble型に関してはFPUの命令を使わず
ソフトウェアで倍精度浮動小数点を計算するようです Dhrystone 2.1もArduinoで実行できるようにしてみました(PlatformIO IDE用)
Dhrystones per Secondを1757で割るとDhrystoneMIPSが出ます
Teensy 4.0
60000000回で計測
platformio.iniに下記のオプションを指定
build_unflags = -Os
build_flags = -O3 -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16
Microseconds for one run through Dhrystone: 0.4
Dhrystones per Second: 2642939.0
DMIPS 1504.2
Maixduino
30000000回で計測
platformio.iniに下記のオプションを指定
build_unflags = -Os -march=rv64imafc
build_flags = -O3 -mabi=lp64f -march=rv64gc
Microseconds for one run through Dhrystone: 0.8
Dhrystones per Second: 1279372.2
DMIPS 728.1
ESP32DevModule
15000000回で計測
platformio.iniに下記のオプションを指定
build_unflags = -Os
build_flags = -O3
Microseconds for one run through Dhrystone: 2.4
Dhrystones per Second: 410666.4
DMIPS 233.7
ソースコードは後で貼ります Arduino IDEでも試してみました
Arduino IDEでもmain.cppを.inoのファイルにすることで
そのまま動くようです
デフォルトのオプションのままで実行してみました
Teensy4.0
dhrystone
60000000回で計測
Microseconds for one run through Dhrystone: 0.4
Dhrystones per Second: 2642938.5
whetstone
Loops: 500000, Iterations: 1, Duration: 31.532001 sec.
C Converted Double Precision Whetstones: 1585.7 MIPS
Maixduino
dhrystone
30000000回で計測
Microseconds for one run through Dhrystone: 1.5
Dhrystones per Second: 650801.5
whetstone
Loops: 7000, Iterations: 1, Duration: 23.251999 sec.
C Converted Double Precision Whetstones: 30.1 MIPS
Teensy4.0はArduino IDEでもほとんど性能は変わらないです
Maixduinoは大幅に性能が低下します
最適化オプションによってかなり性能が変わってしまうようです Arduino互換機用Dhrystone 2.1のソースコード(PlatformIO IDE用)
main.cpp
https://pastebin.com/r4apdxaA
mylib.cpp
https://pastebin.com/MRkdRitB
dhry.h
https://pastebin.com/cwTrL2Ex
dhry_1.c
https://pastebin.com/n2AbNiRc
dhry_2.c
https://pastebin.com/TusHM9X6
ターミナル上で小文字の"s"キーを押すとスタートします
Arduino IDEでもmain.cppを.inoファイルにすることで
そのままで動作するようです ESP32DevModuleのdhtystoneとwhetstoneを
Arduino IDEでビルドして計測してみました
オプションはデフォルトのままです
ESP32DevModule
dhrystone
15000000回で計測
Microseconds for one run through Dhrystone: 3.5
Dhrystones per Second: 284203.9
whetstone
Loops: 20000, Iterations: 1, Duration: 125.021996 sec.
C Converted Double Precision Whetstones: 16.0 MIPS
こちらもPlatformIOで-O3のオプションをつけたときと比べると
性能が大きく落ちてるようです Aruino IDEでコンパイラオプションを変更して
Maixduinoでdhrystoneとwhetstoneを実行してみました
(オプションを変更したら一度ソースファイルすべてを保存して保存日時を更新してください、
そうしないと再ビルドされないかもしれません)
オプション変更前(-mabi=lp64f -march=rv64imafc -Os)
dhrystone
Microseconds for one run through Dhrystone: 1.5
Dhrystones per Second: 650801.5
whetstone
Loops: 7000, Iterations: 1, Duration: 23.251999 sec.
C Converted Double Precision Whetstones: 30.1 MIPS
オプション変更後(-mabi=lp64f -march=rv64imafc -O2)
dhrystone
Microseconds for one run through Dhrystone: 0.8
Dhrystones per Second: 1279344.9
whetstone
Loops: 50000, Iterations: 1, Duration: 23.533020 sec.
C Converted Double Precision Whetstones: 212.5 MIPS
大幅に実行速度が速くなりました
Arduino IDEでMaixシリーズのコンパイラオプションを変更する方法はこちらです
(自己責任でお願いします)
https://pastebin.com/E66j9e7f LGT8F328PのSSOP20買った人はちゃんと使ってるのかなぁ?
Lチカの少しステップアップしたやつやってみたら出力できるポートとそうでないポートがある
こりゃ全部調べないといきなり完成形に持っていくのはリスクがあるな >>459
それなりに使ってるつもりだけど、まだ問題らしい問題にぶち当たってない
Lチカのステップアップて何なの SWDを使ってデバッグしたい俺は
SparkFun RedBoard Turbo (SAMD21)を買ったの! >>464
(・∀・)格好イイ!
できればソケット使わずに直付けしてほしいな。 そうでもない
が、上のは「観賞用途」以外に無価値と断言できる >>472
物の価値ってのは、理解できないやつに理解してもらう必要は無いのでな
例えば、高いワインも安いワインも俺にはわからんが
かといってわからんものに価値が無いと言い放つような低い品性にはなりたくない その低い品性も生きているんだよ。
それが個性でもあるし、干渉したり否定するのが、品性高いとでも? >>471
>>473
言ってることが矛盾してないか? >>475
言い方が変だよねw
紙幣や硬貨を「貨幣用途」以外に無価値と断言できる・・・みたいなw
その用途の価値をあえて回避しているようで草 >>476
気をつけないともしそれ転売したら捕まるやつ ID:HE6TlXjU は、
「個人の電子工作はすべて価値なんて無いよ」に対して「わからんものに価値が無いと言い放つ」と
批判しているんじゃないかな。自分は「見世物」「観賞用」としての価値を見出している、と。
でも「以外に無価値と断言できる」は「わからんものに価値が無いと言い放つ」行為そのものだね。 >>476
Amazonで買ったOSOYOOのDUE互換機もこんな感じのそっくりさんだったわ。 >>476
私が最初にeBayで買ったのも本物そっくりだよ
本家の写真と比べただけだけど違いは見つからなかった
そのそっくりUNOも1台しか持ってないしそもそも今は使ってないけどね ELEGOOのATMEGA16U2をAmazonで購入したのですが、DFUモードになりません。
マイコンとPCを接続→ショート→2〜3秒ぐらいでショート解除としているのですが、
デバイスマネージャーのポートにUSBシリアルデバイス(COM3)として表示されます。
まず前提として、DFUモードにする手順はあっておりますでしょうか? >>482
ざっと探したんだけど16U2のボードってなかったんで16U2が乗っているUNO互換
ボードのことかな?
だとすると使用している端子が間違っているとかないかな?
このボードはICSP用の6ピンが2つ付いていて、使用するのはUSB端子に近い側の
一番外側の2つのピン、RESETとGNDをショートするんだけどどうかな?
うまくいくとCOMじゃなくて「Ateml USB Device」の下に「ATmega16U2」って表示
されるよ
私が持っているのは
/dp/B06Y5TBNQX/
のやつだけど、説明にはDFUに対応していないので16U2書き換えるなって出て
いるので気をつけてね
出来る/出来ないで言えば私はうまく書き換えられたけど、dfu-programmerの
バージョンの問題なのか「flash」のときに「--suppress-bootloader-mem」
オプションを付けないと書き換えできなかったよ >>483様
ご回答ありがとうございます。
確認いたしましたが、私が購入したボードと同じでございました。
使用している端子もUSBに近い側の2つを繋げているのですが・・・
使用する端子は画像の赤丸の端子で合っておりますでしょうか?
https://imgur.com/a/79WlmhV 詐欺犯罪者 田中健太郎 大阪出身 1979/12 見かけたら通報を
傷害&投資詐欺数百万奪い逃走
https://imgur.com/HlZOYpB.jpg >>484
場所はあってます
今読み直して思ったんだけど、USBに接続してから端子をショートしていますか?
私はスイッチ付きのUSBハブで電源を切断しておいて、ピンをショートした状態で
電源ON->ショート解除でうまくいっています
なので、PCに接続しない状態でピンをショートさせておいて、USBに接続してLEDの
チカチカが止まったらショート解除でうまくいかないですか >>486様
ご指摘の通り、USBに接続してから端子をショートいたしておりましたので、
ピンをショートさせた状態でUSBに接続してからのショート解除を試しましたが、
結果は変わらずUSBシリアルデバイスの表示のままでございました。
商品ページのレビュー欄を見るに、初期不良の可能性が高そうなので、返品交換をしようと思います。
ありがとうございました。 USC用チップのファームウェアを書き換えればいいのに >>488
それをやろうとしてるんだよ
そしてBがCにたいぽった? 自作互換機がすっきり作れる専用のブレッドボードとかあったらいいのに LGT8Pでステッピングモーター弄ってたら、10秒で1周するはずが、
7.5秒で1周、10秒で10周するはずが7.5秒で10周で何か間違ってるかと必死に悩んでてふとぐぐったら
https://www.geek-workshop.com/thread-38486-1-1.html
まさにこれだった
delayMicroseconds結構使ってるけど、今まで全く気付かなかったわw githubにもfixソースあったけど、どうにも挙動が怪しくなるから待ち時間を1.3倍する事にしたわ…
完成してボードライブラリがアップデートされるのを待とう 格安NANO見つけたと思ったら
>ご注意: チップは、最新の中国チップ、WAV328P!!
って書いてあった
たしかに印字がAVRとは違う
12MHzだし
どうすんのコレ wavgatのやつなら中身はLGTという話があったと思うが 調べてみたら前からあんのね
最近Arduinoに入門したからわからんかったし
LGTはメリットがあんま無くて減少してるらしいから
俺みたいな初心者には珍しく感じるものなんだな、と、自己分析 間違ってELEGOO UNO R3を買ってしまった >>503
これ持ってるけど、何か駄目なんですか? >>500
持ってた
Lowなのに0.8Vも出ててFET繋いだらゲートが開きっぱなし
周波数カウンター作ったら192kが192.3kと表示される、同じスケッチをnanoで実行すると192.0k
もうそれいじょうWAV328をいじるのをやめた
Lチカとか簡単な事ならできるんだと思う、そういう製品 WAVGATは実質LGT8F328Pでほぼ間違いないと思われる
NanoタイプにはUSB-TTL用とMCU用に2つの12MHzのクリスタルが付いているがUSB-TTLは12MHzを使うとしてMCUに12MHzはやや不明
ただしデフォルトではクリスタルは未使用で内部32MHzのRCオシレータ+8分周のプリスケーラで4MHz動作で起動
おそらくその後ブートローダでプリスケーラを2分周にして他のNano互換の16MHzとしている模様
外部クリスタルオシレータを使用したい場合はLGT8FはATmegaみたいなヒューズはないので単にプログラムで該当するレジスタを設定すれば切り替わるはず WAVGAT(LGT8F328P)の優位性は32MHzのクロックと最高速でも1.8V動作が可能なところ(で、多少安価)
高速処理が要求される場面では有利なこともあるかも…
https://www.youtube.com/watch?v=dbMKfxACAfg 純正がどうなのかは知らぬが互換nano モノによってはUSBシールド部浮いてる。GNDピンたりなくてUSBのシールドはんだ付け部からGNDとった。最初のがバッチリだったのでホカ確認せず同じ結線したら最初の以外ワヤでした >>504
自分はDACが有り難いな
あとポートによって出力電流が違って大電流用ポートがあった様な これは328PBなのでハードウェアUARTが2つある
https://aliexpress.com/item/32864165819.html
シリアル2に接続したGPSのデータを、シリアル1のコンソールへ垂れ流すだけのスケッチでリソース比較
HardwareSerial版 スケッチ 1900バイト,RAM 341バイト
SoftwareSerial版 スケッチ 3426バイト,RAM 301バイト
AltSoftSeria版 スケッチ 3278バイト,RAM 378バイト >>513
すげー
こんなんアップデートするんだな。
お前らどれだけATtiny好きなんだよ! シールドを作る場合に互換性を考えると
・IOREFに依存しない
・SPI側のI2Cに依存しない
・IO電圧は5Vと3.3Vの両方に対応する
みたいにするのが良いのかな? ダイソーは抵抗とかコンデンサーとか電子工作部品置かねーのかなー
半田はあるんだよなー
Daisoduinoとか500円くらいで販売してもいいのよ