Srce Adafruit Feather M0 Express ploče je ATSAMD21G18 @ 48MHz sa 256KB FLASH + 32KB RAM, 20 pinova i svega šest analognih ulaza i jednim analognim izlazom (DAC). Na pločici nema StemmaQT konektora, mada postoji mali proto board i konektor za LiPoly bateriju.
Adafruit je u svoje vreme izbacio ovu pločicu kao svoj Feather prvenac za Python okruženje i omogućio CircuitPython za ovu platformu. Mikrokontroler oko koga je bazirana, ATSAMD21G18 je identičan onome koji se nalazi na Arduino Zero ploči, pa je jasno da je time praktično obezbeđena i podrška za programiranje u Arduino IDE-u.
S obzirom na cenu, koja je praktično identična sa mnogo jačim pločama sa recimo M4 čipom, nabavka je u današnje vreme više stvar želje da se u kolekciji ima jedna od legendarnih zvezda u razvoju razvojnih sistema. Ovo je ploča koja je praktično otvorila Feather familiju.
Ipak, daleko da je neupotrebljiva. To smo pokazali jednim jednostavim projektom koji je baziran na DHT11 senzoru temperature i vlažnosti, povezanom na portu 9 i LCD 16×2 ekranu sa oznakom na kontroleru hd44780, koga čine sam 1602LCD i I2C modul. Tako da se povezivanje svodi na povezivanje 4 žice (VCC, GND, SCL i SDA) na odgovarajuće pinove pločice.I da, biće vam žao što na ploči nema VCC 5V, ali to je standard za Feather-e.
Od DHT11 senzora ne očekujte previše, čak ni da će se u svakoj situaciji snaći u radu, posebno u paru sa Adafruit Feather M0 Express. Očitavanja će ponekada stati, nekada će imati misteriozne vrednosti, ali cilj ovog mini projekta je demonstracija, nikako ozbiljna upotreba.
Za programiranje smo koristili CircuitPython i tri biblioteke. Dve su standardne i nalaze se u Adafruit CircuitPython Bundle-u: adafruit_dht i adafruit_bus_device. Potonja vam je potrebna zbog treće, hd44780 biblioteke, koju možete preuzeti sa: https://github.com/bablokb/circuitpython-hd44780
import time import adafruit_dht import board import hd44780 dht = adafruit_dht.DHT11(board.D9) display = hd44780.HD44780() while True: temperature = dht.temperature humidity = dht.humidity display.clear() display.write("Temp: {:.1f} *C".format(temperature),2) display.write("Humidity: {}%".format(humidity),1) time.sleep(4)