spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica di base > Informatica > P. in Visual Basic

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #1  
Vecchio 15-03-2010, 21.37.31
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito problemino con la rs232

salve a tutti... avrei un problema riguardante la programmazione in VB; allora:
sto creando un CNC con dei microcontrollori, circuito elettronico ( logico e di potenza ) già testati e funzionanti, adesso ,amca solo un programma in visual basic che mi invia i dati al CNC, questi dati devono essere immessi su delle text box e poi trasferite in seriale ad un microcontrollore, quest'ultimo aspetta inizialmente un comando di inizializzazione, poi invia una richiesta di trasmissione, aspetta che gli sia inviata la posizione da raggiungere, una volta raggiunta quella posizione reinvia una richiesta di trasmissione al PC, che invierà la nuova posizione da raggiungere, qualcuno saprebbe darmi qualche dritta?!... meglio se mi butto sulle USB e poi metto un USB-> RS232 ... avevo in mente di utilizare VB6, meglio qualche altra versione?!...

procedure particolari?!... quali librerie dovrò studiare?!....

qualcuno potrebbe postarmi qualche tutorial da seguire?!.... grazie mille a tutti...
Rispondi citando
  #2  
Vecchio 15-03-2010, 22.01.24
L'avatar di sergio_camici
sergio_camici sergio_camici non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 53
Messaggi: 2,665
Potenza reputazione: 298
sergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua fama
Predefinito

VB6?
Perchè vuoi usare un prodotto morto, che ti darà solo problemi?
Prendi in considerazione C#.
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
Rispondi citando
  #3  
Vecchio 16-03-2010, 04.24.10
gyppe gyppe non è collegato
Robottaro sostenitore
 
Data registrazione: 24-03-2009
Residenza: sardegna
Età : 38
Messaggi: 1,250
Potenza reputazione: 92
gyppe La sua reputazione è oltre la sua famagyppe La sua reputazione è oltre la sua fama
Predefinito

Tempo fa cominciai anche io un progetto simile, con il software sul pc aprivo un file dxf(si trovano delle librerie già pronte per visual studio), leggevo una per una le coordinate di tutti i segmenti, scomponevo i cerchi anche loro in segmenti e ne memorizzavo le coordinate, mi fermai solo sul testo quello era un po troppo complicato, avrei poi inviato le coordinate ad una scheda di controllo che a quel punto doveva solo gestire i motori.
Però è un lavoro davvero inutile, ci si reinventa l'acqua calda, ci sono software già pronti, alcuni anche free che fanno esattamente lo stesso ma in modo molto evoluto, esempio mach3.

Anche perchè non ci si può limitare a salvarsi le coordinate ma vanno eseguiti molti controlli e la fresa va mossa in una certa maniera, esempio c'è la fase di affondamento, bisogna gestire la profondità e in quantità diversa per ogni punto, bisogna considerare il diametro fresa e ricalcolare in modo opportuno tutte le coordinate, bisogna limitare la velocità di avanzamento per non spaccare le frese, bisogna tener conto che fresando esternamente viene fuori una cosa mentre internamente è completamente diversa, bisogna anche tener conto che molte aree vanno svuotate e quindi generati i percorsi per farlo, e chissà quante altre mille cose che non ricordo e quante altre milioni non so.

Usando i software appositi è molto più semplice, basta un pc e una scheda finali senza nient'altro ma avrai un prodotto professionale.
Oppure visto che hai già l'elettronica personale pronta, pensa piuttosto ad interfacciarti con questi software, ho visto che alcuni hanno la possibilità di inviare i dati anche tramite seriale, un tipo tempo fa infatti fece la movimentazione da solo, usando dei servomotori industriali e alcuni microcontrollori che gestivano il posizionamento pid per tutti gli assi, gran lavorone davvero!
__________________
Visita: Cheap-hack
Rispondi citando
  #4  
Vecchio 16-03-2010, 08.25.44
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Monselice (PD)
Età : 56
Messaggi: 5,458
Potenza reputazione: 417
marnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua famamarnic La sua reputazione è oltre la sua fama
Predefinito

Dal post non ho capito bene, di solito i SW sono due:
un cad/cam che dal disegno ti permette di generare il percorso utensile con tutti i parametri che dice gyppe, velocità, lavorazione interna esterna ecc. Questo sw genera un file tipo GCode che è un file di testo con la sequenza delle operazioni e dei parametri utili alla macchina, è uno standard, poi ce ne sono anche altri ma il GCode è tra i più comuni e trovi facilmente in rete tutte le specifiche.
Altro sw è quello che prende il gcode e invia sotto varie forme i comandi alla macchina, nel caso più semplice si usa direttamente la parallela LPT e in sostanza viene posto alto o basso il pin necessario ad esempio all'avvio della fresa, al selettore di direzione fino ad arrivare alla sequenza di 101010.... che sono gli step che devono fare i motori.
Mentre credo che il primo sw sia molto complesso da realizzare (non a caso costano un botto) per il secondo ho visto alcune realizzazioni che se pur "essenziali" fanno il loro lavoro, la vera difficoltà è mandare segnali nei tempi voluti alla periferica, questo perchè windows non sempre è trasparente su questi aspetti provocando limiti importanti nella massima velocità
__________________
Marnic
Roboitalia Staff
www.fabbrimarco.com
Rispondi citando
  #5  
Vecchio 16-03-2010, 09.06.20
gyppe gyppe non è collegato
Robottaro sostenitore
 
Data registrazione: 24-03-2009
Residenza: sardegna
Età : 38
Messaggi: 1,250
Potenza reputazione: 92
gyppe La sua reputazione è oltre la sua famagyppe La sua reputazione è oltre la sua fama
Predefinito

In effetti è un bel macello e ancora non ho capito perfettamente come funziona tutto quanto, all'inizio sembrava facile, prendo un file con le coordinate e le invio alla fresa, quando poi ho cominciato ad approfondire ho lasciato perdere
__________________
Visita: Cheap-hack
Rispondi citando
  #6  
Vecchio 16-03-2010, 16.35.39
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

ragazzi, grazie a tutti... parto dal con dare la risposta a sergio :

sergio_camici
VB6?
Perchè vuoi usare un prodotto morto, che ti darà solo problemi?
Prendi in considerazione C#.

risp: beh, dato che l'intero progetto dovrà essere presentato a scuola entro la fine dell'anno per portarlo all'esame di stato devo mentenermi in quegli che sono gli argomenti scolastici, e dato che il C a scuola non l'hanno fatto affrontare, sono costretto al visual basic.

per gli altri che mi consigliano di appoggiarmi ad un software gia fatto:
potreste spiegarvi meglio?!... mi sapreste dare qualche nome, indicare le tecniche di colloquio?!... grazie mille....

per gyppe :
non sai che voglia ho di mandare tutto all'aria anch'io, solo che è un bel peccato, sono arrivato fino a questo punto, non posso farmi buttare a terra da una comunicazione seriale... XD
Rispondi citando
  #7  
Vecchio 17-03-2010, 21.21.00
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 48
Messaggi: 2,962
Potenza reputazione: 327
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Anche se ti consiglio Visual Studio 2008, con questo sorgente VB6 puoi inviare, tramite il controllo MSComm (devi inserirlo da: project>component>controls>Microsoft Comm Control 6.0), dati seriali.

Codice:
Dim DATI As String

Private Sub Apri_COM_Click()
On Error GoTo Port_Open_Error

MSComm1.CommPort = cmbCom.Text
MSComm1.Settings = "115200,n,8,1"

MSComm1.PortOpen = True



Port_Open_Error:
    
    If Err.Number = 8002 Then
        MsgBox "Questa porta COM non è disponibile !", vbExclamation
    End If
    If Err.Number = 8005 Then
        MsgBox "Questa porta COM è già in uso!", vbExclamation
         
         End If
         If Err.Number = 8018 Then
        MsgBox "Devi prima conneterti !", vbExclamation
    End If
    Err.Clear
End Sub

Private Sub Invia_Click()

DATI = Text1.text

MSComm1.Output = "DATI"

End Sub

Private Sub Form_Load()
        With MSComm1
          cmbCom.Clear
          For X = 1 To 255
            Err.Clear
            If .PortOpen = True Then .PortOpen = False
            On Error Resume Next
            .CommPort = X
            .PortOpen = True
            If Err.Number = 0 Then
              cmbCom.AddItem Trim(CStr(X))
            End If
            .PortOpen = False
          Next X
        End With
End Sub


Private Sub Command3_Click()

MSComm1.PortOpen = False
Unload Me
End Sub


Nel codice esempio ho messo una variabile stringa, dovrai poi adattare sia la variabile che la sintassi in base alle esigenze del dispositivo con il quale devi comunicare e sempre in conformità a quest'ultimo dovrai adattare i parametri velocità, bit, parità, bit di stop (nella parte in rosso). Quando darai lo start, nel combo ti appariranno le com disponibili: seleziona quella giusta. Verifica inoltre che la com, oltre che essere quella giusta, sia settata anche nel sistema nella maniera corretta (start > pannello di controllo > sistema > gestione dispositivi > porte com > [trovi quella giusta] click dx > proprietà > [metti a posto i parametri] > applica ). Inserici ciò che devi inviare nel textbox e premi invia. Auguri e spero che vada

Ciao Antonio

Ultima modifica di Caronte : 17-03-2010 alle ore 22.19.09
Rispondi citando
  #8  
Vecchio 18-03-2010, 14.39.51
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

caronte, sei un grande!!!... testo subito il tutto e ti faccio sapere... grazie mille!!!!!...
Rispondi citando
  #9  
Vecchio 18-03-2010, 15.31.58
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

ciao caronte... allora ti posto i miei problemi:

nell'andare ad inviare un dato sulla seriale per esempio 4 (00000100)
succede che il microcontrollore che deve recepire questo numero legge 52 (000110100), ho cercato di cambiare l'impostazione del programma facendo :

Private Sub Invia_Click()
Dim DATI As Integer
DATI = Val(Text1.Text)
MSComm1.Output = DATI
End Sub

succede che VB ritorna l'errore:
Run-time'380':
invalid property value

indicando la riga:
MSComm1.Output = DATI
................................
a questo punto mi chiedo perchè il valore è inappropriato?!.... cos è k sto sbagliando?!
Rispondi citando
  #10  
Vecchio 18-03-2010, 15.44.39
L'avatar di sergio_camici
sergio_camici sergio_camici non è collegato
Administrator
 
Data registrazione: 23-05-2002
Residenza: Binasco (MI)
Età : 53
Messaggi: 2,665
Potenza reputazione: 298
sergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua famasergio_camici La sua reputazione è oltre la sua fama
Predefinito

Devi trasmettere un carattere alla volta e di ciscun carattere devi trasmettere il suo codice ASCII.

Infatti il carattere "4" ha codice ASCII 52
Se volevi trasmettere 4 dovevi mettere CHR(4)

MID per prendere il singolo carattere
ASC per ricavare il codice ASCII
CHR per ottenere un preciso char.
__________________
ciao
Sergio
---
Hai deciso di costruire un robot? Bene...
Cominciamo dalle brutte notizie: non e' facile...
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
problemino rccdcc Elettronica 6 29-10-2010 17.55.07
Problemino con interrupt Italia Elettronica 2 07-10-2009 10.34.33
ho un problemino con wxdevc++ angel10 P. in C, C++ 0 31-01-2008 16.34.59
Problemino ...... Charlie Elettronica 6 01-02-2006 20.49.34
problemino con una macro reda P. in C, C++ 2 26-05-2005 18.57.47


Tutti gli orari sono GMT. Adesso sono le: 11.23.01.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB