LAKI PINGVINI
Pimoroni Tiny2040
Nije Pico, nego Tiny
D. PETROVIĆ
1. januar 2022.

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.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
NOVEMBAR 2023
Counter Strike 2
Stari, dobri Kanter u osveženom ruhu je više veliki update, nego puna nova igra...
Intel Core i9-14900K i Core i7-14700K
Nema zime uz Intelove mašine
Da li je Raptor Lake Refresh samo još vrelija i neznatno brža verzija prethodne generacije?
Apple iPhone 15, iPhone 15 Pro i iPhone 15 Pro Max
Petrovača, ajdared i zlatni delišes
iPhone 15 je „prepakovana” verzija modela 14 Pro, sa Appleovim čipsetom A16 Bionic „ispod haube”...
High tech igračke i razvoj naučnog razmišljanja
M’mera mpoyamba
Visokokvalitetne, a povoljne edukativne igračke postoje za svaku sferu interesovanja vašeg deteta...
Dell Alienware AW2724DM
Ponos na vašem stolu
Odličan monitor. Vrhunski! Međutim, kao što verovatno znate, Alienware je neka vrsta statusnog simbola...
Hisense 43A7KQ
VIDAA sa više smisla
Neobičan brak pametnog i tradicionalnog televizora, koji se lako koristi i bez ijedne napredne opcije za gledanje TV programa...
Finansijske tehnologije
Turbulencije ne prestaju
Da li nas očekuje recesija ili „meko prizemljenje”? Ključne kompanije sektora finansijskih tehnologija ne čekaju previše...
EmulationStation Desktop Edition 2.1.1
Vizuelna strana emulacije
Emulation-Station je frontend za emulatore, koji donosi mogućnost kastomizacije prikaza sadržaja...
Super Mario Bros. Wonder
Super Mario Bros. Wonder je dragulj u serijalu 2D Mario platformera, na koji se čekalo više od tri decenije...
Assassin’s Creed Mirage
Igra ima fokusiranu, vrlo linearnu priču kakvu su imali prvi naslovi u serijalu...
Forza Motorsport
Pre trka nije moguće voziti kvalifikacije, već sami birate startno mesto na gridu...
Marvel’s Spider-Man 2
Akciona komponenta Marvel’s Spider-Mana 2 je stravično dobra, mada su Majls i Piter previše slični...
© 2023 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama