LAKI PINGVINI Nije Pico, nego Tiny
Pimoroni nudi dva modela ove pločice: sa osam i dva megabajta memorije. Mi smo dobili ovaj prvi. Razlika u ceni je nepune dve britanske funte, što smatramo da je mala razlika za četiri puta više memorije. Pločica je zaista malih dimenzija, 21×18 milimetara, i za ne poverovati je šta se sve tu našlo. Tiny2040 možemo da posmatramo kao sabijenu verziju RPi Pico. Pinout je izdeljen u dva bočna headera, koji iz očiglednih razloga nisu mogli da nam stave na raspolaganje kompletan pinout RP2040 mikrokontrolera koji se nalazi sa donje strane pločice. Ipak, na raspolaganju su nam čak 12 GPIO. Pimoroni je celu jednu stranu rezervisao za digitalne i pinove preko kojih pristupamo interfejsima RP2040. Izbor pinova je takav da možemo koristiti i po nekoliko UART, SPI i I2C interfejsa. Sa suprotne strane su naponska četiri i četiri analogna. Od ovih naponskih, tu su dva GND i po jedan 3v3 i VBUS (5V). Naponski regulator NCP115AMX330TCG je u stanju da isporuči do 300 miliampera na 3,3 volta. Drugi GND na pinu „8” je možda i suvišan i možda je njegovo mesto mogao da zauzme još neki GPIO. Tim pre što se jedan GND nalazi i na Debug tropinskom headeru. Debug header je na svom standardnom mestu za Pico. Oznake pinova na headerima vrlo su čitke. Sami headeri, kao na Pico, mogu da se koriste kao PTH, ali i da se preko sečenih otvora (kastelacije) leme direktno na ploču nosača. Zapravo, mogli bi da pločica sa svoje donje strane nema komponente. Ovako, osim što prati neki dizajn samog Pico, upotrebnu funkciju nema. Jedino da ploča nosač ima usek na sebi. O samom mikrokontroleru RP2040 već smo pisali: u pitanju je ARM Cortex M0+ sa radnim taktom od 133 megaherca i sa 264 kilobajta SRAM-a. Ako su sve komponente vezane za RP2040 sa donje strane, šta je sa gornje? Sa gornje strane se, pored USB-C priključka, našlo mesta i za dva tastera (’Reset’ i ’Boot’), kao i RGB LED između. Pimoroni je RGB LED vezao za nekorišćene pinove 18, 19 i 20. Kao firma koja, obično, šeme svojih proizvoda ne stavlja na raspolaganje, ovde su napravili izuzetak. Tu vidimo da je RGB LED postavljena kao active low; drugim rečima, sa nižim vrednostima, jače će sijati. Tiny2040 možemo da programiramo koristeći razne programske jezike: C/C++, MicroPython i CircuitPython. Na zvaničnim stranicama su linkovi ka svim neophodnim primerima i fajlovima. Kao i za RPi Pico, ako se koristi MicroPython, UF2 fajl (USB flashing format) preuzimamo sa zvaničnih Raspberry Pi ili MicroPython stranica. Povezujemo Tiny2040 sa računarom dok držimo pritisnut taster ’Boot’, a zatim na novoprijavljeni drajv kopiramo UF2 fajl. S obzirom na postojanje tastera ’Reset’, za razliku od RPi Pico, ovde možemo i povezani Tiny2040 prebaciti u DFU, tako što ćemo dok držimo pritisnut ’Reset’, pritisnuti ’Boot’, a zatim ih pustiti. U svakom slučaju, Tiny2040 prijaviće se kao RPI-RP2 drajv. Ispod je primer sa Pimoronijevog foruma, pisan u Micropythonu za klasičan test RGB LED. Program koji bi trebalo da se stalno vrti na pločici treba nazvati main.py. Za programiranje sa MicroPythonom može da se koristi Thonny, ali i neki drugi editor, kao što je, recimo, uPyCraft IDE. # Tiny 2040 RBG LED control # Tony Goodhew 11th March 2021 import utime from machine import Pin, PWM # Setup RGB LED # Construct PWM objects with RGB LED rpwm = PWM(Pin(18)) # RED gpwm = PWM(Pin(19)) # GREEN bpwm = PWM(Pin(20)) # BLUE # Set the PWM frequency. rpwm.freq(1000) gpwm.freq(1000) bpwm.freq(1000) # Turn off rduty = 65535 gduty = 65535 bduty = 65535 rpwm.duty_u16(rduty) gpwm.duty_u16(gduty) bpwm.duty_u16(bduty) defLED(r,g,b): rduty = int(65535 -(65535 * r/255)) gduty = int(65535 -(65535 * g/255)) bduty = int(65535 -(65535 * b/255)) rpwm.duty_u16(rduty) gpwm.duty_u16(gduty) bpwm.duty_u16(bduty) LED(255,255,255) utime.sleep(0.3) LED(255,0,0) utime.sleep(0.3) while True: # Blink for i in range(4): LED(0,0,255) utime.sleep(0.3) LED(0,0,0) utime.sleep(0.3) # Fade UP for i in range(255): LED(i,i,0) utime.sleep(0.01) # Fade DOWN for ii in range(255,-1,-1): LED(ii,ii,0) utime.sleep(0.01) Za Tiny2040 postoji namenski UF2, ukoliko se koristi CircuitPython, a može da se preuzme sa zvaničnih CircuitPython stranica. CircuitPython dolazi sa povećim brojem ugrađenih modula (biblioteka u Arduino IDE terminologiji). Za najveći broj primena, tu je sve što je potrebno. Tiny2040 postaviće se kao CIRCUITPY drajv i sve što treba je da program pisan u, recimo, MU, prekopiramo na Tiny2040. Za razliku od MicroPythona, CircuitPython UF.2 postavlja pločicu kao konstantni ROM; uvek će se prijavljivati kao drajv. Da bismo programirali Tiny2040 kroz Arduino IDE, potrebno je da instaliramo podršku za RP2040 ploče. U Preferences URL polje unosimo: „https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json”, a zatim u Boards Manageru instaliramo ploče. Nažalost, ne postoji ekskluzivna podrška za Tiny2040, ali odabirom Raspberry Pi Pico će i Tiny2040 raditi savršeno. Blink skeč kao takav, naravno, neće raditi, jer built-in LED nije na pinu 25, niti je u pitanju jedna LED. Kao i za RPi Pico i ovde je prvi put neophodno priključiti Tiny2040 u Boot režimu. Prvi skeč prebacujemo bez odabira COM porta; IDE će se sam postarati za sve. Nakon prebacivanja, Tiny2040 će se restartovati i prijaviti, u našem slučaju, kao Raspberry Pi Pico. Nadalje će se stalno tako prijavljivati. Ako želimo da se vratimo jezicima Zmija, dovoljno je pločicu prebaciti u BOOT režim i prekopirati odgovarajući UF.2 fajl. int ledR = 18; int ledG = 19; int ledB = 20; int delayTime = 5; void setup() { pinMode(ledR, OUTPUT); pinMode(ledG, OUTPUT); pinMode(ledB, OUTPUT); digitalWrite(ledR, HIGH); digitalWrite(ledG, HIGH); digitalWrite(ledB, HIGH); } void loop() { for(int i=255; i>0; i--){ analogWrite(ledR, i); delay(delayTime); } delay(1000); digitalWrite(ledR, HIGH); for(int i=255; i>0; i--){ analogWrite(ledG, i); delay(delayTime); } delay(1000); digitalWrite(ledG, HIGH); for(int i=255; i>0; i--){ analogWrite(ledB, i); delay(delayTime); } delay(1000); digitalWrite(ledB, HIGH); } Najbliže poređenje Tiny204 bilo bi sa Adafruit QT Py RP2040. Iako sa većim brojem dostupnih GPIO, Tiny2040 je manja pločica. Opet, proizvod iz Adafruita ima Neopixel, Stemma QT konektor i, generalno, drugačije organizovan pinout. Nemamo je na raspolaganju za probu, ali hardver je isti i morale bi da rade identično u većoj meri. Tiny2040 kao jedini nedostatak ima cenu. U odnosu na osnovni RPi Pico, Tiny2040 je više nego dvostruko skuplji. Isto važi i za QT Py RP2040.
|
||||||||||
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Microsoft Majorana 1 Kvantna topologija Topološki kvantni računar otporan je na uticaj kosmičkog zračenja, ali i dalje mora da se ohladi skoro do apsolutne nule... AMD Ryzen 9 9950X3D Jedan, da svima vlada Ako vam je potreban najbrži procesor, i za igranje, i za ozbiljnije zadatke, Ryzen 9 9950X3D nema konkurenciju... Gigabyte GeForce RTX 5070 Ti Aero OC 16G i GeForce RTX 5070 Ti Gaming OC 16G I za kreativce, i za igrače Sasvim sposoban da se nosi sa 4K rezolucijom u svim igrama i pruži sasvim pristojne performanse, dok u 1440p apsolutno blista... Asus ROG Strix Scar 18 (G835LX) Fantastična zver i kako je kupiti (3) Laptop namenjen onima koji „ne žale pare” da imaju ono što je trenutno najbolje i najbrže... Deset najboljih Microsoft PowerToys alatki Najbolji od najboljih PowerToys Run je alatka kojoj treba da se okrenete ukoliko vam sistemska rutina za pretragu ne odgovara... Apple iPhone 16e Malo muzike za mnogo para Problem nije samo cena i slabiji grafički podsistem, već i trajanje baterije... Cemu 2.6 Wii U emulacija Cemu omogućava pokretanje i privođenje kraju oko 57 procenata igara „napisanih” za Wii U... .rs: nove usluge eUprave - novi propisi - najava 5G Mnogo eNoviteta U novom esDnevniku roditelji će dobijati notifikacije za ocene i izostanke... Trgovinski rat Istoka i Zapada Velika igra, nesagledive posledice Kao u igri „kukavice”, dve supersile kreću se velikom brzinom jedna prema drugoj, izazivajući drugu da prva skrene... South of Midnight Magična igra koja izgleda kao živa bajka, animirana u stilu filmskog serijala „Spiderverse”... |
||||||||||