Ci è voluto un po' di ripensamento; invece di utilizzare il rapporto di sterzata scarsamente definito del trasformatore e l'antica calibrazione dell'oscilloscopio, ho presupposto che la tensione di casa mia fosse 125 V rms e ho utilizzato il fattore 1,414 per ottenere la tensione picco-picco che l'onda sinusoidale dovrebbe corrispondere. Sembra abbastanza vicino. Ora per fare in modo che l'ESP32 digitalizzi i punti direttamente...
Le schede della versione 0 sono arrivate poco prima della fine dell'anno e hanno servito al loro scopo. Domani aspetto le schede della versione 1. Ecco la scheda versione 0 che mostra l'onda sinusoidale di tensione su un display 240x320 da 2,8 pollici e una scheda aggiuntiva. Il tappo della bottiglia serve per la bilancia; guarda il piccolo condensatore nel cerchio giallo. Il fornitore del PCB lo monta; Sono abbastanza sicuro di non poterlo fare.
The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.The display is mounted to the red card, which plugs in to a connector mounted to the vertical row of holes at bottom left-center.Il display è montato sul cartellino rosso, che si collega a un connettore montato sulla fila verticale di fori in basso a sinistra al centro.
Il test della connessione Wi-Fi in attesa delle schede della versione 1 suggerisce che da 40.000 a 50.000 byte al secondo è una velocità dati sostenibile con tutto il resto che questo computer deve fare. Voglio esaminare sia i canali di tensione che quelli di corrente, quindi circa 20KB/sec per ciascuna forma d'onda digitalizzata. Ad un certo punto vorrò utilizzare una FFT sui dati e ho iniziato a pensare alle dimensioni del buffer. Alle FFT piace molto la potenza di 2 dimensioni. Quanto? Ecco qualche codice di prova:
dt = New Table( "Untitled", "invisible", New Column( "size" ), New Column( "time" ) );
dt << New Column( "factors",
character,
formula(
primes = [2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257
263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463 467 479 487 491 499 503 509 521 523 541 547 557 563 569 571
577 587 593 599 601 607 613 617 619 631 641 643 647 653 659 661 673 677 683 691 701 709 719 727 733
739 743 751 757 761 769 773 787 797 809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907
911 919 929 937 941 947 953 967 971 977 983 991 997 1009];
start = size;
ip = 1;
q = primes[ip];
result = "";
While( start > 1,
If( Mod( start, q ) == 0,
result = result || Char( q ) || ",";
start = start / q;//
, //
ip += 1;
q = primes[ip];
If( q * q > size, Break() );
)
);
If( start > 1,
result = result || Char( start )
);
result;
)
);
For( i = 2, i <= 2 ^ 19, i += 1,
x = 0;
x = J( i, 1, Random Uniform() );
start = HP Time();
FFT( {x} );
end = HP Time();
dt << addrows( 1 );
dt:size[N Rows( dt )] = i;
dt:time[N Rows( dt )] = (end - start) / 1e6;
If( i == 10,
dt << Graph Builder(
Size( 1709, 424 ),
Show Control Panel( 0 ),
Variables( X( :size ), Y( :time ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Marker Size( 0 ), Marker Drawing Mode( "Normal" )}
)
)
);
Wait( .1 );
);
If( Mod( i, 100 ) == 0,
Wait( 0 )
);
);
La tabella è simile a questa:
2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 is great,3 and 5 nice, maybe 7.2 è fantastico, 3 e 5 carini, forse 7.
Fa un bel grafico:
The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.The fast buffer sizes, near the bottom, don't have large factors.Le dimensioni del buffer veloce, vicino al fondo, non hanno fattori grandi.
Cosa c'è in quella strana pila di punti intorno a 9500? Seleziona, sottoinsieme, dai un'occhiata...
Bigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsBigger factorsFattori più grandi
Sembra che JMP sarà in grado di creare un dashboard in tempo reale se utilizzo un buffer di esempio 1024 o 2048.
Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Very fast.Molto veloce.
Anche a 60 volte al secondo, è inferiore all’1%. Potrei eseguire la FFT sull'esp32. Quindi, invece di inviare forme d'onda complete, è possibile inviare semplicemente i primi N contenitori di frequenza e ampiezze. Un sacco di compromessi da considerare.