Go Down

Topic: Programmazione (Read 1 time) previous topic - next topic

giando

Salve a tutti, spero che possiate aiutarmi al più presto, dovrei eseguire un file sul pc utilizzando arduino; mi spiego meglio, vorrei che quando avvio lo sketch in questione, venga eseguito un file (audio) sul pc.  Ci sono riuscito con C++ con il seguente codice che su arduino non funziona:

#include <stdlib.h>
#include<stdio.h>

int main()
{
(void)system("C:\\Windows\\System32\\XXXX.mp3");
return(0);
}

----------------------------------

Aiutatemiiii grazie!

superlol

allora, arduino non viene programmato in C ma in simil C. più vicino al processing.
Arduino non ha su montato nessun sistema windows, linux, mac o che tu voglia, non ha SO.
quesslo che tu hai scritto inanzitutto prende 2 librerie inutili nell'arduino (stdlib e stdio).
poi hai usato un return(0) inutile visto che non è un programma eseguibile
in fine l'errore più grande: (void)system("C:\\Windows\\System32\\XXXX.mp3");
ora ti spiego.
la programmazione è vastissima e si applica in base allo scopo.
questo significa che un programma che scrivi per windows ovviamente non funzionerà su MAC ma anche che un programma che sia multipiattaforma non funzionerà su un arduino.
arduino è un microcontrollore non un pc, un pc ha necessità di un SO e i programmi che scrivi vengono interpretati dal SO non dal processore, arduino è un processore alla fine.
non hai un sistema e windows, non hai dischi quindi non esiste il disco C:, non esiste la cartella Windows e non esiste il comando system().
arduino non vuole inoltre int come funzione principale (main()) ma un void.
poi da dove riprodurresti l'audio? arduino non ha un paio di casse e se non lo scrivi tu dal codice non ha nemmeno un codec mp3.
per riprodurre un suono su arduino dovresti inanzitutto metterlo su una SD esterna perchè non hai disco e quello che viene salvato nella flash interna è solo il codice (poi mi pare che hai solo 20kb quindi metterci un MP3 non mi pare il caso), poi dovresti creare un codec mp3 che legga il file da SD ne estrapoli la cassa destra e sinistra e leggere le frequenze che poi dovresti dare come output su 2 canali PWM di arduino.
visto la blasfemia di codice che hai scritto non avventurarti subito così avanti, inizia a far lampeggiare un led, poi magari effetti come quello di kitt di supercar tramite un PCF8574 (via I2C) o uno shift register, poi passa a cose sempre più complicate come leggere un file .txt da una sdcard e stamparlo tramite seriale sul serial monitor e poi pian piano portai arrivare a quello che vuoi fare ora.

non scoraggiarti ma quello che vuoi fare tu ora figurati che è molto complicato per molti programmatori esperti  ;)
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Federico Vanzati

@superlol: attento che hai detto un po' di...inesattezze pure tu.

@giando: ammetto che non ho capito praticamente nulla di ciò che intendi, ti sei spiegato in modo troppo stringato...

ho capito solo che vuoi far partire un mp3 sul tuo computer ...ma cosa vuol dire quando avvii uno sketch?
Poi cosa vuol dire che ci sei riuscito con C++ ma che non funziona su arduino?

Se ci dai un'idea di cosa vuoi fare sarebbe già un buon punto di partenza per cercare di aiutarti!  ;) ;)
F

lesto

dato che l'mp3 e l'hardware necessario alla riproduzione dell'mp3 risiede sul computer, tutto ciò che può fare arduino è inviare un comando (via seriale) che un programma sul pc riconosce e lancia l'apposito comando ( per esempio system("C:\\Windows\\System32\\XXXX.mp3"); )

Quindi ti serve un programma sul pc che legga la seriale e in base al comando ricevuto faccia partire mp3 o quel che vuoi, e un'arduino che invii i comandi.
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

giando

Scusatemi forse mi sono spiegato male. Dunque il codice che ho postato è funzionante con dev c++  e mi permette di eseguire il file  "XXXX.mp3"  nel momento in cui apro l'eseguibile creato da dev c++. Ora mi chiedevo se per il software di arduino (e non sto parlando di hardware, processori e quant'altro passi nella tua fantasia @superlol) esista qualche funzione o codice particolare per ottenere lo stesso risultato che ho ottenuto con DevC.  Faccio un esempio di ciò che voglio fare: Quando premo il tasto "a"  esegui il file XXXX.mp3 presente sul computer ovviamente ,  quando premo il tasto "b"  esegui il file YYYY.mp3   ecc....  Il problema non è quello di associare i tasti ( case ) bensì quello di eseguire il file presente sul computer. è possibile?..  grazie
@federico spero di essermi spiegato, aspetto tuoi suggerimenti, grazie!
@lesto forse hai capito il mio problema, ma a che tipo di programma ti riferisci? grazie!

Go Up