Go Down

Topic: Interfacciare arduino mega con speedfan (Read 809 times) previous topic - next topic

leo72


in modo tale che qualsiasi programma stile speedfan possa leggere i sensori di arduino e che quest'ultimo abbia accesso ai sensori integrati del pc per poter visualizzare e gestire ventole e quant'altro.

Vuoi leggere i "sensori di Arduino" o quelli del PC? Non ho capito...

Zyw80

"Credo" di aver risolto il lato HW. Non ho ancora tutto in mano per verificare se la mia soluzione funziona.
L'idea era di far emulare ad arduino un device slave sull'smbus e per fare ciò dovevo innanzitutto trovare il modo di collegarmi all'smbus. Era facile una volta quando tutte le mobo avevano un bell'header già pronto a cui collegarsi, adesso ho dovuto ingegnarmi. Avevo due possibilità: andare a collegarmi direttamente alle linee smbus da qualche parte (banco dram o slot pci-e) o prendere un adattatore usb. Ho optato per quest'ultima soluzione, che mi pare più pulita e meno rischiosa :D Adesso sono in attesa del pacco dalla cina per cominciare a fare esperimenti. Trovato il modo di collegarmi all'smbus però rimane il problema di far vedere arduino al pc. Speravo di trovare delle librerie già pronte e qualcuno con esperienze al riguardo per guidarmi, visto che sono alla mia prima esperienza (!) con questo genere di progetti.
Se implementare questa soluzione si dovesse rivelare troppo difficoltoso ripiegherò su un'alternativa più semplice: un programma su pc che legga la memoria condivisa di speedfan e invii via seriale (magari bluetooth) i dati raccolti.

Il progetto in questione è un semplice controller per un sistema di raffreddamento ad acqua: arduino deve controllare le temperature dell'acqua e dell'aria e regolare di conseguenza la velocità di ventole, pompe ecc, oltre a visualizzare i dati essenziali su un lcd. In tutto ciò arduino è completamente autonomo e non dipende da input esterni. Questa parte non è un problema ed è alla mia portata. La ciliegina sulla torta sarebbe la possibilità per arduino di leggere direttamente i sensori del pc tramite smbus, così da conoscere la temperatura reale di cpu/gpu e controllare la variazione di quest'ultime invece di limitarsi a tenere sotto controllo solo la temperatura del liquido.
Questa parte è per il momento in dubbio perchè non sono sicuro che un device slave sia in grado di interrogare altri membri sul bus senza essere master (o diventarlo temporaneamente), e qui devo chiedere aiuto a qualcuno di più navigato. Tutta la parte software dell'smbus è da studiare da 0.
L'inverso dovrebbe essere semplice: arduino appare come una semplice periferica sull'smbus e speedfan (o qualsiasi altro programma simile) dovrebbe trovarlo da solo durante la fase di scan iniziale e leggere i sensori che arduino presenta. Questa però è solo una chicca estetica per vedere su pc le temperature dell'impianto di raffreddamento.  Quello di cui ho bisogno è passare ad arduino le temperature di cpu e 2 gpu prese direttamente dai diodi integrati, e la soluzione via smbus mi è sembrata la più elegante e funzionale.

icio

Penso che un programma per PC che legga le temperature del PC e le butti in rs232 sia la cosa più semplice e adattabile a tutti i PC

Go Up