Cov txheej txheem:

Mandelbrot thiab Julia Teeb ntawm ESP32: 4 Cov Kauj Ruam (nrog Duab)
Mandelbrot thiab Julia Teeb ntawm ESP32: 4 Cov Kauj Ruam (nrog Duab)

Video: Mandelbrot thiab Julia Teeb ntawm ESP32: 4 Cov Kauj Ruam (nrog Duab)

Video: Mandelbrot thiab Julia Teeb ntawm ESP32: 4 Cov Kauj Ruam (nrog Duab)
Video: Benoit Mandelbrot Zoom Fractals MUSHROOM MOOD-Chillout Music 2024, Kaum ib hlis
Anonim
Image
Image
Mandelbrot thiab Julia Teeb ntawm ESP32
Mandelbrot thiab Julia Teeb ntawm ESP32
Mandelbrot thiab Julia Teeb ntawm ESP32
Mandelbrot thiab Julia Teeb ntawm ESP32

Koj yeej paub fractals, nto moo tshaj plaws uas yog Mandelbrot teeb.

Nov yog qhov program los ua si nrog ntawm ESP32. Kuv xaiv ESP32 vim tias kuv xav tias nws yuav ua qhov laij lej nrawm dua li tus qauv Arduino (ntau dua lub moos zaus: 240 MHz): kwv yees li ib pliag thib ob thiab ib nrab rau kev suav thiab tso saib.

Cov lej qhia ntawm 480 x 320 TFT kov lub vijtsam. Nws suav Mandelbrot thiab Julia teeb tsa rau ntau qhov ntsuas qhov tseem ceeb, thiab tso cai rau koj nthuav dav rau thaj tsam ntawm kev txaus siab kom pom qhov feem cuam tshuam (piv txwv li muaj nyob ntawm cov qauv ib yam ntawm txhua qhov kev hloov pauv). Cov qib zoom tau txwv vim qhov txwv qhov tseeb ntawm kev suav, tab sis ib nrab kaum ob lub ntsej muag tuaj yeem ua ua ntej cov duab tsis zoo.

Npaj txhij los tshawb txog lub ntiaj teb khawv koob ntawm fractals …

Kauj Ruam 1: Mandelbrot thiab Julia Teev Dab Tsi?

Mandelbrot thiab Julia Sets yog dab tsi?
Mandelbrot thiab Julia Sets yog dab tsi?
Mandelbrot thiab Julia Sets yog dab tsi?
Mandelbrot thiab Julia Sets yog dab tsi?
Mandelbrot thiab Julia Sets yog dab tsi?
Mandelbrot thiab Julia Sets yog dab tsi?

Cov Mandelbrot teeb tsa muaj npe tom qab Benoit Mandelbrot (1924-2010), tus lej Fab Kis thiab Asmeskas uas ua haujlwm ua haujlwm pionnering hauv cov lej sib txawv, pib thaum kawg ntawm lub xyoo pua puv 19 los ntawm, ntawm lwm tus, Peano, Sierpinski thiab Julia.

Dab tsi yog cov khoom fractal?

Qhov tsis xwm yeem ntawm qhov xwm txheej, uas yuav zoo li muaj kev ntxhov siab, xws li kab ntawm ntug dej hiav txwv, cov duab huab, tsob ntoo, qhov tseeb yog qhov kev qhia ntawm cov duab geometry nyuaj ntawm kev hloov pauv. Hauv cov ntsiab lus no, qhov kev xav ntawm qhov faib me me hloov pauv ntawm qhov ib txwm muaj Euclidean dimension (uas ib txwm yog ib tus lej)!

Ib qho khoom siv fractal yog qhov uas ib feem ntawm nws zoo ib yam rau tag nrho (qhov no hu ua tus kheej zoo sib xws): nws cov qauv tsis hloov pauv los ntawm kev hloov pauv.

Lub sij hawm "fractal" yog neologism tsim los ntawm Benoît Mandelbrot xyoo 1974 los ntawm Latin paus fractus, uas txhais tau tias "tawg", "tsis xwm yeem". Nws yog ob qho tib si npe thiab adjective. Ntau qhov xwm txheej tshwm sim - xws li cov qauv ntawm ntug dej hiav txwv lossis cov tsos ntawm Romanesco zaub qhwv (saib daim duab) - muaj kwv yees li cov duab sib npaug.

Benoît Mandelbrot's tau ua haujlwm tsis zoo ib yam: tom qab qhia hauv University of Lille (Fabkis), nws tau ua txoj haujlwm ntawm IBM qhov uas nws tau dhau los ua IBM Fellow, uas ua rau nws muaj kev ywj pheej zoo rau nws txoj kev tshawb fawb. Thaum xyoo 1980s, tom qab nws tawm ntawm IBM, nws tau dhau los ua xibfwb ntawm Harvard, tab sis nyob ruaj khov ntawm Yale.

Nws ua haujlwm hauv 1960s thiab 1970s thaum ntxov coj nws mus tshaj tawm tsab xov xwm nto moo hu ua "Fractal Objects" uas nws tau pom tias cov khoom no, suav nrog los ntawm feem ntau ntawm cov lej hauv zej zog raws li qhov xav paub, tau pom nyob txhua qhov chaw. Nws tau muab ntau qhov piv txwv hauv ntau yam haujlwm xws li physics, hydrology, nyiaj txiag, meteorology, geography, geology, metallurgy….

Dab tsi yog Mandelbrot teeb?

Txhawm rau pib, cia peb hais tias nws yog daim duab zoo tsim los ntawm ib qho program. Thiab qhov program no yooj yim heev. Ntau muaj ntau lub computer tsim cov duab kos thiab ntau lub khoos phis tawj software los tsim lawv. Yog li dab tsi tshwj xeeb txog qhov no? Ua ntej, Mandelbrot teeb tsa yog ntu me me ntawm txoj kev npaj, sau cov ntsiab lus. Nws muaj cov cheeb tsam tab sis kuj tseem nkhaus nkhaus, cov ntsiab lus, cov ntsiab lus los ntawm ntau ceg ntoo tawm los, thiab lwm yam. Qhov thib ob: nws yog qhov txaus nyiam heev thiab muaj keeb kwm txaus nyiam heev.

Thaum pib ntawm lub xyoo pua 20th, Fab Kis cov lej lej Pierre Fatou thiab Gaston Julia tau tsim cov lej lej uas hu ua holomorphic dynamics. Lawv tau txaus siab rau cov haujlwm tshwj xeeb, ua tus lej, siv qee cov qauv yooj yim tshaj plaws. Cov lej hauv nqe lus nug yog cov lej nyuaj, qhov ntau sawv cev los ntawm ob txoj haujlwm (ib yam li cov ntsiab lus ntawm lub dav hlau) hu ua qhov tiag thiab qhov xav tau. Lawv tau tsim nyob rau xyoo pua 16th los ntawm cov kws ua lej los pab nrhiav cov hauv paus ntawm cov lej thiab cov kev daws teeb meem tab sis tau pom dav thiab tob siv hauv lej thiab kev tshawb fawb lub cev. Peb tuaj yeem ntxiv 2 tus lej sib txawv, sib faib lossis faib lawv, thiab ua ntau yam ntxiv. Fatou thiab Julia kawm txog cov yam ntxwv ntawm qee yam kev siv tshuab uas cov lej sib txawv sib txawv raws li txoj cai yooj yim tau ua ntau thiab ntau dua: tsis xav tau cov lej nyuaj ntawm no (yog li, koj tuaj yeem hnov qab thawj daim duab…). Lawv tau nthuav tawm qhov kev nplua nuj ntawm cov kab ke no, piav qhia cov teeb tsa tam sim no hu ua Julia cov teeb tsa, thiab kawm txog lawv tus kheej zoo ib yam, yog li qhov feem cuam tshuam ib feem …

Tom qab cov neeg nrhiav haujlwm, cov npe no poob rau hauv kev tsis nco qab. Thaum cov khoos phis tawj tuaj txog, lawv tau pab tshawb nrhiav ntau qhov kev ua lej uas xav tau kev suav suav suav nrog, suav nrog cov npe qhib los ntawm Julia thiab Fatou., nws tau txais daim duab zoo nkauj thiab ntxim nyiam heev (thawj daim duab ntawm ntu dhau los).

Mandelbrot teeb tsa sawv cev dab tsi? Yeej, muaj cov txheej txheem txheej txheem cuam tshuam nrog rau txhua kis ntawm daim duab. Kev tswj hwm ntawm lub ntsiab lus ua raws li kev ntsuas ntsuas tau. Cov ntsiab lus sib txawv sib txawv sib txawv ntawm Julia thiab nyob ntawm lawv tus cwj pwm, peb tuaj yeem txiav txim siab xim lub ntsiab lus hauv ib txoj hauv kev tshwj xeeb. Mandelbrot teeb yog txheej txheej uas lub kaw lus muaj cov cuab yeej tshwj xeeb.

Yuav suav li cas Mandelbrot thiab Julia teeb tsa?

Peb yuav tsum tau mus rau hauv kev nthuav dav me ntsis ntawm yuav ua li cas los xam cov teeb tsa no. Mandelbrot thiab Julia teeb tsa tau suav los ntawm kev rov ua dua ntawm cov qauv yooj yim, hauv peb cov ntaub ntawv z^n+c. z yog tus lej nyuaj uas sawv cev rau kev tswj hwm ntawm ib qho taw tes ntawm cov zaub. yog cov zauv nthuav tawm, yog li z^n yog sib npaug z zaws los ntawm nws tus kheej n lub sijhawm, thiab c yog qhov tas li.

Rau Mandelbrot teeb tsa, rau txhua lub ntsiab lus hauv thaj chaw tso saib, peb pib z rau 0. qhov c tsis tu ncua sib npaug rau tus nqi ntawm kev tswj hwm ntawm cov lus pom zoo thiab cov qauv tau rov ua dua.

Nov yog txoj cai: lub ntsiab lus yog ib feem ntawm cov teeb tsa yog tias daim ntawv thov rov ua dua ntawm cov qauv no tsis sib txawv (piv txwv li tsis ua rau kev suav rau cov lej loj). Nws tuaj yeem ua lej pom tias yog qhov txiaj ntsig ntawm cov mis ntau dua 2 (hauv cov qauv txij li peb tab tom tham txog cov lej sib txawv) qhov rov ua dua yuav sib txawv. Yog li kom sai tau cov xim zoo nkauj, peb nres qhov rov ua dua thaum cov qauv ntawm qhov tshwm sim ntau dua 2 thiab cov xim sib xws rau tus lej ntawm qhov tshwj xeeb iteration. Yog tias cov lej rov ua ntau dhau (yog li yog lub ntsiab lus yog ib feem ntawm Mandelbrot teeb tsa) peb nres tom qab qhov pib muab thiab koom nrog cov xim dub rau qhov no.

Kev teeb tsa Julia tau suav ua ib txoj hauv kev zoo sib xws tab sis kev suav tsis tau pib ua ntej ntawm 0 tab sis ntawm tus nqi ntawm kev tswj hwm ntawm qhov kev txiav txim siab thiab qhov c tsis raug xaiv los ntawm tus neeg siv thiab tseem zoo ib yam rau tag nrho cov duab.

Qhov ntawd yog, Kuv vam tias nws yog qhov tseeb … Cov lus piav qhia no pab kom nkag siab zoo ntxiv cov lus qhia ntxiv rau kev siv.

Kauj Ruam 2: Koj Xav Tau Dab Tsi?

Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?
Koj Xav Tau Dab Tsi?

Cov nqi ntawm cov khoom:

  • 1 ESP32 pawg thawj coj saib
  • 1 TFT zaub nrog touchscreen thiab stylus
  • 1 lub khob cij thiab cov xov hlau

Qhov ntawd yog nws. Tag nrho tus nqi qis dua 10 USD.

Espressif's ESP32 yog dual core microcontroler khiav ntawm 240 MHz, uas ua rau nws yog tus neeg sib tw zoo rau kev suav nrawm thiab nyuaj. Nws muaj peev xwm WiFi thiab Bluetooth uas kuv tsis siv hauv txoj haujlwm no.

Cov lus qhia teeb tsa yog 32 khoom me me. Kev suav nrog 16 thiab 32 qhov hloov pauv tau nrawm heev uas ua kom muaj kev suav raug, uas yog qhov tseem ceeb rau kev nthuav dav lub hom phiaj. Hauv daim ntawv thov no, rau 320 x 240 zaub, ib daim duab yog ua los ntawm 75, 000 pixels, txhua qhov uas tau suav nrog siv cov txheej txheem rov ua haujlwm uas tuaj yeem ua haujlwm txog 100 zaug. Qhov no yuav ua rau 7, 500, 000 kev suav ua ke, txhua tus uas yog qhov nthuav tawm, piv txwv li ntau qhov sib ntxiv …

Yog li kev suav nrawm yog qhov tseem ceeb ntawm no, tab sis qhov tseeb yog qhov tseem ceeb. Qhov ntau koj zoom, qhov me me ntawm qhov feem ntawm cov teeb los tso saib. Qhov no txhais tau tias txhua ntawm 320 x 240 pixels ntawm daim duab sawv cev rau tus lej uas nyob ze rau nws cov neeg nyob ze. Raws li kev nthuav dav nce ntxiv, qhov sib thooj no nce ntxiv.

Tab sis cov duab fractal muaj cov cuab yeej no uas lawv tsis hloov pauv los ntawm kev ntsuas. Yog li cov ntsiab lus me tshwm nyob txhua qhov chaw thiab rau txhua qhov ntsuas. Lub ntsej muag tseem ceeb ntawm Mandelbrot teeb tsa, zoo li pom ntawm cov duab ntawm daim duab saum toj no, tuaj yeem pom nyob rau lwm qhov hauv qhov ntau dua me me, thiab raug tso tawm yog tias koj nthuav ze txaus (saib hauv video). Tab sis yog tias qhov sib koom tes sib txawv ntawm ob tus neeg nyob ze pixels me me dhau los ua kom ESP32 txhawm rau ntes lawv qhov sib txawv ntawm tus cwj pwm, vim tsis muaj qhov raug, qhov cuam tshuam cuam tshuam tsis tuaj yeem pom …

Txhawm rau kom tau txais qhov ua tau zoo, cov cai siv ntab, uas tau teev hauv 32 ntsis los ntawm ESP32. Qhov no ua rau mus txog 6 lossis 7 qib kev nthuav dav. Siv ob qhov tseeb (64 khoom) yuav tau nce qhov kev nthuav dav tob, ntawm tus nqi ntawm kev suav qeeb dua, yog li ntev dua ntawm 2 cov duab.

Txhawm rau ua kom nws ob npaug, tsuas yog hloov txhua qhov tshwm sim ntawm "ntab" mus rau "ob npaug" hauv cov cai thiab khiav cov cai. Tsis ntev los no kuv tau ua ib qho qauv rau cov zaub loj dua (HVGA 480 x 320 pixels): 16 cov khoom ntab siv 3 vib nas this los tso saib cov duab, thiab ob npaug siv sijhawm 10 txog 20 vib nas this (3 txog 6 zaug ntev dua) tab sis txhawb ntau dua 15 qib. Cov duab thib peb hauv tshooj no qhia txog qib nthuav dav 14 hauv txoj cai-feem ntau ntawm Mandelbrot teeb tsa.

Yuav ua li cas txuas cov zaub:

Kuv siv SPI zaub, thiab cov ntsuas tau teev tseg hauv Cov Ntaub Ntawv User_Setup.h (hauv TFT_eSPI lub tsev qiv ntawv tais ceev tseg):

  • Tsav tsheb: tsis pom zoo tus tsav tsheb raug rau koj cov zaub. Kuv yog #define RPI_ILI9486_DRIVER
  • Tus lej tus lej: mus rau ntu ESP32 ntawm cov ntawv thiab xaiv

    • #define TFT_MISO 19
    • #define TFT_MOSI 23
    • #define TFT_SCLK 18
    • #define TFT_CS 15 // Chip xaiv tus pin tswj
    • #define TFT_DC 2 // Cov lus txib tswj tus pin
    • #define TFT_RST 4 // Pib dua tus pin (tuaj yeem txuas rau RST tus pin)
    • #define TOUCH_CS 22 // Chip xaiv tus pin (T_CS) ntawm lub vijtsam kov
  • Fonts: tsis tas yuav hloov lawv
  • Lwm yam kev xaiv: Kuv xaiv cov hauv qab no

    • #define SPI_FREQUENCY 20000000
    • #define SPI_READ_FREQUENCY 20000000
    • #define SPI_TOUCH_FREQUENCY 2500000

Tag nrho lwm cov kab ntawm cov ntawv tau hais tawm.

Calibrate qhov peev xwm kov ntawm cov zaub

Yog tias kev xaiv ntawm ib qho screen lossis lub pob tsis raug, lossis txawm tias tsis raug tag nrho, khiav qhov kov qhov ntsuas qhov ntsuas los ntawm TFT_eSPI lub tsev qiv ntawv thiab luam / muab tso rau hauv tus lej kab lus nws muab (nco ntsoov siv tus nqi raug rau cov lus qhia, 1 lossis 3 rau toj roob hauv pes).

Kauj Ruam 3: ESP32 Txoj Haujlwm

ESP32 Txoj Haujlwm
ESP32 Txoj Haujlwm
ESP32 Txoj Haujlwm
ESP32 Txoj Haujlwm
ESP32 Txoj Haujlwm
ESP32 Txoj Haujlwm

Cov cai qhia tawm ntawm 320 x 240 TFT kov lub vijtsam, thiab siv TFT_eSPI lub tsev qiv ntawv. Nws suav Mandelbrot thiab Julia teeb tsa rau ntau qhov kev nthuav tawm, thiab tso cai rau koj nthuav dav rau thaj tsam ntawm kev txaus siab kom pom qhov feem cuam tshuam (piv txwv li muaj nyob ntawm cov qauv ib yam ntawm txhua qhov kev hloov pauv).

Cov kab ntawv txuas yog qhov hloov pauv rau 480 x 320 zaub. Hauv cov ntawv no, koj tuaj yeem hloov qhov loj (dav thiab qhov siab hauv pixels) ntawm cov zaub. Lub tsev qiv ntawv TFT_eSPI piav qhia qhov sib txuas hauv cov ntawv teeb tsa (txuas nrog) uas yuav tsum tau muab tso rau hauv lub tsev qiv ntawv phau ntawv teev npe.

Txoj cai pib los ntawm kev qhia cov lus qhia ua haujlwm (saib daim duab thiab yees duab)

Feem ntau ntawm lub vijtsam tau tshwj tseg rau tso saib cov duab, kov cov nyees khawm muaj nyob ntawm sab xis ntawm lub vijtsam:

  • R: ua "rov pib dua", i. e. qhia cov duab rau nws qhov siab tshaj plaws,
  • U: "thim rov qab" tso cai rau koj rov qab mus rau cov kauj ruam dhau los (yog tias thaj tsam zoomed tsis txaus siab, koj tuaj yeem xaiv lwm qhov ntawm daim duab kom nthuav dav),
  • M lossis J: tso cai rau koj hloov ntawm Mandelbrot teeb tsa mus rau Julia teeb thiab hloov pauv.

Cov ntawv cim ntawm qee cov yuam sij hloov pauv raws li cov ntsiab lus: lawv tso tawm cov haujlwm uas yuav ua tiav yog tias nias. Yog li yog tias koj tam sim no tso saib Mandelbrot teeb tsa, M/J qhov tseem ceeb qhia J txij li yog tias koj nias nws koj yuav tso saib Julia teeb (thiab rov ua dua).

Tib yam siv rau kev xaiv xim palette. Peb pib nrog lub palette ntsuab. Qhov tseem ceeb tshaj tawm lub palette tom ntej (xim xiav). Cov palettes yog: liab, ntsuab, xiav, grey, palette 1, palette 2 thiab rov qab rau liab. Ob qhov kawg yog ntau qhov kev sib tw pallette uas muab ntau qhov sib txawv, tso cai kom pom qee cov ntsiab lus zoo dua.

Tus yuam sij nrog tus lej tso cai rau koj xaiv tus zauv n, hauv lub voj los ntawm 2 txog 7 (thiab rov qab mus rau 2). Hauv tib lub siab, nws qhia 3 yog tias koj tam sim no ntawm 2 …

Thaum kawg, thaum tso saib Julia teeb, nws yog qhov tsim nyog los xaiv tus nqi ntawm qhov tsis tu ncua c: tus yuam sij C tso cai rau koj ua qhov no, ua tsaug rau tus xaiv (saib daim duab thib ob). Tus nqi ntawm qhov tsis tu ncua no tau tshwm nrog lub teeb.

Nyem rau ntawm daim duab zooms nyob ib ncig ntawm qhov chaw xaiv. Lub voj voos me me tau tshwm ntawm qhov taw tes kov thiab ib lub duab plaub qhia txog thaj tsam ntawm lub teeb.

Daim duab thib 3 qhia tias suav sijhawm nyob nruab nrab ntawm 0.8 thiab 1.2 vib nas this rau 320 x 240 pixels, uas ua rau nws xis nyob thiab nthuav dav. Nws mus txog 3 vib nas this rau 480 x 320 pixels, tab sis muab cov ntsiab lus ntxiv.

Kauj Ruam 4: Qee Cov Duab Piav Qhia …

Qee cov duab piav qhia…
Qee cov duab piav qhia…
Qee cov duab piav qhia…
Qee cov duab piav qhia…
Qee cov duab piav qhia…
Qee cov duab piav qhia…

Daim duab loj tshaj yog Mandelbrot teeb tsa paub zoo. Cov lej sib txawv uas siv hauv daim duab no los ntawm -2.1 txog +0.7 hauv abscissa, thiab -1.2 txog 1.2 hauv kev txiav txim. Yog tias koj nthuav dav ntawm ib sab laug ntawm thawj daim duab no, muaj feem yuav yog koj thaum kawg tau txais qhov thib ob, uas qhia txog qhov me me ntawm thawj qhov teeb tsa pom nyob rau sab laug-feem ntau cov lus qhia ntawm teeb. Rau ob qho duab no, tus piav qhia ('n') yog sib npaug rau 2: qhov ntawd yog tus nqi ib txwm siv los tso saib Mandelbrot teeb tsa.

Yog tias koj hloov tus nqi no rau 3 (tsuas yog nyem rau ntawm tus lej hais 3), koj tau txais daim duab thib peb. Ib qhov pom tseeb sib txawv yog qhov sib npaug sib npaug: n = 2 muab qhov sib npaug sib npaug (piv txwv li cov teeb sib npaug sib npaug ntawm qhov nruab nrab kab rov tav), tab sis nrog n = 3 cov duab ua tsis sib xws los ntawm kev sib hloov ntawm 120 ° (ib feem peb ntawm 360 °, kev sib hloov qhov sib npaug ntawm 3). Thiab nws khaws nws cov peev xwm fractal, uas koj tuaj yeem txheeb xyuas los ntawm kev nthuav dav ntawm cov npoo ntawm cov xim dub.

Cov duab thib 4 yog Julia teeb tau tom qab xaiv tus lej sib npaug sib npaug li 0.414 hauv abscissa thiab 0.09 hauv kev txiav txim. Cov xim liab tau xaiv, zoo li tuaj yeem pom los ntawm tus yuam sij ntsuab ntawm sab xis (ntsuab, yog xim tom ntej uas yuav xaiv). Cov duab thib tsib qhia tib yam ntawm Julia teeb tsa, uas yog qhov xav tau ntau dua ntawm qhov tsis tu ncua (0.358).

Kuv vam tias koj yuav txaus siab ua si nrog qhov program no thiab koj yuav tuaj yeem tso duab zoo nkauj fractal. Tsis txhob maj mus tshawb Mandelbrot thiab Julia teeb tsa, thiab ua si nrog cov xim palettes: lawv pab txheeb xyuas qee cov ntsiab lus uas yuav tsis pom nrog cov xim yooj yim. Tej zaum koj yuav pom qee qhov kev ua haujlwm fractal uas tsis muaj leej twg tau pom dua ua ntej koj …

_

Xav nrhiav pom ntau cov duab fractal? Tsuas yog nyem rau ntawm no lossis tshawb fawb fractal lossis txawm tias ascii fractal. Tej zaum cov lus qhia no yuav ua rau koj xav tsim cov duab zoo li no …

Ua nrog Kev Sib Tw Zauv
Ua nrog Kev Sib Tw Zauv
Ua nrog Kev Sib Tw Zauv
Ua nrog Kev Sib Tw Zauv

Qhov khoom plig thib ob hauv Kev Sib Tw Ua nrog Lej

Pom zoo: