Anonymní profil mfr – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil mfr – Programujte.comAnonymní profil mfr – Programujte.com

 

Příspěvky odeslané z IP adresy 85.163.82.–

mfr
Python › PyQt + Matplotlib
30. 3. 2022   #390061

#2 gna
Děkuji! A ještě se rovnou zeptám:

1) Jak přidám nad horní graf mezeru např. 200 pixelů, abych tam umístil tlačítka a texty?

2) Předpokládám, ovládání grafu bude mezi tlačítky a grafem.

3) Mohu nastavit rozměr hlavního okna v pixelech?

Ještě jednou děkuju.

mfr
Python › Python + Raspberry + Wavesha…
16. 3. 2022   #389993

Ahoj,

Uměl by mi někdo za rozumný honorář naspat kód pro čtení hodnot z modulu 24-bit převodníku Waveshare ADS1256 zapojeného do Raspberry PI3B+? Rychlostí 25 nebo 30kSPS do array, vždy po zmáčknutí button. Do ADS je připojeno ADXL1005. Důležité je časování, jeden sampl každých 40micros (pro 25kSPS). Další zpracování už dokážu sám.

Děkuju

MFR

mfr
Python › update grafu
29. 1. 2022   #389791

#4 gna
Díky a ještě jeden dotaz jestli mohu.

Nyní mám dva grafy pod sebou, jejich velikost je podle okna. To je super. Ale potřeboval bych horní graf zmenšit na šířku a dát vedle okno, kam bych si vypisoval hodnoty, které se přepíší když dám update. Něco jako na obrázku. Děkuju za všechny rady.

Připojen obrázek.

mfr
Python › update grafu
28. 1. 2022   #389780

#2 gna

Díky za pomoc, ale ještě bych se chtěl poradit s další věcí...

Můj kód je nyní:

import matplotlib.pyplot as plt
from matplotlib.widgets import Button
import serial
import struct

ser = serial.Serial(port='COM4', baudrate=2000000)
SAMPLES=200
s = struct.Struct('<' + str(SAMPLES) + 'f')
unpacked_data1 = []

def serial_read():
    ser.reset_input_buffer()
    ser.write("r".encode())
    serial_data = ser.read(SAMPLES*4)
    unpacked_data = s.unpack(serial_data)
    unpacked_data1[1:SAMPLES] = unpacked_data[1:SAMPLES]
    ser.close

def getdata():
    serial_read()
    return (
        unpacked_data1
    )
    

def update(event):
    set1 = getdata()
    line1.set_ydata(set1)
    plt.draw()

fig, (ax1) = plt.subplots(1)

set1 = getdata()
line1, = ax1.plot(set1)


btnax = plt.axes([0.4, 0.9, 0.2, 0.1])
button = Button(btnax, 'Update')
button.on_clicked(update)

plt.show()

První vykreslení hodnot je ok, ale u druhého mi to píše ValueError: shape mismatch: objects cannot be broadcast to a single shape. Kde mám chybu?

A ještě druhý dotaz:

Kdybych chtěl v druhém okně vykreslit FFT, tak to udělám takto? 

x = np.linspace(0.0, SAMPLES*T, SAMPLES)
y = unpacked_data1
yf = scipy.fftpack.fft(y)
xf = np.linspace(0.0, 1.0/(2.0*T), SAMPLES//2)
fig, ax2 = plt.subplots(2)
line 2 = ax.plot(xf, 2.0/SAMPLES * np.abs(yf[:SAMPLES//2]))
 

Díky moc!!

mfr
Python › update grafu
27. 1. 2022   #389768

Ahoj,

čtu data ze serial portu do array. Rád bych měl tlačítko update, po jehož stisknutí chci načíst data do array a updatovat dva grafy. Nyní tam mám plot a show, tzn. se mi otevře okno s grafem a musím ho zavřít a pak se mi zobrazí druhé a po zavření se ukončí program.

Jak by šlo udělat, mít jedno tlačítko nahoře v okně a pod ním dva grafy. Po stisknuté tlačítka se provede funkce načtení dat a nové vykreslení obou grafů?

Díky moc za každý postřeh.

mfr

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý