CircuitPython čūskas ceļā uz Adafruit Hardware - 💡 Fix My Ideas

CircuitPython čūskas ceļā uz Adafruit Hardware

CircuitPython čūskas ceļā uz Adafruit Hardware


Autors: Ethan Holmes, 2019

Nesenā diskusijā ar Scott Shawcroft, inženieris Adafruit, es saņēmu patiesi satraukti. Viņš izskaidroja savu pāreju uz CircuitPython lietošanu savos produktos, kā arī par priekšrocībām, kādas varētu nodrošināt šāda pāreja. Viens no galvenajiem ieguvumiem ir tas, ka jūs vienkārši pieslēdzat ierīci un parādās kā USB atmiņa, tad jūs uz to nometat kodu. IDE nav nepieciešams. Šī nav pirmā reize, kad esmu redzējis šo funkciju, bet fakts, ka Adafruit izvēlēsies visprogresīvākos prototipēšanas rīkus, man tas kļūs ļoti satraukti.

Kas ir CircuitPython?

CircuitPython ir mikrokontrollera programmaparatūra, kas balstīta uz MicroPython un kas atvieglo aparatūras programmēšanu nekā jebkad agrāk. Atšķirībā no Arduino, lietotāja kods nav saglabāts paša programmaparatūrā, bet drīzāk sīkā failu sistēmā mikroshēmā vai uz tāfeles. Tā rezultātā, programmēšana ar CircuitPython ir tikpat vienkārša kā kuģa pievienošana datoram un faila rediģēšana parādītajā diskdzinī. Lai sāktu darbu, nav nepieciešama papildu programmatūra.

Arduino revolucionizēja iegulto, novēršot vajadzību pēc dārgiem mirgojošiem instrumentiem, mainot kodu. CircuitPython turpina soli tālāk, atceļot vajadzību pēc konkrētiem draiveriem un programmatūru.

Ja jums tas būtu jāapkopo pēc iespējas vienkāršākā veidā, kā jūs raksturotu CircuitPython?

Es domāju, ka vienkāršākā versija neietver CircuitPython vai Python atzīšanu par atsevišķiem. Tā vienkārši apvieno programmatūru un aparatūru. Pievienojiet ierīci, atveriet disku un rediģējiet tajā esošo kodu, lai to noķertu. Faila saglabāšana automātiski liek to pārlādēt. Izņemiet to kā īkšķi un ņemiet to līdzi. Kods ir ierīces daļa.

Kāpēc esat izvēlējies ieviest CircuitPython Adafruit produktos?

Man tas ir vienkārši tas, ka tas ir vieglāk nekā jebkurš cits, ko tur izmantot. CircuitPython ir ļoti zems barjeras ieejai, jo tas darbojas bez īpašiem draiveriem (izņemot sērijveida vecākus Windows). Tas neprasa nevienu programmu, lai to ieprogrammētu kā jebkuru vienkārša teksta redaktoru. Jebkura sērijveida programma var tai pieslēgties. Lai to programmētu, nav nepieciešams arī interneta pieslēgums.

Šis zemais šķērslis iekļūšanai padara to ideāli piemērotu Adafruit, jo mēs uzvaram mācīt iesācējus izveidot un eksperimentēt ar aparatūru. CircuitPython spēja apvienot kodu ar aparatūru padara to hackable nekā jebkad agrāk. Tas vairs nav jautājums par to, kā atsūtīt kādam kodam atsevišķi un pēc tam iegūt tos ar noteiktu programmatūru. Tas vienkārši darbojas.

Vai produkti joprojām strādā ar Arduino IDE?

Jā! Arduino IDE un Microsoft MakeCode atbalsta arī jaunus produktus, kuru pamatā ir SAMD21 Cortex-M0 + mcu, kas atbalsta CircuitPython. Mēs domājam, ka iesācēju sākotnēji mācīšana ar „MakeCode” un pēc tam pāriet uz CircuitPython un Arduino IDE ir lielisks veids, kā palīdzēt jaunajiem kodētājiem augt ar savu projektu sarežģītību.

Kāpēc šī metode netika veikta ātrāk? Vai, ja tā būtu, kas mums būtu jāpateicas par pamatu nodošanu?

Python darbināšana ir iestrādāta jau iepriekš, ar tādiem projektiem kā Python-on-a-Chip un Owl. Tomēr šie projekti neatrada plašu auditoriju. MicroPython beidzot darīja, kad viņi uzsāka Kickstarter. MicroPython izstrādātāji, tostarp Damien George un Paul Sokolovsky, ir pelnījuši kredītu, lai radītu pamatu CircuitPython. Viņi smagi strādāja, lai atkārtoti īstenotu Python 3.4 uz mikrokontrollera un rediģētu kodu, izmantojot USB lielapjoma atmiņu. Mēs vienkārši esam balstījušies uz savu darbu, lai padarītu to darbu ar mūsu aparatūru un pulētu pieredzi.

Kādas grūtības ir saistītas ar jūsu produktu pārnešanu uz CircuitPython? Vai tas ir sarežģīti? Viegli? Nekas sevišķš?

Produktu pārnešana uz CircuitPython lielākoties nozīmē to pārvietošanu uz 32 bitu mikrokontrolleriem. CircuitPython neatbalsta 8 bitu mikrokontrollerus, tāpēc to atceļ no at328p un 32u4 uz SAMD21.

Un otrādi, MicroPython nesaņēma atbalstu SAMD21 (kas ir mikroshēma, kas tiek izmantota visos mūsu M0 dēļos). SAMD21 atbalsta pievienošana MicroPython noved pie mūsu CircuitPython izveides. MicroPython bija jau esošs jēdziens „ostas”, kas aptuveni atbilst līnijām ar mikrokontrolleru ģimenēm, piemēram, STM32 ģimeni un SAMD ģimenēm. Katrai ģimenei ir līdzīgs Cortex M kodols, bet perifērijas ierīces, kas īsteno tādus protokolus kā USB, I2C un SPI, ir ļoti atšķirīgas. Tātad, izaicinājums pievienot atbalstu jaunajai mikrokontrolleru ģimenei ir perifērajā atbalstā.

Mēs esam daudz paveikuši, lai nākotnē to padarītu vieglāku, izveidojot skaidru, uz funkcijām orientētu aparatūras API. Šī jaunā API ļauj viegli pievienot aparatūras atbalstu daļai jaunā ostā, vienlaikus nodrošinot, ka esošie draiveri joprojām darbosies. Nākotnē, paplašinoties uz jauniem mikrokontrolleriem, mēs plānojam padarīt ostu pievienošanu vēl vieglāk.

Vai aparatūras izmaiņas bija nepieciešamas, lai CircuitPython darbotos ar jūsu produktiem?

Adafruit Feather M0 ekspresē

Prasība ir 32 bitu mikrokontrolleram, bet pirms CircuitPython mums jau bija daudz dažādu SAMD21 spalvas. CircuitPython sākotnējā attīstība tika veikta Feather M0 Basic un Arduino Zero. CircuitPlayground, Metro, Gemma un Trinket ir atjaunināti uz SAMD21, kas ļauj CircuitPython arī šajās platformās.

Lai iegūtu labāku CircuitPython pieredzi, mēs esam ieviesuši Express līnijas dēļus. Šīm dēļām ir ārējās SPI Flash mikroshēmas, ko izmanto, lai uzglabātu Python kodu ārēji, nevis mikrokontrollerī. Tas nozīmē, ka var saglabāt vairāk kodu (2 MB, nevis 64KB), un pati programmaparatūra var pakļaut vairāk funkcionalitātes. Tie bija arī pirmie dēļi ar statusu RGB LED. Jaunākajam bez Express Gemma M0 un Trinket M0 ir arī RGB LED, bet nav papildu zibspuldzes.

Vai CircuitPython ir trūkumi, kas cilvēkiem jāpatur prātā, kad tie attīstās?

CircuitPython (un Python kopumā) lielākais kompromiss ir lēmums par prioritāti noteikt attīstības ātrumu atmiņā un izpildes ātrumu. Ietekme ir tāda, ka atkarībā no projekta var tikt sasniegts atmiņas ierobežojums vai ātruma ierobežojums, ko tie nesasniegtu ar apkopotu risinājumu, piemēram, Arduino. Piemēram, NeoPixel sloksnes animācija nedrīkst atjaunot pikseļus tikpat ātri kā CircuitPython kā Arduino. Vai projekts, kas ir atkarīgs no daudzām bibliotēkām, var nespēt būt tik daudz funkcionalitātes, salīdzinot ar kodu, ko kompilators var optimizēt.

Tas tomēr nav pietiekams iemesls, lai izvairītos no CircuitPython. Attīstības ātrums ir tik daudz ātrāks nekā kompilatora risinājums, piemēram, Arduino, ka tās labākais ir izmēģināt projektu CircuitPython un vēlāk optimizēt pēc vajadzības. Parasti tas darbosies pietiekami ātri, jo cilvēki nenovērtē, cik ātri datori ir.

Optimizāciju pēc koda rakstīšanas var veikt trīs galvenajos veidos:

1) Python kodā 2), pievienojot papildu C funkcionalitāti CircuitPython programmaparatūrai, kas nepieciešama, lai to izmantotu no Python 3), pērkot ātrāku aparatūru (Moore likums joprojām ietekmē mikrokontrolleru procesora ātrumu. SAMD21 ir 48mhz, bet līdzīgi lielas mikrokontrolleri darbojas līdz 200 + mhz.)

Tātad, lai gan ir kompromisi, CircuitPython parasti ir īstā vieta, kur sākt.

Kur var sākt mācīties CircuitPython? Es pieņemu mācīties.adafruit.com, bet vai tur ir citur?

Pašlaik labākā vieta, kur sākt darbu, ir produkta specifiskās vadlīnijas Feather M0 Express un Gemma M0. Ir daudz dažādu projektu „Learn” sistēmā, kas jau tagad izmanto CircuitPython (arkādes pogu lodziņš, MPR121 pieskāriena kontrolieris un LIS3DH rokasgrāmata ir trīs). Tony arī atjauninās savus vecākos MicroPython ceļvežus uz CircuitPython, bet tas ir darbos. Šī rokasgrāmata, piemēram, tiks atjaunināta. Mūsu API dokumenti ir arī lieliska vieta daudziem sīkiem piemēriem. Visbeidzot, vispārējās Python konsultācijas ir ļoti noderīgas, lai sāktu darbu ar visām CircuitPython pusēm, kas nav aparatūras puses.

Kā jūs domājat, ka šis solis ietekmēs jūsu kopienu?

Es domāju, ka virzība uz CircuitPython paplašinās esošo Adafruit kopienu. Tā nodrošinās vairāk iesācēju uz kuģa, jo tā ir mazāka šķēršļa iekļūšanai tirgū. Tā ir ideāla saderība ar iebūvēto daudzpusību, piemēram, CircuitPlayground Express. Šī vienkāršā lietošana ļaus vairākiem cilvēkiem atgriezties pie mūsu kopienas ar projektu un bibliotēku palīdzību.

Esošie mūsu kopienas locekļi turpinās mūs redzēt, radot novatoriskus produktus un projektus. CircuitPython ir tikai viens solis, lai uzlabotu atklātā pirmkoda programmatūras un aparatūras pieredzi.

Tā ir arī pirmā galvenā platforma Adafruit, kas ir sponsorējusi (pretēji Arduino un Raspberry Pi, kam ir atsevišķas galvenās attīstības komandas). Tas dod mums iespēju noteikt toni jaunai pamatattīstības kopienai, kas ir ļoti aizraujoša. Visiem mūsu jaunajiem projektiem ir Rīcības kodekss, kas ir svarīgs, lai saglabātu draudzīgu, laipnu un atbalstošu Adafruit kopienu, jo mēs paplašināmies uz atvērtāka koda izstrādi. Rust valodas kopiena ir bijusi milzīgs iedvesmas avots tam, kā atvērtā koda projektu var veiksmīgi vadīt. Emīlijam Dunemam ir arī vairākas lielas sarunas par tām.

Cerams, ka šīs pūles radīs daudzveidīgāku dalībnieku loku CircuitPython, CircuitPython bibliotēkās un Learn Guides.



Jums Var Būt Interesē

Vecie ragi pārveidoti iPhone pastiprinātājos

Vecie ragi pārveidoti iPhone pastiprinātājos


11 No 11: Apollo Moonshot Tools

11 No 11: Apollo Moonshot Tools


Aha! Puzzle Šī

Aha! Puzzle Šī


DeltaMaker: Robot atbilst 3D printerim

DeltaMaker: Robot atbilst 3D printerim






Jaunākās Publikācijas