Domotica con Arduino

Cosa ne pensate del mio progetto?

Ho bisogno di una mano per realizzare un collegamento seriale in c# con arduino, im maniera più complesa.
Per ora utilizzo il semplice serialWrite ma vorrei utilizzare un sistema di comunicazione tipo I2C.

bellissimo il software lo hai realizzato tutto tu?e open?vorrei proprio dargli un occhiata hai utilizzato la kinect sdk giusto?

Si Fatto tuto da solo in c# ma ancora e primordiale devo preparare unqa grafica di base e ltre funzioni, e comunque open, si anche per le librerie kinect

Davvero carino, complimenti!

tufodj:
Si Fatto tuto da solo in c# ma ancora e primordiale devo preparare unqa grafica di base e ltre funzioni, e comunque open, si anche per le librerie kinect

se rilasci il codice su github o suorceforge qui sul forum siamo in molti che programmano :smiley:

Ho fatto la stessa identica cosa 22 anni fa con Vbasic windows era il 3.1, la mia basetta preforata sperimentale era inserita direttamente negli slot PCI della mainboard di un 486, avevo sudato parecchio per farla e il software di riconoscimento vocale della DragonDictate + quello per leggere i testi in italiano mi erano costati circa 2 milioni di lire :fearful:. I microfoni piccolissimi si trovavano nelle stanze addirittura 2-3 a stanza, il computer oltre ad attivare relè, parlava se avveniva qualche evento da me prestabilito.

Avevo collegato anche il telefono di casa al computer e vocalmente dicevo il nome o componevo i numeri in modo singolo, nelle casse della stanza in cui mi trovavo e tramite i microfoni avevo la comunicazione.

Il riconoscimento vocale ambientale era un successo se vivevo da solo o se portavo una cuffia con micro , ma bastavano altre persone o una tv accesa per far lampeggiare tutta la casa e fare cose spiecevoli, preso da raptus ho inscatolato tutto e abbandonato il progetto.
Il riconoscimento in un ambiente con più persone è un fallimento ancora oggi.

Certo anche perchè 22 anni fà non era cosi perfetto come oggi, e poi il kinect riconosce la persona che gli è di fronte non ascolta i discorsi ed esegue comandi se non riconosce diciamo il padrone. E poi setutto fosse controllato da un pulsante che attiva e disattiva l'in dello speech recognitor, magari bluetooth ..... cerco aiuto consigli, immaginate in cosa si può migliorare ...........

Bhe un dispositivo che deve avere un padrone non è utile, comprendo il tuo entusiasmo, ma mi puoi presentare tutti i software che vuoi, ma non avrai mai oggi nel 2012 un sistema efficiente, ci vogliono computer almeno 20 volte più veloci dei top che abbiamo ora per ottenere un risultato decente.
Poi se il software gira su windows ed è free :smiley: ]:smiley: siamo a cavallo

Ad esempio chiamarlo "wall" ogni volta per aprire un canale di ascolto, io lo chiamavo (computer!! era più da film di fantascienza :slight_smile: e più difficile usarlo nel dialogo tra persone", personalmente io lo trovo un pacco, perchè non posso dire "accendi luce camera" e basta? perchè il messaggio è diretto a lui, ma se lo esegue un umano prima del computer che mi importa... il risultato che voglio è sempre quello :D.
Questo è un esempio, ma prova a spargere qualche micro in giro per la casa e fare tutto a mani-libere, così capirai quali sono i problemi.
Ottimo per un invalido ovviamente con uso delle cuffie.

mmm sarebbe bello mettere un bel microfono in ogni stanza ma come fare per capire da quale microfono si riceve l'audio?come trasmettere audio?(sulle trasmissioni audio-visive sono a corto di informazioni) mmm mi hai fatto venire voglia di realizzarlo :smiley: ps ma il kinect lo metti solo in una stanza nel resto della casa non puoi fare niente giusto?

Madwriter:
mmm sarebbe bello mettere un bel microfono in ogni stanza ma come fare per capire da quale microfono si riceve l'audio?come trasmettere audio?(sulle trasmissioni audio-visive sono a corto di informazioni) mmm mi hai fatto venire voglia di realizzarlo :smiley: ps ma il kinect lo metti solo in una stanza nel resto della casa non puoi fare niente giusto?

Per gestire i micro ti serve un mixer, non puoi collegare i micro in parallelo, per le trasmissioni video non so cosa intendi, ma se vuoi accendere la tv ti basterà dire "wall .. TV .. Canale .. 8!", "volume ... 6!", arduino fa anche da trasmettitore IR il gioco è fatto, il problema avviene dopo che la tv è accesa se ti ascolta ancora :), con uno a fianco che parla al telefono :), un autobus che passa ecc
Dubito anche che sia efficiente con un microfono incastonato in un dente :grin:

E poi setutto fosse controllato da un pulsante che attiva e disattiva l'in dello speech recognitor, magari bluetooth ..... cerco aiuto consigli, immaginate in cosa si può migliorare ...........

il miglioramento lo devi fare via software, il pulsante è un idea, ma è poco tecnologico, puoi ad esempio chiamare wall (se proprio devi) e inserire solo 10 parole che riguardano i rami di comandi se la successiva non è nell'elenco chiude l'ascolto.
per rami intendo:

Wall (parola chiave che apre l'ascolto)
| |-----------camera (chiudi ascolto)
|Accendi _________ |-----------cucina(chiudi ascolto)
| |
luce
________|-----------sala(chiudi ascolto)
| |____ TV_____________________________canale_______ 5(chiudi ascolto)
| |... | | 1 (chiudi ascolto)
| |
| |volume ... (chiudi ascolto)
|
|Spegni___________luce____
| | |-----------sala(chiudi ascolto)
| |
... |-----------camera(chiudi ascolto)
| |
_... |-----------cucina(chiudi ascolto)
| |-----------giardino(chiudi ascolto)
| |---------- TV(chiudi ascolto)
| |....
|
|_______temperatura esterna ___ (il computer lancia una frase con apposito programma per leggere testi "la temp.. esterna è di ..)

se dopo "wall" non c'è "accendi" o "spegni" o una parola seguente nel ramo non è riconosciuta chiudi l'ascolto, le probabilità di falsi messaggi si riducono drasticamente, questo è quello che avevo fatto operando sulle dll e le ex funzioni API del VB

e ma come faccio a trasmettere l'audio di un microfono? vorrei fare cosi
Base centrale(gestisce il riconoscimento vocale)
Vari microfoni sparsi con uno standalone associato che trasmettono alla base centrale,
questi slave in giro mandano il suono alla base centrale la base riconosce il suono e manda il comando allo slave,per la comunicazione dati pensavo a dei nrf24l01 ma come mando il suono alla base?posso farlo via seriale non saprei come muovermi in questo campo.
inotlre avendo uno standalone per ogni stanza posso avere mille funzionalità ovunque :grin:

Puoi digitalizzare l'audio e usare una rete, ma la vedo troppo complessa a livello di velocità e circuiteria varia, oppure dei piccoli mixer per ogni stanza e un piccolo coassiale, altrimenti una rete di cavetti coassiali su un unico apparecchio sentralizzato che funge da mixer. Ovviamente diventa tutto molto complicato, ma una casa tecnologica come si deve ha Km di cavi :fearful:, se qualcuno mi dicesse te la faccio senza fili non lo farei nemmeno entrare in casa :stuck_out_tongue_closed_eyes:
Io al tempo ho avuto un appartamento libero per 2 anni (era mancata nonna) quindi avevo steso una marea di cavi coassiali e cavi di controllo che giravano sopra le porte, il sistema audio funzionava bene finchè non entrava mio padre che diceva "ma parli da solo?" .... no con il computer (dico io)... "ahahahha sei diventato scemo figliolo?" :D. Se oggi lo dovessi rifare userei guaine da 35-40 e farei tutto via cavo e fibre ottiche.

mmm guarda sono bruttissimi questi cavi :roll_eyes: mmm ci sarà un modo che ne so i microfoni quando ero bambino erano senza fili(alcuni) ricordo che erano ababstanzapiccoli che andavo su onde radio?
ad esempio questo

magari più piccolo :stuck_out_tongue_closed_eyes: alla base poi metto un mixer(se mi spieghi bene il funzionamento del mixer te ne sarei grato) per me sarebbe perfetto rielaborare l'audio ricevuto per aggiungere una sigla tipo salone + audio ricevuto.
cosi la base centrale sa dove sta compiendo l'azione!
oppure questo che semrba facile da costruire ma non trovo la parte ricevente mmm
www.ebay.com/itm/New-DIY-Electronic-learning-kit-wireless-microphone-DIY-PCB-/140733218345?pt=LH_DefaultDomain_0&hash=item20c45a7e29

Prima di spenderci dei soldi fai i test in una stanza solo con qualche cavetto, le capsule micro le trovi con pochi centesimi, fai il software , poi se ritieni soddisfacente il risultato, modifichi il tutto con microfoni radio e cose più costose.

Comunque un mixer non è altro che un miscelatore, miscela segnali audio provenienti da sorgenti diverse, creando un nuovo suono che è l’insieme, la fusione, di quelli originali.
Un mixer può ad esempio fondere insieme i segnali audio che provengono da microfoni diversi, come quelli di ciascun elemento dell’orchestra, serve un elettronica perchè non puoi collegare in parallelo le impedenze dei micro, otterresti dei valori sballati e tutto funzionerebbe male. Potresti cercare degli schemini semplici, non ti serve certo un mixer che regoli i medi i bassi e gli alti, una cosa semplice insomma

Anche il micro non è molto indicato quello che hai postato, nelle mie prove avevo notato che era molto più efficiente inserire le capsule
tipo http://www.webalice.it/crapellavittorio/i2kpr/mike.html alla base di alcuni imbuti (posizionati sopra i mobili), una cosa orribile mi rendo conto, ma la sesibilità era aumentata in modo esponenziale, anche troppo :), era diventato direzionale, ma quando si sperimenta tutto è lecito eheheh

capito inizierò con domotizzare la mia stanza poi quando passo alle altre stanze mi pongo il problema della distanza :smiley: grazie mille dei suggerimenti :wink:

Il kinect ricordatevi che può essere anche smontato e collegato ad un circutito anche fai da te che ha lo scopo di collegare preamplificare più microfoni, oppure il mio obbiettivo e di usare le librerie kinect ma utilizare un microfono tipo auricolare bluetooth o crera un piccolo telecomando simile a quello della mediavoice (www.mediavoice.it), loro lo hanno chiamato speaky!

Poi la scala di comandi che mi avete proposto la trvo poco umana, il soft per ora resta sempre in ascolto e recupera dal dettato tutto ciò chegli può sembrare un comando, all'inizio avevo anche io problemi di accenzioni casualim , ma dopo ho capito che l'errore si trovava nel listato c# ero io a sbagliare il modo di scrivere il codice, pian piano tutto sta migliorando e ci sono pochi problemi anzi quasi zero.

E poi immaginate che quando con un pulsate virtuale o uno da iun telecomando il software abbassa il volume di qualsiasi sorgente sonora( tv, musica del pc etc..) e si metta in ascolto in questo casa già rduco molto il rumore di fondo, se poi il micro è un auricolare wifi ed è vicino alla mia bocca il comando risltera ancora più preciso. Ci sto lavorando per ora devo migliorare la comunicazione seriale Che utilizza variabili char e la grafica che è molto spartana, poi integrero anche un comando di attivazioni tramite cam già nelle sdk di kinect ho trovato un codice che serve per sfogliare le immagini col solo movimento della mano ed anche un codice che legge il movimento del volto......... poi sicuramento dopo l'estate dedichero più tempo a qst. Sta di fatto cheio non sono un programmatore sto imparando il codice c# man mano che lo scrivo, per ora risulta facile molto intuitivo. Vedremo in seuito.
Il mio scopo è ache trovare molti progetti in rete di domotica con ard e c# per poi riunirli tutti in uno solo (Camere di sorveglianza, RDif per il controllo accessi, riconoscimanto del volto, sveglia, timer per luci e controlli di tempo per il calcolo dei consumi)

Innanzi tutto, complimentoni per il progetto! Probabilmente ha qualche pecca ancora, ma per essere un' alpha version non male davvero!
Io ho avuto la stessa idea, ma devo ancora trovare il tempo di realizzarla, indubbiamente è più sempliciotta di tutto il lavoro che hai svolto tu, uso android da 2 anni ormai, e ricorro spesso, soprattuto in macchina a google voice.
Un sistema già fatto e finito, con eliminazione dei rumori incorporata, per farti un esempio, in macchina posso tenere la radio accesa, certo non a volume massimo, ma lui comunque mi scrive quello che dico io.
Quindi perchè non usare un arduino mega con ethernet shield che si collega ad una mia pagina in php che mi restituisce in stringa quello che dico? così arduino sarà in grado di avere la stringa con cui lavorare. Chiaro che per fare una cosa fatta bene ci vorrebbe un bel po di IA...
Comunque complimenti ancora!

PS: potresti scriverlo in java, cosi lo metti su una RaspBerry PI, con un display touch da 7" inscatolato nel muro, e così sarebbe moolto figo, non che non lo sia già di suo, ma così avresti il tocco di classe!

se poi il micro è un auricolare wifi ed è vicino alla mia bocca il comando risltera ancora più preciso

e no così sono capaci tutti :smiley: :smiley: :smiley: troppo facile, con un microfono indossato funziona anche se sono in galleria con un treno che passa

Il riconoscimento del viso, questa si che è una bella idea

Il progetto lavora su pc con almeno win 7 perchè c'è bisogno del kinect anche smontato a mille pezzi!
Poi in seriale si può collegare qualunque cosa rasberryPi arduino o Ez-Robot( che tra l'altro ho ed è fantastica) logiacamente io adoro arduino e continuerò ad usare qst scheda per ora anzi a crearne una mia sempre con atmega.

Sicuramente con l'auricolare son bravi tutti, ma come tutti sanno non è proprio facile per un pc distinguere le persone, poi ricordatevi che non uso le dragon Naturally sdk ma il kinect che sembra molto più intelligente rispetto alle precedenti, che tra l'altro ho provato ma restituiscono tutta la stringa di dettatura!

Ricordate anche che io non sono un programmatore ma solo un'hobbista sicuramente esistono persone che se partono dal mio progetto relizzerann oqualcosa di veramente fantastico.... Ho provato anche le sdk del windows phone e dentro ho trovato anche una funzione di riconoscimento vocale chiamata Tell-Me che è micidiale quasi meglio del kinect stesso! appena ralizzerò la base di partenza pc potro anche relizzare un' app per il mio phone win che si collega ala tutto

tufodj, bella storia, complimenti

ma il riconoscimento vocale e' una libreria ? il fatto che non sia legato ad un comando preciso, ma che interpreta autonomamente la frase sembra funzionare bene.
Se gli dici "wally decidi da solo se accendere o spegnere luce ingresso" che diavolo combina ? :slight_smile: