
Ma CNC by julienmus
Débuté par julkien, févr. 26 2011 02:58
49 réponses à ce sujet
#22
Posté 23 mars 2011 - 08:53
bon sa y est j'y vois un peu plus claire
donc pour résumé, j'ai mon mon pc qui envoi du texte(Gcode)a l'arduino
l'utilisation du script pyhon n'était pas facile alors je me suis fais une petite interface sur vb pour envoyer le text
et je doit dire que je suis assez fier de moi :tare: (ben oui il y avais pas beaucoup de ressource sur google pour la communication Arduino => vb

capture prise en plein action :D
envoyer gcode vers arduino windows
donc pour résumé, j'ai mon mon pc qui envoi du texte(Gcode)a l'arduino
l'utilisation du script pyhon n'était pas facile alors je me suis fais une petite interface sur vb pour envoyer le text
et je doit dire que je suis assez fier de moi :tare: (ben oui il y avais pas beaucoup de ressource sur google pour la communication Arduino => vb

capture prise en plein action :D
envoyer gcode vers arduino windows
#25
Posté 24 mars 2011 - 09:21
bon pour la mécanique j'y suis pas encore me manque les moteur pour la grosse et ma µ-CNC a un problème "mécanique" sur l'axe y
je vous laisse le code en attendant
je l'ai commenté (un peu pour toi esprit ;) )
et j'ai laisser un gros point d'interrogation a la ligne 178 179
la carte me renvoi "huh?" et je sais pas quoi en faire
le pire c'est que comme j'utilise le firmware de reprap je n'ai pas trouver d'ou il vient ce "huh" (au passage je n'ai jamais vue un code arduino aussi compliqué :| )
j'attend vos retour
Imports System
Imports System.IO.Ports
Imports System.IO
Public Class Form1
Dim statbt1 As Boolean = False ' variable qui definie le status enable du boutton Lancer
Dim pause As Boolean = False ' cariable qui permet d'attendre les retour d'info de la carte
Dim ligne As String ' Variable contenant le texte de la ligne
Dim pourcentage As Integer 'variable qui me permet de incementer la progressbar
Dim nombreline As Integer 'variable qui me permet de incementer la progressbar ( ne marche pas encors)
Dim rx As String 'retour des commentaire de la carte arduino
Dim port As New SerialPort ' variable du port serie
Dim gcode As Object 'varible qui definie le fichier Gcode
'chargement de la form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.AddRange(SerialPort.GetPortNames) 'je recupere les port com dispo
ComboBox1.SelectedIndex = My.Settings.comboboxindex ' je charge les dernière paramètre utiliser (ben oui je sauvegarde les derniere donnée ;) )
End Sub
'clic sur bouton connexion
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
GroupBox3.Enabled = True 'active le groupe box "terminal"
Try 'et je connect
My.Settings.comboboxindex = ComboBox1.SelectedIndex ' je sauvegarde le parametre pour une prochaine utilisation
port.PortName = ComboBox1.SelectedItem 'definition du nom du port
port.BaudRate = NumericUpDown1.Value 'definition du port
port.Open() ' j'ouvre le port
Catch ex As ArgumentException 'si erreur je...
ajoutetext(ex.Message) ' je l'ajoute a la richtextbox
End Try
End Sub
'fonction qui se produit a la selection du port com
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Button5.Enabled = True 'buton connexion activé
NumericUpDown1.Enabled = True 'choix de la vitesse activer
End Sub
' fonction qui ajoute du text a la richtextbox
Private Sub ajoutetext(ByRef text As String)
RichTextBox1.Text = RichTextBox1.Text & text & vbCrLf
End Sub
'fonction qui retablie les option de base de connexion
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
NumericUpDown1.Value = 38400
ComboBox1.SelectedIndex = 0
End Sub
'clic sur parcourir
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim patch As String 'variable qui stock le nom du fichier
' ouverture de la fenetre selection du fichier
OpenFileDialog1.InitialDirectory = My.Settings.patchfile
OpenFileDialog1.Filter = "CnC files (*.cnc,nc)|*.cnc;*.nc|CnC files (*.cnc)|*.cnc|CnC files (*.nc)|*.nc|All files (*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.RestoreDirectory = True
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then ' si j'appuis sur ok alors ....
My.Settings.patchfile = OpenFileDialog1.InitialDirectory
patch = OpenFileDialog1.FileName 'je renseigne ma variable
TextBox1.Text = patch 'je l'affiche dans la text box
RichTextBox1.Enabled = True 'j'active la richtextbox
statbt1 = True 'j'active le bouton Lancer
gcode = File.OpenText(patch).ReadToEnd 'je lis le fichier
RichTextBox1.Text = File.OpenText(patch).ReadToEnd 'je le mets dans la richtextbox
'bon la c 'est en travaux
' Dim n = 0
'While gcode.readline()
' n += 1
' nombreline = n
' FileClose()
'End While
End If
End Sub
' clic sur bouton lancer et j'active une tache qui travaile en fond
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
statbt1 = False 'je desactive le buton Lancer pour eviter de planter ;)
End Sub
'fonction qui remet la progressbar a zero (je c plus pourquoi j'ai fais sa )
Sub reset()
ToolStripProgressBar1.Value = 0
End Sub
'cest la que tou ce passe :
' dans cette fonction je lis le fichier ligne par ligne
Sub lire()
Dim rapport As Double = 100 / nombreline
Try
Dim monStreamReader As New StreamReader(TextBox1.Text) 'Stream pour la lecture
pourcentage = nombreline
Do
If pause = True Then 'Si c'est en pause
If statbt1 = True Then
ligne = Nothing
rx = port.ReadLine 'je lis le port serie
End If
ElseIf pause = False Then 'si c'est pas en pause
ligne = monStreamReader.ReadLine 'je lis la ligne suivante
port.WriteLine(ligne) 'j'envoie au port serie
rx = port.ReadLine ' je lis le port serie
pause = True 'je met en pose au cas ou la carte arduino ne ma pas envoyer d'info
If pourcentage >= 1 Then 'EN TRAVAUX
pourcentage = pourcentage - 1 'EN TRAVAUX
ElseIf pourcentage = 0 Then 'EN TRAVAUX
pourcentage = 0 'EN TRAVAUX
End If 'EN TRAVAUX
If statbt1 = True Then
ligne = Nothing
End If
BackgroundWorker1.ReportProgress(pourcentage) 'EN TRAVAUX
End If
Loop Until ligne Is Nothing 'si la ligne est vide alors j'arrete le loop
monStreamReader.Close()
statbt1 = True
BackgroundWorker1.Dispose()
Catch ex As Exception 'gestion des erreur
MsgBox(ex.Message)
BackgroundWorker1.Dispose()
End Try
End Sub
'clic sur bouton annulé
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
BackgroundWorker1.CancelAsync()
If BackgroundWorker1.CancellationPending = True Then
MsgBox("operation annulé par demande de l'utilisateur!")
statbt1 = True
BackgroundWorker1.Dispose()
End If
End Sub
'alors cette fonction est equivalente a "void loop()"des petit arduino sauf que l'on peut activé la boucle ou pas !!!
'donc dans notre cas elle est tout le temps active
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ToolStripProgressBar1.Maximum = nombreline 'EN TRAVAUX
Dim info As Boolean = InStr(rx, "ok") 'si la carte envoi "ok" info passe a true
If info = True Then 'donc si info = true
pause = False 'j 'enleve la pause
End If
Label4.Text = rx
info = InStr(rx, "Huh?") 'ah oui la parcontre je ne pige pas trop encore pourkoi la carte envoi sa je pense qu'elle ne doit pas comprendre certain ligne du gcode
If info = True Then 'alors du coup pour le moment j'enleve la pose
pause = False
End If
Button1.Enabled = statbt1
ToolStripStatusLabel1.Text = BackgroundWorker1.IsBusy
If statbt1 = True Then
reset()
End If
End Sub
'tache de fond
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
lire() ' qui lance la fonction lire
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ToolStripProgressBar1.Value = e.ProgressPercentage
'ici la tache de fond fait varier la progressbar
End Sub
End Class
[/code]
je laisse libre l’installe de Send To Arduino si quelqu'un le veux ( mais bon c interdit au linuxeux :p )
je vous laisse le code en attendant
je l'ai commenté (un peu pour toi esprit ;) )
et j'ai laisser un gros point d'interrogation a la ligne 178 179
la carte me renvoi "huh?" et je sais pas quoi en faire
le pire c'est que comme j'utilise le firmware de reprap je n'ai pas trouver d'ou il vient ce "huh" (au passage je n'ai jamais vue un code arduino aussi compliqué :| )
j'attend vos retour
Imports System
Imports System.IO.Ports
Imports System.IO
Public Class Form1
Dim statbt1 As Boolean = False ' variable qui definie le status enable du boutton Lancer
Dim pause As Boolean = False ' cariable qui permet d'attendre les retour d'info de la carte
Dim ligne As String ' Variable contenant le texte de la ligne
Dim pourcentage As Integer 'variable qui me permet de incementer la progressbar
Dim nombreline As Integer 'variable qui me permet de incementer la progressbar ( ne marche pas encors)
Dim rx As String 'retour des commentaire de la carte arduino
Dim port As New SerialPort ' variable du port serie
Dim gcode As Object 'varible qui definie le fichier Gcode
'chargement de la form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ComboBox1.Items.AddRange(SerialPort.GetPortNames) 'je recupere les port com dispo
ComboBox1.SelectedIndex = My.Settings.comboboxindex ' je charge les dernière paramètre utiliser (ben oui je sauvegarde les derniere donnée ;) )
End Sub
'clic sur bouton connexion
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
GroupBox3.Enabled = True 'active le groupe box "terminal"
Try 'et je connect
My.Settings.comboboxindex = ComboBox1.SelectedIndex ' je sauvegarde le parametre pour une prochaine utilisation
port.PortName = ComboBox1.SelectedItem 'definition du nom du port
port.BaudRate = NumericUpDown1.Value 'definition du port
port.Open() ' j'ouvre le port
Catch ex As ArgumentException 'si erreur je...
ajoutetext(ex.Message) ' je l'ajoute a la richtextbox
End Try
End Sub
'fonction qui se produit a la selection du port com
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
Button5.Enabled = True 'buton connexion activé
NumericUpDown1.Enabled = True 'choix de la vitesse activer
End Sub
' fonction qui ajoute du text a la richtextbox
Private Sub ajoutetext(ByRef text As String)
RichTextBox1.Text = RichTextBox1.Text & text & vbCrLf
End Sub
'fonction qui retablie les option de base de connexion
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
NumericUpDown1.Value = 38400
ComboBox1.SelectedIndex = 0
End Sub
'clic sur parcourir
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim patch As String 'variable qui stock le nom du fichier
' ouverture de la fenetre selection du fichier
OpenFileDialog1.InitialDirectory = My.Settings.patchfile
OpenFileDialog1.Filter = "CnC files (*.cnc,nc)|*.cnc;*.nc|CnC files (*.cnc)|*.cnc|CnC files (*.nc)|*.nc|All files (*.*)|*.*"
OpenFileDialog1.FilterIndex = 1
OpenFileDialog1.RestoreDirectory = True
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then ' si j'appuis sur ok alors ....
My.Settings.patchfile = OpenFileDialog1.InitialDirectory
patch = OpenFileDialog1.FileName 'je renseigne ma variable
TextBox1.Text = patch 'je l'affiche dans la text box
RichTextBox1.Enabled = True 'j'active la richtextbox
statbt1 = True 'j'active le bouton Lancer
gcode = File.OpenText(patch).ReadToEnd 'je lis le fichier
RichTextBox1.Text = File.OpenText(patch).ReadToEnd 'je le mets dans la richtextbox
'bon la c 'est en travaux
' Dim n = 0
'While gcode.readline()
' n += 1
' nombreline = n
' FileClose()
'End While
End If
End Sub
' clic sur bouton lancer et j'active une tache qui travaile en fond
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
BackgroundWorker1.RunWorkerAsync()
statbt1 = False 'je desactive le buton Lancer pour eviter de planter ;)
End Sub
'fonction qui remet la progressbar a zero (je c plus pourquoi j'ai fais sa )
Sub reset()
ToolStripProgressBar1.Value = 0
End Sub
'cest la que tou ce passe :
' dans cette fonction je lis le fichier ligne par ligne
Sub lire()
Dim rapport As Double = 100 / nombreline
Try
Dim monStreamReader As New StreamReader(TextBox1.Text) 'Stream pour la lecture
pourcentage = nombreline
Do
If pause = True Then 'Si c'est en pause
If statbt1 = True Then
ligne = Nothing
rx = port.ReadLine 'je lis le port serie
End If
ElseIf pause = False Then 'si c'est pas en pause
ligne = monStreamReader.ReadLine 'je lis la ligne suivante
port.WriteLine(ligne) 'j'envoie au port serie
rx = port.ReadLine ' je lis le port serie
pause = True 'je met en pose au cas ou la carte arduino ne ma pas envoyer d'info
If pourcentage >= 1 Then 'EN TRAVAUX
pourcentage = pourcentage - 1 'EN TRAVAUX
ElseIf pourcentage = 0 Then 'EN TRAVAUX
pourcentage = 0 'EN TRAVAUX
End If 'EN TRAVAUX
If statbt1 = True Then
ligne = Nothing
End If
BackgroundWorker1.ReportProgress(pourcentage) 'EN TRAVAUX
End If
Loop Until ligne Is Nothing 'si la ligne est vide alors j'arrete le loop
monStreamReader.Close()
statbt1 = True
BackgroundWorker1.Dispose()
Catch ex As Exception 'gestion des erreur
MsgBox(ex.Message)
BackgroundWorker1.Dispose()
End Try
End Sub
'clic sur bouton annulé
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
BackgroundWorker1.CancelAsync()
If BackgroundWorker1.CancellationPending = True Then
MsgBox("operation annulé par demande de l'utilisateur!")
statbt1 = True
BackgroundWorker1.Dispose()
End If
End Sub
'alors cette fonction est equivalente a "void loop()"des petit arduino sauf que l'on peut activé la boucle ou pas !!!
'donc dans notre cas elle est tout le temps active
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ToolStripProgressBar1.Maximum = nombreline 'EN TRAVAUX
Dim info As Boolean = InStr(rx, "ok") 'si la carte envoi "ok" info passe a true
If info = True Then 'donc si info = true
pause = False 'j 'enleve la pause
End If
Label4.Text = rx
info = InStr(rx, "Huh?") 'ah oui la parcontre je ne pige pas trop encore pourkoi la carte envoi sa je pense qu'elle ne doit pas comprendre certain ligne du gcode
If info = True Then 'alors du coup pour le moment j'enleve la pose
pause = False
End If
Button1.Enabled = statbt1
ToolStripStatusLabel1.Text = BackgroundWorker1.IsBusy
If statbt1 = True Then
reset()
End If
End Sub
'tache de fond
Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
lire() ' qui lance la fonction lire
End Sub
Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
ToolStripProgressBar1.Value = e.ProgressPercentage
'ici la tache de fond fait varier la progressbar
End Sub
End Class
[/code]
je laisse libre l’installe de Send To Arduino si quelqu'un le veux ( mais bon c interdit au linuxeux :p )
#29
Posté 04 avril 2011 - 02:03
donc oui j'ai appris un peu plus sur le code
la carte retourne un "huh" quand elle ne comprend pas certaine commande "gcode"
exemple : le changement d'outil
mais j'ai outre passer en faisant un bouton "commande suivant"
je crois que par la suite je devrais faire une autre rubrique pour les soft que j'utilise car j'essai de rester dans le monde du libre ( :heu: c'est pas toujours évident sur xp )
maintenant j'ai hâte de recevoir mes moteurs pour commencer mes tests ( bon ok il reste l'accouplement a faire o_O )
@ Alexis t’inquiète, moi aussi j'ai plein d'idée ;) , le 44 c'est pas loin, alors, si un jour tu en as besoin n’hésite pas !! :D
mais a mon avis il vas me falloir plus d'un test avant que sa marche nickel
la carte retourne un "huh" quand elle ne comprend pas certaine commande "gcode"
exemple : le changement d'outil
mais j'ai outre passer en faisant un bouton "commande suivant"
je crois que par la suite je devrais faire une autre rubrique pour les soft que j'utilise car j'essai de rester dans le monde du libre ( :heu: c'est pas toujours évident sur xp )
maintenant j'ai hâte de recevoir mes moteurs pour commencer mes tests ( bon ok il reste l'accouplement a faire o_O )
@ Alexis t’inquiète, moi aussi j'ai plein d'idée ;) , le 44 c'est pas loin, alors, si un jour tu en as besoin n’hésite pas !! :D
mais a mon avis il vas me falloir plus d'un test avant que sa marche nickel
#30
Posté 06 avril 2011 - 01:45
j'ai ajouter des commande manuel a l'appli vb
il envoi directement des commande g code a la carte Arduino mais a la demande
une petite photo pour illustrer

et voici le code que j'ai ajouté
Dim avance_MM As Integer = 1 'variable de l'avancé en mm
Dim Xaxe As Integer ' varialble de coordonée de X
Dim Yaxe As Integer 'varialble de coordonée de y
Dim Zaxe As Integer 'varialble de coordonée de z
Private Sub Button_activer_Commande_Manuel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
If Button13.Text = "Activé Commande Manuel " Then ' quand j'active les commande manuel
GroupBox4.Enabled = True 'j'active le groupbox : commande manuel
Button13.Text = "Désactivé commande manuel" 'je change le text du bouton
N_bloc = 1 ' j'initialise les bloc de travail a 1
port.WriteLine("N" & N_bloc & "0 G17 G40 G80 G90") 'et j'envois les commande d'initialisation
N_bloc = N_bloc + 1 'j'incremente le bloc de travail
port.Dispose() 'je rends dispo les ressource
ElseIf Button13.Text = "Désactivé commande manuel" Then
port.WriteLine("M2") 'j'envoi la commande Fin de travail (Gcode)
Button13.Text = "Activé Commande Manuel " 'je change le text du bouton
GroupBox4.Enabled = False 'je désactive les commande manuel
port.Dispose() 'je rends dispo les ressource
End If
End Sub
'ici je dertermine le pas d'avance
Private Sub CheckBox_AvanceRapideCheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then ' si checkbox est cocher alors ....
avancerapide = "G00 " 'je mets la fonction G00 (langague Gcode )
avance_MM = 10 ' je mets 10 en valeur sur le pas d'avance
Else '... sinon je ...
avancerapide = Nothing 'met la valeur nul
avance_MM = 1 ' et le pas a 1 pour pluss de precision
End If
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe + avance_MM & " Y" & Yaxe & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X1 Y0 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe + avance_MM & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X0 Y1 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose()
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe & " Z" & Zaxe + avance_MM) 'envoi la valeur : par exemple : N20 X0 Y0 Z1 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe - avance_MM & " Y" & Yaxe & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X-1 Y0 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe - avance_MM & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X0 Y-1 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe & " Z" & Zaxe - avance_MM) 'envoi la valeur : par exemple : N20 X0 Y0 Z-1 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub CheckBoxActivationfraise_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
port.WriteLine("N" & N_bloc & "0 M3 D1") 'j'active le moteur de broche
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
ElseIf CheckBox2.Checked = False Then
port.WriteLine("N" & N_bloc & "0 M5 D1")
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End If
End Sub[/code]
[edit 1]j'ai oublier de préciser
pour un petit clin d'oeil a Robotix j'ai voulu intégrer les logo au prog :D

bon le dessin c'est juste pour le plaisir :tare:
il envoi directement des commande g code a la carte Arduino mais a la demande
une petite photo pour illustrer

et voici le code que j'ai ajouté
Dim avance_MM As Integer = 1 'variable de l'avancé en mm
Dim Xaxe As Integer ' varialble de coordonée de X
Dim Yaxe As Integer 'varialble de coordonée de y
Dim Zaxe As Integer 'varialble de coordonée de z
Private Sub Button_activer_Commande_Manuel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click
If Button13.Text = "Activé Commande Manuel " Then ' quand j'active les commande manuel
GroupBox4.Enabled = True 'j'active le groupbox : commande manuel
Button13.Text = "Désactivé commande manuel" 'je change le text du bouton
N_bloc = 1 ' j'initialise les bloc de travail a 1
port.WriteLine("N" & N_bloc & "0 G17 G40 G80 G90") 'et j'envois les commande d'initialisation
N_bloc = N_bloc + 1 'j'incremente le bloc de travail
port.Dispose() 'je rends dispo les ressource
ElseIf Button13.Text = "Désactivé commande manuel" Then
port.WriteLine("M2") 'j'envoi la commande Fin de travail (Gcode)
Button13.Text = "Activé Commande Manuel " 'je change le text du bouton
GroupBox4.Enabled = False 'je désactive les commande manuel
port.Dispose() 'je rends dispo les ressource
End If
End Sub
'ici je dertermine le pas d'avance
Private Sub CheckBox_AvanceRapideCheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked = True Then ' si checkbox est cocher alors ....
avancerapide = "G00 " 'je mets la fonction G00 (langague Gcode )
avance_MM = 10 ' je mets 10 en valeur sur le pas d'avance
Else '... sinon je ...
avancerapide = Nothing 'met la valeur nul
avance_MM = 1 ' et le pas a 1 pour pluss de precision
End If
End Sub
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe + avance_MM & " Y" & Yaxe & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X1 Y0 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe + avance_MM & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X0 Y1 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose()
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe & " Z" & Zaxe + avance_MM) 'envoi la valeur : par exemple : N20 X0 Y0 Z1 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe - avance_MM & " Y" & Yaxe & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X-1 Y0 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe - avance_MM & " Z" & Zaxe) 'envoi la valeur : par exemple : N20 X0 Y-1 Z0 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click
port.WriteLine("N" & N_bloc & "0 " & avancerapide & "X" & Xaxe & " Y" & Yaxe & " Z" & Zaxe - avance_MM) 'envoi la valeur : par exemple : N20 X0 Y0 Z-1 en vitesse lente
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End Sub
Private Sub CheckBoxActivationfraise_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged
If CheckBox2.Checked = True Then
port.WriteLine("N" & N_bloc & "0 M3 D1") 'j'active le moteur de broche
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
ElseIf CheckBox2.Checked = False Then
port.WriteLine("N" & N_bloc & "0 M5 D1")
N_bloc = N_bloc + 1 'j'incremente le le numeros de bloc de travail
port.Dispose() ' je rends la ressource dispo
End If
End Sub[/code]
[edit 1]j'ai oublier de préciser
pour un petit clin d'oeil a Robotix j'ai voulu intégrer les logo au prog :D

bon le dessin c'est juste pour le plaisir :tare:
#35
Posté 10 avril 2011 - 03:09
Jbot va lancer une mode ! :D
Mais c'est vrai que pourquoi pas... Finalement on se cache tous derrière des images pas toujours très représentatives.
Bon après Jbot se cache derrière ses lunettes mais bon...
Je propose qu'on close ici le HS ? :)
Si tu nous parlais de tes avancées ? Tu as reçu tes moteurs ? (Ou bien pas le temps avec ta petite roboticienne ? ;) )
Mais c'est vrai que pourquoi pas... Finalement on se cache tous derrière des images pas toujours très représentatives.
Bon après Jbot se cache derrière ses lunettes mais bon...
Je propose qu'on close ici le HS ? :)
Si tu nous parlais de tes avancées ? Tu as reçu tes moteurs ? (Ou bien pas le temps avec ta petite roboticienne ? ;) )
#36
Posté 10 avril 2011 - 05:41
oui j'ai bien reçu les moteurs mais c'est assez dur de trouver du temps pour avancer sur ce projet
donc pour le moment voila ou j'en suis :
les moteurs sont assez puissants pour entrainer les tiges filetés
mais les tiges ne sons pas assez rigide ( qui va nuire a la précision! :( )
donc pour le moment voila ou j'en suis :
les moteurs sont assez puissants pour entrainer les tiges filetés
mais les tiges ne sons pas assez rigide ( qui va nuire a la précision! :( )
#37
Posté 12 avril 2011 - 08:35
bon du coup pas le choix je suis obliger d'augmenté le diamètre des tige fileté
pour gagné de la place j'utilisais des tiges diam 5
donc en gros maintenant je dois ajouter des entre-toise pour ajouter de la place entre les table je vais passer a un diamètre de 6 et je vais diminuer la longueur des tiges au maximum
pour gagné de la place j'utilisais des tiges diam 5
donc en gros maintenant je dois ajouter des entre-toise pour ajouter de la place entre les table je vais passer a un diamètre de 6 et je vais diminuer la longueur des tiges au maximum
#38
Posté 14 avril 2011 - 08:16
j'ai découvert hier soir comment faire facilement une entretoise de translation (voir image)pour une tige filé M6

il s'agit d'un domino de 16² que j'ai tous simplement taraudé, de plus, elle a déjà les parti prevu pour la fixation et a suffisamment de jeu pour la tige
je la prendrais en Photo et vous la montrerais ce soir

il s'agit d'un domino de 16² que j'ai tous simplement taraudé, de plus, elle a déjà les parti prevu pour la fixation et a suffisamment de jeu pour la tige
je la prendrais en Photo et vous la montrerais ce soir
Répondre à ce sujet

1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users