Salve a tutti,
devo realizzare un piccolo progettino che consiste nel far funzionare una serie di led indirizzabili, variando la loro luminosita, colore e altro in base al brano musicale che viene selezionato.
La mia idea è quella di realizzare un qualcosa che legge il brano e in base alle frequenze(o altro che poi valuterò) dare gli impulsi ad arduino.
Suppongo che questa cosa mi conviene farla con un linguaggio di programmazione più evoluto, come Java, C++, C# o C. Però non avendo avuto mai a che fare con questa accoppiata (Codice X con Codice Arduino) non so da dove iniziare.
Potresti fare, nel linguaggio che preferisci e con tutte le librerie del caso, un programma per il PC che preprocessa i brani, producendo ad esempio file di testo contenenti tutti i dati necessari per accendere i led come vuoi. Successivamente da Arduino puoi leggere questo file, sicuramente più semplice da interpretare e gestire del file musicale, e agire di conseguenza.
paulus1969:
Ma il C++ lo hai già... le limitazioni sono date dall'hardware più che dal linguaggio di programmazione.
No però non ho problemi ad imparare un nuovo linguaggio. Lo faccio di mestiere :).
In ogni caso, come funzionerebbe, c'è un libreria da importare in ambiente C++ che ha metodi simili (se non uguali vista la provenienza di Arduino Code)
Forse sono io a non capire. Ma mi pare si stanno mischiando capre e cavoli
Ma vuoi fare un programma che gira SOPRA Arduino in altro linguaggio ? (quello che dice uwe)
O vuoi fare un programma su PC (in qualsiasi linguaggio) che poi dialoga con un Arduino ? (quello che dice Sukko)
nid69ita:
Forse sono io a non capire. Ma mi pare si stanno mischiando capre e cavoli
Ma vuoi fare un programma che gira SOPRA Arduino in altro linguaggio ? (quello che dice uwe)
O vuoi fare un programma su PC (in qualsiasi linguaggio) che poi dialoga con un Arduino ? (quello che dice Sukko)
Hai ragione, sinceramente non avendo ancora deciso e non conoscendo bene le potenzialità voglio valutare.
Tuttabia la soluzione di sukko mi sembra molto valida per quello che voglio fare, e mi sto documentando.
Però vorrei capire (per applicazioni future) cosa posso far girare su arduino. So di per certo che esistono veri e propri sistemi operativi che girano su arduino con processore a 32bit e che hanno una macchina virtuale per Pyton.
Però non so cosa occorre per poter far girare un programma scritto in altri linguaggi(C, C++, Java) SOPRA arduino
Forse hai confuso un po' di cose ;). Arduino (almeno la Uno, l'Arduino per antonomasia) è basato su una MCU a 8 bit con 2k di RAM, quindi scordati Python, macchine virtuali e "sistemi operativi" in senso stretto.
Forse tu ti riferivi al Raspberry Pi? Quello è un PC completo su di una scheda, con almeno 512 GB di RAM, 1 GB nelle ultime. Ha anche pin GPIO con cui puoi interagire col mondo esterno. Ci gira tranquillamente Linux.
SukkoPera:
Forse hai confuso un po' di cose ;). Arduino (almeno la Uno, l'Arduino per antonomasia) è basato su una MCU a 8 bit con 2k di RAM, quindi scordati Python, macchine virtuali e "sistemi operativi" in senso stretto.
Forse tu ti riferivi al Raspberry Pi? Quello è un PC completo su di una scheda, con almeno 512 GB di RAM, 1 GB nelle ultime. Ha anche pin GPIO con cui puoi interagire col mondo esterno. Ci gira tranquillamente Linux.
No no, infatti ho specificato "su arduino con processore a 32bit" ora non so qual'è il modello preciso che ha la MCU a 32 bit, ma ti assicuro che esiste l'ho visto al Maker Fair di Roma qualche giorno fa. Ora mi sfugge il nome del progetto ma appena torno a casa metto il link.
vecio88:
No no, infatti ho specificato "su arduino con processore a 32bit" ora non so qual'è il modello preciso che ha la MCU a 32 bit, ma ti assicuro che esiste l'ho visto al Maker Fair di Roma qualche giorno fa. Ora mi sfugge il nome del progetto ma appena torno a casa metto il link.
Beh, schede Arduino con mcu a 32bit ci sono (Due, Zero, MKR1000, M0 Pro, Tian) ma:
progetti giovani,
tieni conto che alcune schede che puoi aver visto non sono di arduino.cc (questo forum) ma arduino.org (TIAN, M0 Pro)
Tra un pò si rimetteranno insieme ma le mcu di arduino.org e il loro ide qui non è molto conosciuto.
SukkoPera:
Forse parli di Arduino Due o di una delle ultime schede, che però sono un po' effimere. Non sapevo ci girasse Python comunque.
Non ricordo quale modello di arduino, però per esempio il tipo dello stand mi diceva che esiste la Node MCU v2 (ESP8266) che costa sui 5€ che che è una delle varie versioni cinesi di Arduino che ha la MCU a 32 bit. Su questo viene installato un sistema operativo sviluppato da questi ragazzi su cui gira una Virtual Machine per Python. Ora non ho con me la brochure quando torno a casa vi posto il nome del progetto.
C'è un microPython per ESP8266 per cui immagino ci sia anche per altri micro a 32bit
vecio88,
dovresti specificare di quale modello si tratta. Nel forum qui si parla nella stragrande maggioranza dei casi di Arduino UNO con solo 2k di RAM. Nel mondo 32 bit invece la RAM varia moltissimo a seconda dei modelli ma a parte qualche eccezione si tratta di modelli di nicchia perché costosi rispetto a schede tipo RaspberryPI e la loro comunità molto ristretta, in italiano quasi inesistente, almeno stando ai commenti che si leggono qui.
Ah, OK, la NodeMCU è basata su di un microcontrollore totalmente diverso, per il quale però è stato creato un core Arduino, per cui alla fine risulta "compatibile" con questo.
Grazie a un Kickstarter, qualche mese fa su ESP8266 è stato fatto il porting di MicroPython. È un progetto interessante ma non l'ho ancora provato. Non parlerei comunque di "sistema operativo".
Tieni però presente che quando ci carichi l'interprete MicroPython, quella scheda non ha più alcunché a vedere con Arduino :).
Un'altra piattaforma interessante è l'Onion Omega. È più simile ad un Raspi che ad Arduino, ma ha la possibilità di collegargli un'Arduino Expansion che la rende (molto) vagamente simile ad un Arduino Yùn.
sulle Arduino con mcu Arm, ovvero quelle moderne e attuali, si può far girare python, JavaScript e se non ricordo male pure java, ma anche lisp.
l'unica cosa da verificare è che ci sia Abbastanza memoria ram e flash per farli girare, non ricordo a memoria.
OK, non lo conoscevo, effettivamente è una macchina virtuale/OS, ma non ho approfondito più di tanto. Però pare che lo porteranno su Arduino Zero (una delle schede "nuove" di cui parlavo), del fatto che giri su ESP non ho trovato menzione.