格安wifiモジュール「esp8266」「esp32」 4個目
■ このスレッドは過去ログ倉庫に格納されています
ESP32でハード活かしてサーボ制御する場合どんな事するんだろと
driver/mcpwm見てみたらわけ分からんかった
リファレンスを見るにハードではmcpwmunit2 x timer3の6個制御出来るのかな? >>494
写真写りが悪いんで確かにそう見えるけど、ルーペで確認するとはんだはちゃんと濡れてるんで、合金層はきっちりできてるはず
それにもし接触不良ならPCではうまく通信できるという現象の説明がつかなくない?
>>495
波が小さくてコードに起こせないから、確かに正しいデータが返ってきたとは断言できないんで、君はきっと納得しないんだろうけど
出てくるデータの間隔やパターンがTXの出力タイミングに一致しているのでおそらく8266の応答なんだと思う
>>496
逆向きはないと思う
理由として、この基板はCQ出版が出してるものだけど、トラ技で、このように接続することと書いてあるように接続しているのと
用意された図面を追ってもトラ技の説明通りに接続するのが正しいのと、
MCUのRXピンと8266モジュールのピントをテスターで導通チェックしたら導通してるから STM32側のポートが出力になっていて衝突してると言う事はない?
UART2として初期化せず、GPIO15を直に0/1にしてオシロで見てみるとか STM32->UART->ESP8266->?->PC
というような経路なのだと想像するが、それすら質問者は明確にしてない。
仮にこの経路だとして、どこまでは確認できているのかもわからない。
何か測定値が示されたけどどこを測ったのかもわからない。
回路図は出せない。
これじゃ、アドバイス出来ん。 >>498
>君はきっと納得しないんだろうけど
君呼ばわりかよっ、偉そうに! 使ってるのはCQ出版社が出してるこのボードで、回路図はトラ技の2020年3月号に載ってる
https://shop.cqpub.co.jp/hanbai/books/I/I000336.html
回路図をアップしないのは回路図の著作権を俺が持ってないのと
著作権を持ってるであろうCQ出版社が公開を容認しているか知らないから
測定個所は写真の丸を付けた端子の箇所
どこもほぼ同じ形の波形が出ていて、どこかで測ると0-3.3Vのきれいな波形が出てるわけではない >>500
テスターとUSBオシロ持ってる(これだけでも初心者としてはスバラシイ!)みたいだし、自分もレスしようとして何度も読み返したけど、よく分からない
回路図も全部は必要無いから、例えば接続してる部分だけを(端子名・番号も)手書きで出せば著作権関係無いし、遥かに適切なレスが付くと思うんだよなあ
まっ言い方は、人に依ってはムカつくかも知れないけど。。 >>501
ほんと日本語めんど臭いよね?
本来は君=天皇陛下・皇帝陛下(!)なんだし
ちなみに中国でも○○先生と呼ぶけど、先生=ミスターらしい
おっと、スレ汚しスマソ >>504
接続図+アルファみたいなの手書きで書いて出せないの?
それから「どこも同じ」って「どの端子でも」ってこと?それとも時間軸上のどのタイミングでもってこと?
先ず各ユニット単独で、STM32のTX端子、8266のTX端子に、簡単な8ビットデータ、例えば0x55や0xAA、を無限ループで出してオシロで見るとどうなる?
この状態でキレイな波形が出てれば、後はポートの設定(入力端子を出力に設定?)か配線の(隣接端子のショートや半田不良)の不具合だと思うけどな。。 なんかコピペでよく見るエンジンが掛からなくなった彼女との会話みたいだな。
この手のボードは動作確認に使えるデモ用ソースがあるものなんだが試してみた? 回路図の一部だけアップした
こっちが本体側
https://i.imgur.com/xjfwm21.png
こっちがEPS8266ボード側
https://i.imgur.com/bpwcY8G.png
赤丸でくくったところにプローブを当てて信号を見たところ、このすべてで大した差はなくて、
それが、これ
https://i.imgur.com/Ha6s6CB.png
>>508
MicroPythonを使ったサンプルコードはあるんだけど、pythonを使う気は全くないんだ 約500ms間隔で、0x41 0x54 0x0d 0x0a (ASCII文字のATにCRとLFをつけた4Byte)を送信した波形はこんな感じ
https://i.imgur.com/f6jYi02.png 回路図ではwroom-02のGPIO1,3だよね。これはUART0じゃないの? >>509
そのボードを買ったということは当然、トラ技の2020年3月号は持ってるんだよね?
その記事にあるネットラジオのプログラムは動くの?
それが動くならSTM32の方のプログラムが悪いのかと思う マイコンの型番教えてくれ。ピンが正しいか確認したい。 CubeMXの設定画面だけど、マイコンのUART2を使ってるよ
https://imgur.com/ASQThb3.png
これが、ESP-WROOM-02の11番ピン(RXD・GPIO3)と12番ピン(TXD・GPIO1)につながってるよ あと、やっぱりネットラジオの記事のプログラムを参考にすれば
そのARM Firstのボードからの使い方はよくわかると思うよ
その8266モジュールのBeeFirstはXBee互換みたいだけど >>514
STM32F405RGT
>>513
ネットラジオは8266のファームウェアを書き変えてるんでちょっと敷居が高い。
同じセットを2つ持っててどちらでも同じ症状が起きてることからおそらく、基板の設計や実装ミスじゃなくて
俺が作ったコードが悪いんだと思う。
だけどどこが悪くてどうすればよくなるのかが分からないんだ。 回路図でUARTのRXが2箇所に接続されてるけど、これはなんだ?
STM32基板とESP基板を同じ回路図上に書いたということか?
ESPのTXが異なる2つのICに入力されてるのか? >>519
何の説明もないんで勝手な想像だけど
P9の1,2ピンを使うならESP8266ボードは使うな
ESP8266ボードを使うならP9の1,2ピンは使うなって意味かと
スタブになるのは高周波では問題だけど、UARTくらいでは大したことないでしょ >>517
MicroPythonのサンプルから使ってるUARTと使ってるPINがどれかはわからないの?
あと動作確認の意味でMicroPythonを入れてみるのはありかも
ARM FirstはPybord用のMicroPythonが入るみたいだからね トラ技2020年3月号の69ページにArduinoからATコマンドを送るサンプルが載ってるね
UARTはUART2みたいだけど
8266のファームウエアのバージョンは「AT+GMR」で調べられたはず
8266のATコマンドでのWiFiの接続はファームウエアのバージョンにもよるけど
AT+CWLAP アクセスポイントを表示
AT+CWMODE_CUR=1 Stationモード
AT+CWDHCP_CUR=1,1 StationモードでDHCP取得
AT+CWJAP_CUR="SSID","PASSWORD" 接続
AT+CIPSTA? StationモードのIPアドレス、ゲートウェイ、サブネットマスクを表示
AT+PING="www.google.com" PINGコマンド
切断は
AT+CWQAP 一個づつばらして確認しなよ。
最初から全部載せて動かそうなんぞ、無理に決まってるがね。 あと、8266の改行は0x0d,0x0aね
0x0dだけとか0x0aだけだと応答帰ってこないよ >>523,524
そんな高度なところ以前の問題で、ESP8266が動作していればどんな設定でもとりあえず答えてくれるATのみのコマンド、
AT[CR][LF]
と出力して
AT[CR][LF]
[CR][LF]
OKAT[CR][LF]
が返ってくるところで躓いてるの
それも、まったく返ってこないわけじゃなくて、返っては来てるっぽいんだけど
波形が異常でマイコンが、返ってきてると認識していない。
じゃあ、8266が故障してるのかというと、PCと8266の間では同じやり取りが成立しているので壊れてるわけではない
じゃあ、マイコンボードが故障しているのかというと、同じ型番で別のマイコンボードに俺が作ったソフトを入れると
どちらも同じような波形が返ってくるので、故障しているとは考えにくい。
じゃあ、回路図がおかしいのかというと、アップしたのをレスしてくれた人以外も見ただろうけど、誰も何も言ってないということは
おそらくパッと見ただけでわかるような不具合はなさそう。
じゃあ、実装がおかしいのかというと、それはパータン図が手に入らないので何とも言えない。
とりあえず、設計も実装も問題ないという前提に立つと、俺の作ったソフトに問題がありそうなんだけど、
じゃあそれのどこに問題があるの?というところではまってるの。
現象から推測するに、HAL関数の使い方が間違ってるとかいう上層の話ではなく、IOポートの設定が間違ってるとかいう
下層の話っぽいんだけど、そこらへんがよく分からないんだよね だからあ 配線切った状態でシリアルが出てるのは確認できたのか? あと、ESP8266のリセットはちゃんとやってるのだろうか?
RESETピンに接続されてるピンがあるはずだから
それをちょっとの時間、LOWにする必要があると思うけど >>515
すまんwroom-02側のソースと勘違いしてたよ。
>>528
RESET以外に8266の動作モードのio0,2も一応見といた方がいいかな。 >>528が何言ってるのかやっとわかった気がする
8266を基板から外して、必要なピンを全部ジャンパで飛ばしてRXをオープンにして測ったら波形が出てる
https://imgur.com/OXCsdST.png
だから、マイコンボードかソフトのどっちかが悪いんだ 69ページのArduinoのサンプルでは100ms間PB1をLOWにして
HIGHに戻してから初期化が終わるまで5秒間待機してるね >>531
IO2は3.3Vに吊ってあって、マイコンボードからはつながってないので常時HI
IO2はQ1がOFFなら3.3V
Q1はIO13がHIならONなので、C言語風に書くと、IO2 = !IO13だね
IO2もマイコンボードにはつながってない >>532
そこまで出来てるなら話は早い。そのときの解放されてるRXピンに抵抗を介して電圧3V3でも入力して、何Vまで下がるか確認すればどうか。
入力インピーダンスが低いか高いかわかるぞ。
ここまで書いて思ったんだが、プルダウンされてる可能性があるな。
CubeMXでUART2のRXの詳細を見てみ。 >>533
それだ!
これをやってなかったというか、リセットを放置してたから多分出力が宙ぶらりんになってたんだと思う
ちゃんとLO→HIにしてやったら波形が出るようになったよ
https://imgur.com/W7R6G6t.png
みんなありがとう だからENがHIGH、IO0がHIGH、IO2がHIGH、
RESETは平常時HIGHで使う前に100ms間LOWにするわけ
リセットはきちんと行わないと動作が不安定になるよ >>537
本当だね
電源ON時に勝手にリセットになると甘く見てたよ 自分も巻き込まれたけど、なんかさ、言葉使いまで指摘されて大騒ぎした挙げ句に原因がリセットだったって、ホント笑えるよな?
って言うか、正に初心者のトラブルの典型、かつ紆余曲折が有り過ぎて近年稀に見る流れだったわ
ホント >>475 から >>541 までの一連なレスを永久保存したいくらい。。 でもなんか変だな。
>8266を基板から外して、必要なピンを全部ジャンパで飛ばしてRXをオープンにして測ったら波形が出てる
この時は、リセット端子は接続してたんじゃないのか? >>537
そうなん?
RTCメモリ消したいからENだけLOWにしてておかしくなったことはないんだけど
RSTもしたほうがいいんかな? >>543
それな
でも、問題の切り分けの概念が無さそうだから、いちいち説明すんの面倒
>>489を書いて、以後黙って観てた俺正解、予想もほぼ的中 結果、ESP8266の使い方の話だったわけだから、スルーが正解 espラジオが動かない
相手鯖に繋がるとこまでいくんだけどデータが落ちてこないってエラーでる
エスパーよろ >>546
俺、STM32住人だが、あそこは基本的に雑談をするためのスレ
だから、このスレに戻ってアドバイスもらえと助言した ESP32のDACで音だすの昔やったはずなのにもう一度やるとノイズまみれになる
ワーニングでてるし何かのupdateで動かなくなってんのかと
デバッグログ追加してデータみたり2日くらい悩んでたけどGNDの場所変えらノイズなくなったw
なんだこれw >>555
うちもノイズ酷くてこんな物かと諦めてたけど、まじか
0x00を出力すれば無くなるんだけど、0x7fや鳴らしてる最中はずっとプップップッって変な周期ノイズが入る
Lolin32とDevkit両方で同じ様に入るから仕様かと思ってた >GNDの場所変えらノイズなくなった
ごく定番の結論だと思うが? >>557
まぁ、そうなんだけど、デジタルで入った人は分かっててもなかなかたどり着けない
頭で分かってても心で分かってないからな その変なノイズは信号線でなく、GND線から這い上がっている
GND線はどこでも同電位ではない
電流の流れているところには電位差が発生している
シビアな信号線の場合は変な所からGNDを取ってはいけない うちのノイズはGND関係ない見たいだ 残念
PAM8403+スピーカでは無音時以外あまり目立たないけど、圧電ブザーだと鳴ってる最中も凄い目立つ すいません、ESP8266なんすけど
単純にHTTPSのサイトのhtmlソースを取得したいんですけど、
検索しても全然出てこないんですけど、
なんなんっすか? 一応こちらのサイトを参考にしたんすけど
https://saitetu.net/entry/2019/02/10/134051
コネクションできないんっすけど、
なんなんっすか RAMサイズちっさ!
めんどくせーからESP32買うっす >>565
32にしたってメモリ空間は連続してないというね htmlソースのサイズが350kbぐらいなんだけど、ESP32でも無理っすかねー
必要なのはhtmlソースの真ん中あたりの10kbぐらいなんだけど、
そこだけ.getString()できないもんなのかな
.writeToStream.(&Serial)でシリアルモニタには全部表示できたけど意味ないし streamからreadBytesで1バイトずつ読み込んだら出来たっす そう言うでかいデータ扱いたい時はaliで8MB$0.4とかのSPI接続のSRAMを使えば良いらし >>570
8Mビットだよな。それでも最近は大きいのがあるんだなあ、すげえ。
と思っていたら、64Mビットだった…
http://ipusltd.com/Products_jp.html こういうRAMって自分の好きなアドレス空間にマッピングしたり
気軽にコンパイラから使えるようになったりするの? ESP32-WROOVER-Bを使ったESP32-DevkitC-VBなら税抜き1276円mouserで買える
ただし、送料無料になる税抜き価格で6000円以上買わないと送料2000円かかるけど あと、WiFiないけど、ArduinoでRAMを大量に使えるボードとしてはMaixBitがあるね
Flashが16MBでそのうち8MBがプログラム用に使えるのとRAMが6MBもある
QVGAのLCDとカメラが付いて秋月で3000円 ESP8266くらいでも昔のポケコンを再現出来そうなもの
キーボードが面倒くさいか BTが無いのは良いけど、シングルコアってのがちょっとな
ESP8266の代わりには良いのかな マイコンでマルチコア合っても使いこなせないのでは?(笑) >>581
ESP32はarduino IDE使ってるとRTOS上で動いてるから
マルチコアもマルチスレッドも簡単に扱えるよ ほいマルチコアのサンプル
#include "esp32-hal-log.h"
#include "freertos/task.h"
/*
BaseType_t xTaskCreatePinnedToCore(
TaskFunction_t pxTaskCode, //タスクの関数ポインタ
const char * const pcName, //タスク名
const uint16_t usStackDepth, //タスクのスタックサイズ
void * const pvParameters, //タスク関数に渡す引数
UBaseType_t uxPriority, //タスクの優先度
TaskHandle_t * const pxCreatedTask, //タスクのハンドル
const BaseType_t xCoreID //コア番号
);
*/
void setup() {
Serial.begin(112500);
Serial.println("Hello, this is ESP32:)");
xTaskCreatePinnedToCore(task0, "Task0", 8192, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(task1, "Task1", 8192, NULL, 1, NULL, 1);
}
void loop() {
}
void task0(void *arg) {
while (1) {
Serial.println("This is Core 0");
delay(1000);
}
}
void task1(void *arg) {
while (1) {
Serial.println("This is Core 1");
delay(1500);
}
} へー、これはいいね。
通信中もボタン入力受付ができるね >>586
さすがにボタン押すくらいじゃマルチコアにするのは勿体ないと思うぞ 全く独立したものならいいけど、
volatile 変数を共有するような場合、
割り込まれてほしくないところで排他かけないととか考え出すと意外に面倒 >>588
そそ
このサンプルも同じシリアルポート使ってるから
実はあまり良くない ESP32はデュアルコアだしArduinoからでも利用できる なんか2コア目を使ったらいきなり消費電力が五倍くらいになったけど
しょうが無いのかな >>588-589
マルチコア、マルチスレッドは大変で簡単ではないが、でも、
espを使う奴はすごいレベルの奴が普通・esp用ライブラリが超すごいから
マルチコアもマルチスレッドも簡単に扱えるんだよ。(ちなみに俺はesp使たことがない)
>Serial.println("This is Core 1");
普通は排他的制御をしないといけないシリアルアクセスもesp用ライブラリがすごいから
普通に書いて全く問題ないんだよ。
これから判断するに、esp用ライブラリは複数のスレッドからread-writeする変数
だってアトミック変数にしないでOK・アトミック操作でアクセスしなくても
普通のアクセスで全く問題ないんだよ、きっと。 >>592
まあリソースの排他は必要なんだけど、さっきの説明の中では本質では無いし。後で補足もあるよね。
大人になろうよ。 >>593
マルチコア、マルチスレッドで大変なのが排他制御の部分だろ
それをしていないマルチコア、マルチスレッド例を出してもな ■ このスレッドは過去ログ倉庫に格納されています