Aller au contenu


Photo
- - - - -

Ma CNC by julienmus


49 réponses à ce sujet

#21 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 17 mars 2011 - 07:12

C'est assez sympa ta "micro-CNC". :)
C'est pas mal pour faire des test ou du mini-usinage, j'adore !

#22 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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



Image IPB

capture prise en plein action :D



envoyer gcode vers arduino windows

#23 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 23 mars 2011 - 09:44

Ça a l'air cool tout ça !
Et tu arrives à commander tes petits moteurs ?

N'hésites pas à poster le code, même si moi je n'ai encore jamais fais de VB, ça en intéressera certainement certains. ;)

#24 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 23 mars 2011 - 11:40

N'hésites pas a poster une vidéo surtout qu'on voit comment ca marche ^^

#25 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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 )

#26 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 02 avril 2011 - 10:16

bon voila j'ai commandé mes moteur chez selectronic

ben oui il etait pu dispo chez sparkfun mais bon au moin ils m'arriverons plus vite :)

#27 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 03 avril 2011 - 08:07

Et au niveau du code, tu as compris ce qu'il se passait ? Continue d'avancer, je ne dois pas être le seul à suivre. ;)

#28 Hexa Emails

Hexa Emails

    Membre passionné

  • Membres
  • PipPipPip
  • 439 messages
  • Gender:Male

Posté 03 avril 2011 - 08:31

J'avoue que je le suis aussi de près! si tu as besoin de pièces tests n'hésites pas j'ai quelques idées ^^

#29 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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


#30 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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

Image IPB



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

Image IPB

bon le dessin c'est juste pour le plaisir :tare:

#31 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 06 avril 2011 - 02:07

Mais qu'est ce que c'est que ce fond d'écran o_O

#32 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 06 avril 2011 - 02:12

[quote"Jbot"]Mais qu'est ce que c'est que ce fond d'écran o_O[/quote]
c'est un pote a moi qui bosse dans une hotline moi sa me fait bien marrer :D

#33 Jbot

Jbot

    Membre chevronné

  • Membres
  • PipPipPipPip
  • 801 messages
  • Gender:Male
  • Location:Paris

Posté 06 avril 2011 - 02:18

Ca pique les yeux et on en oublie de regarder le petit logo cocotix à droite :p

#34 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 10 avril 2011 - 02:13

il va faloir que je me fasses une photo comme ton avatar c'est trop la classe :p


#35 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

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 ? ;) )

#36 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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! :( )

#37 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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

#38 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

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

Image IPB

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



#39 julkien

julkien

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 032 messages
  • Gender:Male

Posté 14 avril 2011 - 10:11

Comme promis voila les photos

Image IPB

Image IPB

Image IPB

et en plus le premier mouvement

et ça marche

:D

je vais coucher suite a cette bonne nouvelle

[oups edit : format photo trop grand]

#40 Esprit

Esprit

    Pilier du forum

  • Membres
  • PipPipPipPipPip
  • 1 503 messages
  • Gender:Male
  • Location:Belgique

Posté 15 avril 2011 - 01:04

T'as passé la nuit dessus ? :D



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users