Go Down

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

Master_of_Mouse

Ciao a tutti, non sono un esperto, spero non mi linciate per le eventuali fesserie che scrivo :D
Visto che le schede madri in genere permettono di gestire poche ventole e reputo speedfan un ottimo programma che fa al caso mio vorrei sapere se è possibile collegare in qualche modo l'arduino al pc e farlo trovare a speedfan.

All'avvio speedfan fa una scansione tipo questa:
I/O properly initialized
Linked ISA BUS at $0290
Linked ATI SB8x0 SMBUS at $0B00
Linked ISA BUS at $0CCB
SB7xx/8xx PM2 found on ISA at $CCB
Scanning ISA BUS at $0290...
SuperIO Chip=IT8721F
IT8721F found on ISA at $290
Scanning AtiIgp SMBus at $0B00...
Scanning ISA BUS at $0CCB...
ATK0110 (MB=M4A89GTD-PRO-USB3) found on ACPI
End of detection
Loaded 0 events


La documentazione di speedfan dice che il programma riesce ad accedere a molti bus http://www.almico.com/forumbuses.php
Quindi mi chiedevo se sfruttando i pin i2c o qualche altro sistema si possa interfacciare arduino al pc facendolo vedere come un controller che comunica con bus isa o smbus o altro.

Zyw80

Salve, vedo che nessuno ha risposto a questo topic... peccato, perchè era una domanda interessante e sto cercando di fare esattamente la stessa cosa. Per la precisione vorrei avere una comunicazione bidirezionale fra arduino e i sensori del pc (non ho ancora capito se è fattibile via smbus), 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. Sulla parte hardware credo di aver risolto, ma in quanto al lato software non so da dove partire.
Qualcuno ha consigli ed esperienze da condividere? :)

uwefed

Vedo inpossibile perché non riesci a interfacciare il PC con Arduino per lo scambio di dati.
Ciao Uwe

Zyw80

Francamente non riesco a capire la risposta...

uwefed

Zyw80 dici di aver risolto il lato HW. Come hai fatto?
Ciao Uwe

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