Ricevere dati da motherboard, è possibile?

Salve a tutti, come da titolo è possibile ricevere i dati provenienti dai sensori delle motherboard (uso della ram, voltaggi, velocità ventole e temperature, ecc)? Questi giorni sto studiando un pò di elettronica e programmazione (processing) vorrei sperimentare un pò con alcuni integrati. L'idea malsana sarebbe quella di creare una specie di dashboard a led che monitorizza i vari dati restituiti dalle schede madri. Lo so, a molti sembrerà una tamarrata megagalattica ma mi serve giusto per imparare. Per ora ho scritto un piccolo software in processing in grado di comandare una scheda con 8 relè collegata sulla porta seriale del pc; i relè della scheda li posso comandare dalla tastiera del pc e da un tastierino collegato ad un arduino 2009 (per ogni tasto premuto arduino invia un dato sulla seriale ed il software sul pc lo analizza e comanda la scheda). Visto che mi rimangono molti pin disponibili su arduino e visto che ho ancora molto da imparare, c'è un modo per catturare questi dati con un arduino oppure in processing? Saluti a tutti e buone feste!

Probabilmente e' possibile ma probabilmente difficile, dovresti trovare i punti sulla MB in cui passano i dati, saldare dei punti... Il mio consiglio e' quello di utilizzare un programma sul sistema operativo, parsarne i dati e passarli via seriale a arduino, e agire di conseguenza. Ad esempio se sei un utente linux puoi utilizzare lm_sensors per ottenere questi valori o leggerli direttamente dal /proc/acpi
Buona tamarrata!

Bellissima idea!!!
Io pensai addirittura di crere dei dispositivi di output in stile "Steampunk" ;D
AD esempio un tubo in rame al termine del quale un indicatore analogico mostra l'utilizza della RAM.
Ma il tempo è tiranno !

Il mio suggerimento è utilizzare Linux per non appesantire la macchina. Magari riesci ed inviare i dati senza scrivere nessun programma ma direttamente con i comandi da console.
Come dice Federico, li leggi da Bash e poi con un bel echo "RAM..." > tty1 invii il tutto ad Arduino.

http://images.google.it/imgres?imgurl=http://www.edopter.com/images_user/ideas/200903/dpcArj&imgrefurl=http://www.edopter.com/trends/Steampunk&usg=__9hyMorjG_cWHTqOPx99avM8IsjA=&h=435&w=580&sz=153&hl=it&start=6&sig2=EWhkHxC25oRwLhSetdJSjw&um=1&tbnid=q76VskSh04aoKM:&tbnh=101&tbnw=134&prev=/images%3Fq%3Dsteampunk%26hl%3Dit%26client%3Dfirefox-a%26rls%3Dorg.mozilla:it:official%26sa%3DN%26um%3D1&ei=8o04S-WlMpuJ_Aa3v_j0CA

Grazie per la dritta ragazzi, vedrò cosa posso fare con linux. Ho due distribuzioni installate sul pc buono, mandriva 2009 e kubuntu. Visto che ho anche un pc datato, lo userò per sperimentare. Mi sapete consigliare una distribuzione linux abbastanza user friendly per pc datati (Pentium3) che non appesantisce di molto il sistema?

Dal più pesante al più leggero, potresti provare con

Debian
Xubuntu ( http://www.xubuntu.org/ )
Ubuntu Plume ( Ubuntu9.04+LXDE | Il Blog di Streetcross )
puppy ( http://puppylinux.org/main/index.php?file=Overview%20and%20Getting%20Started.htm )

In any case, ti sconsiglio Windows con tale PC.

Se hai tempo ( e voglia di faticare) potresti addirittura usare una versione di Linux priva di interfaccia grafica. E' abbastanza per quello che devi fare.

puppy e' un po' hardcore, piuttosto che quella metterei debian senza interfaccia (o fluxbox) o xubuntu. Poi dipende da quanto sei esperto. In genere anche con xp dovresti cavartela se non metti troppe baggianate.

Anche con windows non è che sia così difficile recuperare i dati di ram utilizzata ed altri dati del sistema. Non so con processing ma se usi .NET è banale.

La vedo dura recuperarli "direttamente" dalla MC, ti conviene prenderli dalla seriale, oppure per questo scopo le moderne MB a volte hanno una presa USB interna che potresti convertire in seriale.

Ragazzi, che dire... siete fantastici. Intanto cerco di sistemare il pc aggiungendo un pò di ram, poi dopo una bella revisione generale proverò quale distribuzione da voi consigliata possa andare meglio. Purtroppo sono ancora inesperto in ambiente linux, sto facendo i primi passi e non ho le conoscenze adeguate per passare ad una distribuzione senza interfaccia grafica. La voglia di buttare definitivamente nel cesso winzozz è tanta, mi spinge sempre di più a studiare linux e le sue infinite potenzialità.

Per Uranio: sapresti indicarmi un link dove posso trovare delle informazioni su come fare usando .NET? Sto iniziando adesso a fare i primi script, quindi a sto punto un linguaggio vale l'altro, dovrò ugualmente mettermi sotto a studiare! Graze per la disponibilità

Il framework .NET dovrebbe avere un name space System.Management in cui ci sono le classi da utilizzare le WMI di windows.

Con google trovi molta roba sul WMI

Googleando ho trovato però anche questo esempio in C#

Utilizza le System.Diagnostics per indicare quanta ram è attualmente utilizzata.

Per ora sono riuscito a prendere i dati su sistemi linux (ho provato su un pc con kubuntu), è bastato installare lm-sensors come consigliato da federico. Dopo averlo configurato basta lanciare da terminale " sensors>/dev/ttyUSB0 " e l'output del comando viene inviato sulla seriale di arduino; a quersto punto con un parsing scompongo il pacchetto ricevuto e assegno i vari valori a delle variabili (ram, cpu, temperatura, ecc) Adesso viene il bello, ossia devo fare la parte elettronica. Su arduino attualmente ho impegnati 8 pin digitali per collegare un tastiera a matrice 4x3 e un buzzer; i pin 0 e 1 non li ho usati perchè devo comunicare via seriale con un software sul pc. Con i pin che mi rimangono vorrei visualizzare i dati su 4 display a 7 segmenti a catodo comune, quindi visualizzando numeri di massimo 4 cifre. Per ora sono riuscito a controllare un solo display usando uno shift register 74HC595. Cercando in rete come comandare più display ho visto che si possono usare dei PIC per fare il multiplexing dei display, ossia accendere rapidamente in sequenza ogni display . Ho diversi PIC che compaiono in alcuni progetti per il multiplexing, quali il 16F84A, 16F628A, 16F876A e ho un programmatore PicKit2 della microchip ancora imballato; se utilizzo un microcontrollore poi come faccio a passargli il valore dalla seriale di arduino? A breve dovrò ordinare dei componenti, se nelle righe sopra ho detto solo stupidaggini, qual'è la soluzione ottimale per trasmettere i dati ai display?