Pagina 1 di 1
[Progetto] Programma per utilizzo porta parallela
Inviato: domenica 17 agosto 2008, 11:54
da ssaa
Ciao a tutti. Sto realizzando un progetto per un braccio meccanico comandato via computer tramite la porta parallela (ho il pallino dell'automazione industriale). So benissimo che la porta parallela viene gestita in kernel mode e non vi è possibile accedere un user mode. Mi chiedevo come fare per poterci inviare dati in modo da comandare il braccio meccanico. Lo feci gia con windows (per via che dovevo presentarlo alla mia scuola dove sfortunatamente utilizzano solo windows) utilizzando la libreria esterna "io.dll" (che è libera gratuita e open source, rilasciata sotto licenza gpl) ora intendo creare un programma in c++ che sia capace di inviare dati sulla porta dati e sulla porta controllo e leggerne dalla porta stato. so che esistono le librerie ppdev e parport ma non riesco a capire da solo come utilizzarle nel mio sorgente. ho provato anche a cercare ducumentazoni in giro su internet ma senza successo. spero che qui possiate aiutarmi.
è veramente un peccato, perche il braccio l'ho gia realizzato e mi è costato un sacco di soldi, manca soltanto la parte software, in quanto intendo distribuire il tutto in una guida sotto licenza gnu e magari ottimizzare il tutto per far girare il software anche su computer vecchissimi come 386 dove sia installata la distro mulinux.
ringrazio anticipatamente coloro che vogliano aiutarmi e sono pronto a fornire supporto a chiunque abbia pensato di costruire un braccio meccanico o qualsiasi altro automa industriale.
ps. non sapendo dove scrivere ho postato in questa sezione, prego gli admin di perdonarmi se ho sbagliato.
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: lunedì 18 agosto 2008, 11:22
da brus46
Ciao!
se vuoi io ho scritto due programmini in C che mandano impulsi sulla parallela o ne leggono l'input
puoi usarli già compilati anche...
non posso mandarti ora il sorgente perchè si trova su un altro pc. appena vi accedo mando
cmq (se non ricordo male) non è difficile leggere-scrivere sulla parallela, basta aprire il file giusto e scriverci dentro

Re: [Progetto] Programma per utilizzo porta parallela
Inviato: lunedì 18 agosto 2008, 13:35
da ssaa
mi farebbe molto piacere se tu potessi darmi più informazioni dettagliate ed esaustive. Però io non conosco il c, conosco abbastanza bene in c++ ma soltanto i concetti di base. se tu potessi spiegarmi nel dettaglio com'è che si fa a scrivere sulla porta parallela utilizzando le librerie standard del c++ senza dover utilizzare librerie che non appartengono a tali standard sarei lieto, in caso contrario dovrò accontentarmi di utilizzare librerie non standardizzate.
dovresti spiegarmi per bene il procedimento che hai utilizzato per scrivere e leggere dalla porta parallela perche voglio imparare a farlo da solo senza utilizzare codice scritto da altri (non mi piace sfruttare il lavoro altrui).
ti ringrazio anticipatamente!
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: venerdì 22 agosto 2008, 0:19
da novainvicta
@brus46
quindi in teoria posso leggerci e scriverci anche con il PHP ?
( mi serviva comandare la parallela da interfaccia web )
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: venerdì 22 agosto 2008, 13:11
da ssaa
forse ci sono riuscito, e senza l'utlizzo di librerie non standard. posto un pezzettino di codice.
dico forse perche la compilazione e la generazone dell'eseguibile vanno a buon fine, ma nn l'ho ancora testato perche la macchina su cui l'ho compilato non ha la porta parallela. appena posso lo testerò!
Codice: Seleziona tutto
#include <iostream.h>
#include <sys/io.h>
const int PortaDati = 0x378;
const int PortaStato = 0x379;
const int PortaControllo = 0x37a;
int main() {
system("clear") ;//chiamata al sistema per eseguire il comando clear di linux per pulire lo schermo
if (ioperm(PortaDati,1,1)<0) {
exit(0); }
else {
iopl(4); //funzione che se ho ben capito da i permessi di amministratore per poter leggere e scrivere su tutte le porte del pc
/*per scrivere sulla porta d controllo o sulla porta dati*/
int dati;
cout << "dato da inviare (0<=dato<=255) -> " <<endl;
cin >> dati;
outb(dati,PortaDati);
/*per leggere dalla porta di stato*/
int valore;
valore = inb(PortaStato);
}
return 0;
}
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: venerdì 22 agosto 2008, 16:19
da novainvicta
è inquietante che una linea di codice possa ottenere i privilegi di amministrazione :-\
quello che non capisco è che valore bisogna "scrivere" sulla porta per dire:
> sul PIN numero 5 ( tanto per fare un esempio ) ci và il valore logico 1 ( quindi 5V se non sbaglio... ) ?
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: venerdì 22 agosto 2008, 19:52
da brus46
bhè questo è facile...
in pratica l'uscita della parallela è divisa in byte quindi in 8 bit
se vuoi un uno sul 5 pin allora dovrai avere questo byte in uscita:
00010000
che convertito in decimale fa: 16
ovvero il numero da mandare sulla parallela.
dipende dal comando alcuni funzionano in esadecimale... in quel caso devi riconvertire 16 in esadecimale.
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: venerdì 22 agosto 2008, 23:00
da ssaa
si, 5 V ma au una corrente di pochi milliampere. se devi farci qualcosa sono davvero troppo pochi. ti servono dei lach e dei transistor per costruire un circuito di potenza per utilizzare in maniera efficace la porta parallela per l'automazione.
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: lunedì 25 agosto 2008, 0:35
da brus46
a casa ho un'articolo interessante di qualche pagina su come usare la parallela.. se vuoi scannerizzo e te le mando

tanto sono 5-6 paginette di qualche anno fa...
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: lunedì 25 agosto 2008, 12:47
da ssaa
ok, perfetto!!!
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: martedì 26 agosto 2008, 11:32
da brus46
guarda appena ho tempo di attaccare lo scanner metto tutto qui:
http://www.sciallo.net/modules.php?name ... aParallela
fra l'altro un pezzo della mia tesi di maturità era proprio su questo... se ritrovo le slides metto anche quello...
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: sabato 30 agosto 2008, 15:15
da brus46
sto caricando ora

Re: [Progetto] Programma per utilizzo porta parallela
Inviato: sabato 30 agosto 2008, 15:24
da mistermax80
Mi metto in coda voglio avere notizie sull'argomento...

Re: [Progetto] Programma per utilizzo porta parallela
Inviato: sabato 30 agosto 2008, 16:01
da brus46
ciao a tutti!
ho recuperto un mio vecchio programma "ParallelWorks"
è scritto in python e si lancia con python ParallelWorks.py
serve appunto a gestire la parallela, ingressi, uscite. pensate che le uscite sono pure programmabili come sequenze da eseguire (un pò come se fossero dei midi e gli 8 bit della parallela un piano

)
l'avevo fatto per la mia compagnia teatrale.. ci accendiamo i fari dello spettacolo con quel programmino
solo che sul mio vecchio pc funzia, su questo no... quindi credo che abbia delle dipendenze, appena le trovo ve le comunico!
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: sabato 30 agosto 2008, 16:08
da brus46
servono python vte, python parallel (e una porta parallela

)
Re: [Progetto] Programma per utilizzo porta parallela
Inviato: domenica 31 agosto 2008, 9:12
da brus46
Piccolo riassunto e aggiornamento delle cose caricate fra ieri e oggi all'indirizzo:
http://www.sciallo.net/modules.php?name ... aParallela
1- parallela.zip
E' un archivio contenente un articolo molto ben fatto sulla porta parallela che ne spiega il funzionamento e come fare per collegare esternamente circuiti elettrici
2- ParallelWorks.tar.gz
E' un programma scritto in python per gestire le uscite della porta parallela.
3- Parallela-C.tar.gz
E' un programma scritto in C che funziona da linea di comando per leggere e scrivere dalla parallela.
Il codice utilizza due librerie che gestiscono in modo semplice l'uso della parallela.
Per chi volesse capire come fare manualmente ad accedere alla parallela dovrebbe spulciare il file PortaParallela.h