SK LABS
Sipeed MaixDuino
Projekat 404
D. PETROVIĆ
1. decembar 2023.

Vraćamo se razvojnim pločama kompanije Sipeed, ali ovaj put idemo, nadamo se, sigurnijim koracima. O FPGA neki drugi put. MaixDuino ploča iz naslova, na prvi pogled, deluje kao malo „napucani” Arduino Uno. Ipak, MaixDuino malo toga deli sa jednim Unom, više liči na Maix BiT (SK 9/2022, i.sk.rs/31471). Naime, MaixDuino je ploča koja donosi pregršt funkcija, počevši od veštačke inteligencije, bežičnog povezivanja, mogućnosti rada sa ekranom, kamerom, zvukom i još mnogo toga.

MaixDuino je razvojna pločica u formatu Arduino Una i donosi Sipeed M1 AI modul prekriven metalnom haubom. Pod haubom kuca Kendryte K210, mikrokontroler iz Canaanove kuhinje, nama poznat sa Maix BiTa. Ovaj RISC-V 64-bitni mikrokontroler kuca na čak 400 megaherca, uz opciono podizanje radnog takta na čitavih 600 megaherca (malo jača Pentium „Trojka” je terala Doom 3 u svoje vreme - prim. aut.). Elem, Sipeed je K210 opremio sa 16 megabajta fleš memorije i osam megabajta SRAM-a. Sam modul je malo povećih dimenzija, a razlog tome je što se isti modul koristi i za M1W, što je modul identičan ovome, uz dodatak ESP8285 mikrokontrolera. Kad smo već tu, da pomenemo da postoji i M1n modul, kao modul M.2 formata, koji predstavlja odličan izbor za brzu ugradnju u projekte. Postoji više razvojnih ploča koje nose ovaj modul, a neke će pre ili kasnije stići i na ove stranice.

Da se vratimo još malo na K210. M1 modul sposoban je za prepoznavanje slika, detekciju lica i slično, kao i snimanje u QVGA rezoluciji do 60 i VGA rezoluciji do 30 sličica po sekundi. Osim toga, sposoban je za prepoznavanje zvuka/govora, uz ugrađeni mikrofon ili dodatnu pločicu sa nizom od čak osam mikrofona. Sposoban je da drži snimljeno čak do 10 hiljada lica. K210 takođe je sposoban da „uči” (machine vision, machine hearing) i podržava TensorFlow, Keras, Darknet, Caffe frejmvorke. Spisak nastavljamo sa podrškom za obradu videa: KPU (neural network processor), FPU, audio-obrada (APU) i FFT (fast Fourier transform accelerator).

M1 nije jedini modul na ploči. Tik uz njega smestio se Espressifov ESP32 Wroom modul, koji K210 daje prozor u svet bežičnim putem preko Wi-Fi na 2,4 gigaherca, uz Bluetooth 4.2. Iako su ova dva teškaša prekrili skoro ceo format Una, ostalo je prostora za još čitav niz hardverskih komponenata. MaixDuino dolazi sa dva FPC 24p priključka, jedan za kameru, drugi za LCD. Kamera koja dolazi uz ploču nosi oznaku GC0328 i ništa ne bi bilo čudno da svi primeri i tutorijali nisu pisani za OV2640 (o tome kasnije). Ekran u boji od 2,4 inča koji se dobija nije osetljiv na dodir, dok su mnogi primeri pisani baš za to (o ovome, takođe, kasnije). Slot mikro-SD kartice je smešten čudno, pristupačnost mu nije baš najidealnija, ali drugačije, očigledno, nije moglo. Podacima sa mikro-SD kartice pristupa M1 modul.

Preko I2S standarda, M1 komunicira sa NS4150, mono audio-pojačivačem koji potpisuje Nsiway. Ovaj audio-pojačivač je u stanju da pruži do jednog vata snage zvučniku koji može da se poveže preko malog JST priključka odmah pored. Osim da proizvodi, MaixDuino je sposoban i da „čuje” zvuk. U tu svrhu se koristi MSM26S4030H0, omnidirekcioni MEMS mikrofon iz MEMSensing Mycrosystemsa. Ceo zvučni podsistem je potpomognut sa LM321 operacionim pojačivačem iz Texas Instrumentsa i PT8211, 16-bitnim DAC-om iz Princeton Technology. Rad sa zvukom poveren je M1 modulu.

Sipeed je malo „promešao karte”, te je strujni priključak postavljen na mesto USB-a, a USB-C na njegovo mesto, mada ne vidimo koji je razlog tome. Nastavljamo dalje sa činjenicom da se MaixDuino povezuje sa računarom preko CH552T čipa. Ovo je nama jako poznat mikrokontroler; pravili smo jedan svetlomer sa njim (SK 9/2023, i.sk.rs/32591). Zašto ne UART čip, zašto MCU? Zato što se CH552T koristi da pruži most sa računarom, kako za M1 modul, tako i za ESP32 kao dvokanalni USB-TTL. CH552T ima ulogu i auto-upload strujnog kola, a i upravlja resetovanjem i prebacivanjem oba modula u boot režim po potrebi. ESP32 sa M1 komunicira putem UART i SPI standarda. Nakon povezivanja pločice sa računarom, ona će se prijaviti pod dva porta: manji port je za spuštanje korisničkog programa, a veći je za komunikaciju sa ESP32. Inače, na ESP32 se vrti Adafruit viljuška Arduino NINA-W102 firmvera.

Nizovi izvoda koji prate Uno format i sami imaju zanimljivosti. Analogni niz izvoda sadrži analogne izvode sa ESP32. Svi ostali su sa M1. Ploča može da se napaja preko USB-C, strujnog priključka ili VIN izvoda. Naponski regulator sa oznakom EUP3458 iz Eutecha je u stanju da na pet volti isporuči 1,2 ampera struje. Postoji više naponskih regulatora koji spuštaju napon na 3,3 i 1,3 volta, te ih nećemo pominjati. Dodaćemo na kraju da su na MaixDuinu četiri UART lampice, koje indikuju o statusu saobraćaja između CH552T i M1 ili ESP32. Peta lampica je „power”. RGB lampicom upravlja M1, preko izvoda IO12, 13 i 14. Tu su još dva tastera, ’rst’ i ’boot’, oba vezana za M1.

MaixDuino može da se programira koristeći Arduino IDE, a podrška se dobija uz paket, kao i za Maix BiT (https://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json). Potrebno je, osim odabira ploče i porta za Programmer, odabrati opciju k-flash, kao jedinu dostupnu. Iako je jedina, mora da se odabere, inače ništa od programiranja. Takođe, Burn Baud Rate mora ostati na 1,5 megabita u sekundi, u suprotnom će proces ostati zakovan na pola. Ovde možemo da se poigramo sa radnim taktom između 400, 500 i 600 megaherca. Nakon toga, MaixDuino može da se programira nekim od većeg broja primera.

Tu dolazimo do prvih većih problema. Prvo smo hteli da probamo selfie primer koji bi trebalo da omogući brz snimak, to jest, da se MaixDuino koristi kao kamera mobilnog telefona. Već je samo kompajliranje donelo niz grešaka, od kojih je najveći problem pravila konfrontacija Adafruit_GFX biblioteka - ona zvanična koju već imamo, sa ovom Sipeed prilagođenom. Nakon brisanja standardne Adafruit, nekako smo spustili korisnički program. Program je tu, ali slike na ekranu nema. Nema zato što je, rekosmo, uz pločicu stigla neodgovarajuća kamera. Srećom, imamo OV2640 od ranije i - dobili smo sliku. Snimanje videa nije uspelo. Nismo uspeli ni da uspostavimo komunikaciju sa ESP32. U primerima su neki koji ne pripadaju ovoj ploči. Od AI primera, tu su samo oni za prepoznavanje govora. Srećom, na mreži ima dosta primera, koje, doduše, prvo treba shvatiti, pa prilagoditi. Govorimo o poprilično kompleksnim linijama kôda. Dakle, ako govorimo o Arduino sistemu, imamo razvojnu ploču koja dolazi sa neodgovarajućom kamerom i sa ekranom bez digitajzera. A šta je sa Pajtonom (Python)?

Na zvaničnim wiki stranicama Sipeeda se, pored programiranja u C/C++, pominje i MaixPy, port MicroPyhtona. Najveći broj linkova za MaixPy sa wiki stranica završava na „Error 404”. Najveći broj linkova sa GitHub stranica završava na „Error 404”. Preturanjem po GitHubu, došli smo do zaključka da je Sipeed digao ruke od MaixDuinoa, kao da je „pušten niz vodu”. Što je najluđe, jedan deo o MaixPy je prepun primera starijeg datuma koji, izgleda, rade. Sve je uglavnom na kineskom, a o forumu da i ne govorimo. Sve se to dâ zaobići, ali, vredi li?

Na zvaničnim stranama možda i stoji „404”, ali, srećom, postoji pristojan broj tutorijala. MaixDuino dolazi sa MaixPy firmverom, a taj isti može da se preuzme sa MaixPy GitHub stranica, ako ga obrišemo preko Arduino IDE. Za divno čudo, poslednja verzija stara je par meseci. Takođe, potrebno je preuzeti i kflash_gui, alat kojim se originalni firmver može ponovo spustiti na ploču. Ovim alatom se na ploču može spustiti i korisnički program u BIN formatu. Alat dozvoljava odabir fajla, ploče, porta, brzine prenosa i slično. Generalno je jako uprošćen, a na ploči se zavrteo MicroPython za tili čas.

Za programiranje koristimo MaixPy IDE, razvojno okruženje koje se ne razlikuje mnogo od sličnih alatki. Zanimljivo je da sa desne strane imamo nekoliko kontejnera koji grafičkim dijagramima prikazuju kolorni prostor, a tu je i FrameBuffer. U ovom kontejneru se uz par linija pajtona dobija prikaz kamere.

import sensor, image, time

sensor.reset()

sensor.set_pixformat(sensor.RGB565)

sensor.set_framesize(sensor.QVGA)

sensor.skip_frames(time = 2000)

clock = time.clock()

while(True):

clock.tick()

img = sensor.snapshot()

print(clock.fps())

MaixPy, takođe, donosi terminal, mogućnost kopiranja „neizvršnih” PY fajlova, kao i par generatora, kao što su bar-kôd, QR-kôd i drugo. Iako nije vrh ponude, editor, ipak, donosi dosta dobrih rešenja, kao što je izbacivanje prozora sa svim dostupnim opcijama za određenu funkciju ako samo zadržimo kursor iznad nje. Na MaixPy GitHub stranicama ima veći broj primera, kao što su oni za prepoznavanje lica, govora, emulaciju NES igara, obradu zvuka i slike... zapravo, spisak je preveliki. Problem je što nam mnogi nisu radili. Recimo, za primer za prepoznavanje lica IDE nam je izbacio grešku da nemamo odgovarajući kernel na ploči. Mi smo spustili najnoviji MaixPy BIN fajl, ali primeri nisu pisani za njega. Treba „ubosti” koji je odgovarajući. Ipak, dosta njih rade. Recimo, primer prikaza snimka kamere na ekranu:

import sensor

import image

import lcd

import time

clock = time.clock()

lcd.init()

sensor.reset()

sensor.set_pixformat(sensor.RGB565)

sensor.set_framesize(sensor.QVGA)

sensor.run(1)

sensor.skip_frames(30)

while True:

clock.tick()

img = sensor.snapshot()

fps =clock.fps()

img.draw_string(2,2, ("%2.1ffps" %(fps)), color=(0,128,0), scale=2)

lcd.display(img)

Ukratko, MaixDuino je ploča koja ima ogroman potencijal. Nažalost, Sipeed kao da je ceo projekat „pustio niz vodu”: gomila „polomljenih” linkova, gomila protivrečnih stvari, gomila nepojašnjenih stvari. Srećom, ima dovoljan broj onih sa većim pragom upornosti, te se na mreži može naći veći broj primera i pojašnjenja u koracima, što je sasvim dovoljno za početak. Sa postojećim primerima, bilo u Pythonu, bilo u Arduino okruženju, treba očekivati FJF poruke (fali jedan fajl - prim. aut.), bez naznaka koji i kako do njega doći. MaixDuino je svakako ploča sa ogromnim potencijalom na koju su momci i devojke iz Sipeeda, izgleda, pomalo zaboravili.

GALERIJA

PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
MAJ 2025
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...
Blue Prince
Jedinstveni dijamant i jedna od najoriginalnijih igara u poslednjih nekoliko godina...
Tempest Rising
Skupa i ambiciozna fotokopija legendarnog RTS klasika Command & Conquer...
South of Midnight
Magična igra koja izgleda kao živa bajka, animirana u stilu filmskog serijala „Spiderverse”...
© 2025 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama