[Progetto] Programma per utilizzo porta parallela

Installazione, configurazione e uso di programmi e strumenti.
Scrivi risposta
ssaa
Prode Principiante
Messaggi: 210
Iscrizione: lunedì 19 marzo 2007, 13:49
Località: Castellammare di Stabia-Napoli

[Progetto] Programma per utilizzo porta parallela

Messaggio 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.
Unix Is user friendly, it's just selective about who its friend are!
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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 :D
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
ssaa
Prode Principiante
Messaggi: 210
Iscrizione: lunedì 19 marzo 2007, 13:49
Località: Castellammare di Stabia-Napoli

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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!
Unix Is user friendly, it's just selective about who its friend are!
novainvicta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 811
Iscrizione: sabato 6 ottobre 2007, 11:32
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio da novainvicta »

@brus46
quindi in teoria posso leggerci e scriverci anche con il PHP ?
( mi serviva comandare la parallela da interfaccia web )
ssaa
Prode Principiante
Messaggi: 210
Iscrizione: lunedì 19 marzo 2007, 13:49
Località: Castellammare di Stabia-Napoli

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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;
}
Unix Is user friendly, it's just selective about who its friend are!
novainvicta
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 811
Iscrizione: sabato 6 ottobre 2007, 11:32
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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... ) ?
Ultima modifica di novainvicta il venerdì 22 agosto 2008, 23:59, modificato 1 volta in totale.
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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.
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
ssaa
Prode Principiante
Messaggi: 210
Iscrizione: lunedì 19 marzo 2007, 13:49
Località: Castellammare di Stabia-Napoli

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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.
Unix Is user friendly, it's just selective about who its friend are!
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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...
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
ssaa
Prode Principiante
Messaggi: 210
Iscrizione: lunedì 19 marzo 2007, 13:49
Località: Castellammare di Stabia-Napoli

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio da ssaa »

ok, perfetto!!!
Unix Is user friendly, it's just selective about who its friend are!
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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...
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio da brus46 »

sto caricando ora ;)
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
Avatar utente
mistermax80
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2291
Iscrizione: mercoledì 20 giugno 2007, 14:07
Località: Anguillara Sabazia (RM)

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio da mistermax80 »

Mi metto in coda voglio avere notizie sull'argomento... :)
U-HH-10.04,Asus Z9200vc(A6vc),nVidia 6200TC
X-HH-8.04,Asus k-7 800mhz,radeon9200

CONEXANT [url=http://forum.ubuntu-it.org/viewtopic.ph ... 0#p1100150]NVIDIA
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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 XD )

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!
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio da brus46 »

servono python vte, python parallel (e una porta parallela ;) )
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
Avatar utente
brus46
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1714
Iscrizione: martedì 13 giugno 2006, 22:31
Località: Palazzolo Milanese (MI)
Contatti:

Re: [Progetto] Programma per utilizzo porta parallela

Messaggio 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
E nel vedere quest'uomo che muore, madre io provo dolore,
Nella pietà che non cede al rancore, madre ho imparato l'amore
Sciallo, il sito web del vero ubuntista Scialloso Usa la ricerca
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti