CircuitPython: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
LauBot (discussione | contributi)
m Bot: rimuovo parametro ridondante (valore uguale alla proprietà P154 su Wikidata)
 
(2 versioni intermedie di 2 utenti non mostrate)
Riga 1:
{{Software
|Nome = CircuitPython
|Logo = Adafruit blinka angles-left.svg
|Sviluppatore = [[Adafruit Industries]]
|DataPrimaVersione = 19 luglio 2017 <ref>{{citecita web|first1nome1=Scott|last1cognome1=Shawcroft|titletitolo=CircuitPython 1.0.0!|url=https://blog.adafruit.com/2017/07/19/circuitpython-1-0-0/|websitesito=Adafruit Blog|datedata=19 Julyluglio 2017 |publishereditore=Adafruit Industries|accessdateaccesso=1º Maymaggio 2018}}</ref>
|UltimaVersione = 9.2.1
|DataUltimaVersione = 20 November 2024
Riga 9 ⟶ 8:
|Linguaggio = [[C (linguaggio di programmazione)|C]]
|Genere = Interprete Python
|Licenza = [[Licenza MIT]]<ref>{{CiteCita web|url=https://github.com/adafruit/circuitpython/blob/master/LICENSE/micropython|titletitolo=circuitpython/LICENSE|lastcognome=George|firstnome=Damien P.|datedata=4 Maymaggio 2014|websitesito=[[GitHub]]|access-dateaccesso=1º Maymaggio 2018}}</ref>
|SoftwareLibero = sì
|SitoWeb = https://circuitpython.org/
|nome =
|autore = [[Adafruit Industries]]
Riga 18 ⟶ 16:
}}
 
'''CircuitPython''' <ref>{{Cita web|urlname=https://github.com/adafruit/circuitpython|sito=[["CP-GitHub]]}}<"/ref> è un linguaggio di programmazione [[open source]] derivato, come [[Fork (sviluppo software)|fork]], da [[MicroPython|MicroPython.]]. Grazie alla sua semplicità è adatto anche per studenti e principianti ed è stato creato da [[Adafruit Industries]] con l'obiettivo di semplificare l'uso di [[Python]] su microcontrollori e dispositivi hardware specifici.
 
Basandosi su MicroPython, che è una versione ridotta di Python3, eredita molte delle caratteristiche di Python3, rendendo il linguaggio familiare e accessibile agli utenti che già conoscono questo linguaggio. CircuitPython è scritto in [[C (linguaggio di programmazione)|linguaggio C]] <ref name="CP-GitHub">{{Cita web|url=https://github.com/adafruit/circuitpython|sito=[[GitHub]]}}</ref> che garantisce alte prestazioni e l'uso efficiente delle risorse su dispositivi a risorse limitate come i [[Microcontrollore|microcontrollori]].
 
Basandosi su MicroPython, che è una versione ridotta di Python3, eredita molte delle caratteristiche di Python3, rendendo il linguaggio familiare e accessibile agli utenti che già conoscono questo linguaggio. CircuitPython è scritto in [[C (linguaggio di programmazione)|linguaggio C]] <ref name="CP-GitHub">{{Cita web|url=https://github.com/adafruit/circuitpython|titolo= |sito=[[GitHub]]}}</ref> che garantisce alte prestazioni e l'uso efficiente delle risorse su dispositivi a risorse limitate come i [[Microcontrollore|microcontrollori]].
 
CircuitPython compila il codice sorgente Python in bytecode. Dopo che il [[codice sorgente]] è stato compilato in [[bytecode]], l'interprete runtime di CircuitPython esegue questo bytecode sull'hardware del microcontrollore.
Riga 27 ⟶ 24:
All'utente viene presentato un prompt interattivo noto come [[Read–eval–print loop|REPL (Read-Eval-Print Loop)]], uno strumento che permette agli utenti di interagire con l'interprete Python in tempo reale.
 
CircuitPython include una varietà di moduli che consentono agli sviluppatori di accedere sia all'hardware di basso livello dei dispositivi supportati che a librerie di livello superiore pensate per facilitare l'apprendimento dei principianti. <ref>{{Cita web|url=https://readthedocs.org/projects/circuitpython/|titolo=|sito=Documentazione su Read the docs}}</ref>
 
CircuitPython è una variante di MicroPython, che è stata originariamente creata da Damien George. <ref>{{citecita web|last1cognome1=George|first1nome1=Damien|titletitolo=Damien P. George|url=http://dpgeorge.net/|publishereditore=Damien P. George|accessdateaccesso=1º Maymaggio 2018|datedata=20 Maymaggio 2016}}</ref> La comunità di MicroPython continua a discutere <ref>{{citecita web|titletitolo=Adafruit CircuitPython|url=https://forum.micropython.org/viewtopic.php?t=2894|websitesito=MicroPython Forum|publishereditore=MicroPython.org|accessdateaccesso=2 Maymaggio 2018}}</ref> e sviluppare varianti di MicroPython, come CircuitPython.
 
CircuitPython punta a essere conforme a [[CPython]], l'implementazione di riferimento del linguaggio di programmazione Python. <ref>{{Cita web|url=https://www.baldengineer.com/circuit-python.html|titolo= |sito=The Bald Engineer}}</ref> I programmi scritti per schede compatibili con CircuitPython potrebbero richiedere modifiche per funzionare correttamente su altre piattaforme come ad esempio [[Raspberry Pi]]. <ref>{{Cita web|url=https://www.element14.com/community/thread/62774/l/can-i-use-circuitpython-code-on-my-raspberry?displayFullThread=true|titolo= |sito=Element 14 Community}}</ref>
 
== Utilizzo ==
'''CircuitPython''' si sta affermando come alternativa per la programmazione dei microcontrollori, che tradizionalmente viene eseguita in linguaggi come [[C (linguaggio di programmazione)|C]], [[C++]] o [[assembly]]. Viene utilizzato anche per la creazione di piccoli dispositivi portatili per videogiochi. <ref>{{Cita web|url=https://bitbucket.org/thesheep/circuitpython-lameboy|titolo= |sito=BitBucket}}</ref> Un esempio popolare è l'[[Adafruit PyGamer]], <ref name="PyGamer">{{CiteCita web|url=https://circuitpython.org/board/pygamer/|titletitolo=Adafruit PyGamer|languagelingua=Inglese}}</ref> una [[console portatile]] programmabile che utilizza CircuitPython e consente di creare e giocare a videogiochi personalizzati.
 
Lo sviluppatore Chris Young ha portato il suo software di trasmissione e ricezione infrarossi su CircuitPython per facilitare l'interazione tra dispositivi e per aiutare le persone con problemi di [[Accessibilità (design)|accessibilità]]<ref>{{Cita web|url=http://tech.cyborg5.com/2017/06/06/announcing-irlibcp-a-circuit-python-module-for-infrared-transmitting-and-receiving/|titolo= |sito=CY's Tech Talk}}</ref>
 
== Comunità ==
La comunità offre supporto agli utenti attraverso una chat room [[Discord]] e a un forum di supporto dedicato. <ref>{{Cita web|url=https://forums.adafruit.com/viewforum.php?f=60|titolo= |sito=Adafruit Support Forums}}</ref> Nel 2018 è stato creato anche un account [[Twitter]] dedicato alle novità di CircuitPython. <ref>{{Cita web|url=https://twitter.com/CircuitPython|titolo= |sito=[[Twitter]]}}</ref>
 
Settimanalmente, dal 15 novembre 2016, viene pubblicata da Adafruit la newsletter dal titolo "''Python on Microcontrollers"''. Questa newsletter fornisce notizie, aggiornamenti e informazioni utili su CircuitPython, MicroPython e, in generale, sull'uso di Python su [[Single-board computer|computer a scheda singola (SBC)]]. <ref>{{Cita web|url=https://www.adafruitdaily.com/category/circuitpython/|titolo= |sito=Adafruit Daily}}</ref>
 
Attraverso il subreddit [[Reddit|di Reddit]], "''r/CircuitPython''", vengono fornite notizie su CircuitPython e su progetti correlati. Attualmente conta circa 4.300 membri. <ref>{{Cita web|url=https://www.reddit.com/r/circuitpython/|titolo= |sito=Reddit.com}}</ref>
 
== Supporto hardware ==
La versione 9.1.0 supporta una gamma di architetture, chiamate "''porte''" (ports). <ref>{{Cita web|url=https://github.com/adafruit/circuitpython/releases/tag/9.1.0|titolo= |sito=GitHub}}</ref> Ogni "porta" è un'implementazione specifica del linguaggio per un determinato microcontrollore o famiglia di microcontrollori e richiede un adattamento del codice base di CircuitPython per sfruttare al meglio le caratteristiche hardware e le risorse del microcontrollore sottostante.
 
Le architetture supportate sono:
Riga 66 ⟶ 63:
* stm: famiglie di chip ST non-STM32F4
 
Le versioni precedenti di CircuitPython supportavano il microcontrollore [[ESP8266]], ma il suo supporto è stato abbandonato dalla versione 4. <ref>{{Cita web|url=https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-for-esp8266|titolo= |sito=Adafruit.com}}</ref>
 
== Blinka Software Abstraction Layer ==
Blinka è una libreria di astrazione software sviluppata da [[Adafruit Industries|Adafruit]] <ref name="circuitpython.org">{{Cita web|url=https://circuitpython.org/blinka|titolo= |sito=CircuitPython}}</ref> per permettere l'uso delle [[Application programming interface|API]] di CircuitPython su dispositivi che eseguono [[CPython]] o [[MicroPython]]. Questo significa che puoi utilizzare librerie e codice scritto per CircuitPython anche su altre piattaforme, come Raspberry Pi o PC desktop. Questo consente di sviluppare e testare i progetti CircuitPython su una piattaforma familiare (elencati su circuitpython.org), prima di trasferirli su un microcontrollore. <ref>{{Cita web|urlname=https://"circuitpython.org"/blinka|sito=CircuitPython}}</ref>
 
Blinka è una libreria Python installabile tramite <nowiki>''</nowiki>''pip''<nowiki>''</nowiki>. Questa libreria consente di eseguire codice scritto per CircuitPython su piattaforme che eseguono [[Linux]], come [[Raspberry Pi]], utilizzando il runtime CPython invece del runtime di CircuitPython. Questo significa che, mentre il codice utilizza le API di CircuitPython fornite da Blinka, l'esecuzione avviene tramite il runtime di CPython. Questo aspetto è ben documentato nella guida ''CircuitPython Libraries on Linux and Raspberry Pi''.. <ref>{{Cita web|url=https://learn.adafruit.com/circuitpython-on-raspberrypi-linux|titolo= |sito=Adafruit Learning System}}</ref>
 
== Moduli (Librerie) ==
Adafruit può contare su una comunità molto attiva che ha contribuito con una vasta gamma di librerie software per più di 488 sensori e driver. <ref>{{Cita web|url=https://www.adafruitdaily.com/2024/07/15/python-on-microcontrollers-newsletter-circuitpython-9-1-released-arduino-adopts-qwiic-and-so-much-more-circuitpython-python-micropython-thepsf-raspberry_pi/|dataaccessotitolo= |accesso=17 Julyluglio 2024}}</ref> <ref>{{Cita web|url=https://circuitpython.org/libraries|dataaccessotitolo= |accesso=17 Julyluglio 2024}}</ref>
 
== Note ==
<references />
{{References}}
 
== Collegamenti esterni ==
Riga 83 ⟶ 80:
* {{GitHub|Adafruit/CircuitPython}}
* {{YouTube|2=MicroPython}} • Tutorials di Tony DiCola / [[Adafruit Industries|Adafruit]]
{{Portale|Informatica|Softwaresoftware libero}}
 
[[Categoria:Software con licenza MIT]]
[[Categoria:Software libero in C]]
[[Categoria:Python]]
 
{{Portale|Informatica|Software libero}}