Engrenage & crémallière

Sujets variés concernant le développement en PureBasic
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

Ben tu vois un bras humain? Tu lui mets une roulette sous le coude et une roulette sous le poignet, tu asservis le mouvement du bras et de l'avant-bras, le 3ème servo pour monter et descendre le stylo.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Engrenage & crémallière

Message par G-Rom »

Ollivier a écrit :Ben tu vois un bras humain? Tu lui mets une roulette sous le coude et une roulette sous le poignet, tu asservis le mouvement du bras et de l'avant-bras, le 3ème servo pour monter et descendre le stylo.
Je t'appelle pour les maths ^^ reste la méthode de la cinématique inverse.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

@G-Rom

Ce n'est pas très compliqué à calculer. C'est 2 changements de repères sur un plan... C'est surtout savoir si les servos peuvent supporter un tel levier... On doit gagner quelques centimètres carré seulement de possibilité de tracer, donc c'est vrai, j'ai été prendre ma tisane!

J'ai tenté de faire un truc pour cerner le problème. Mais j'en vois pas pour l'instant. Un angle d'usure à anticiper pour s'épargner un rodage? Je ne pense pas que ce soit très important.

Ça doit être surtout mettre en adéquation la définition de l'imprimante 3D avec l'interpolation entre 2 points d'un schéma théorique qui me semble la difficulté...

Si on a des points, on peut faire des segments, découper ces segments proportionnellement en fonction d'une distance minimum de travail d'impression (1.0, sqr(2), sqr(3) ) selon le déplacement de la tête d'impression.

Or, on a des points cohérents assez facilement... Comprends pas la tuile...

Touche Espace = Cycle Stop;Play;Stop;Back
Touche Entrée = Mode segments/Mode points

Rem: En mode point, chaque point a une couleur. Ça permet de se repérer un peu...
Point 0: Noir
1: Bleu
2: Vert
3: Cyan
4: Rouge
5: Magenta
6: Jaune
7: Blanc

Touche PageUp/PageDown : Zoom
Touches flèches: Scroller

Code : Tout sélectionner

InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
Dw = DesktopWidth(0)
Dh = DesktopHeight(0)
Dd = DesktopDepth(0)
OpenScreen(Dw, Dh, Dd, "")
Define.D Angle00, Angle10, DentQtt = 48, Ampli, DentAmpli = 10.0, DentRayon = 200.0, Rayon, Xe, Ye, Xd, Yd, Zoom = 1.0, ScrollVitesse = 10.0, Angle20, ImageParDent = 3.0, Sens = 0.0, CosSens
#PIx2 = 2.0 * #PI
CouleurA = RGB(255, 127, 127)
CouleurB = RGB(127, 127, 255)
Procedure CouleurC(J)
	ProcedureReturn RGB(255 * ((J & 4) >> 2), 255 * ((J & 2) >> 1), 255 * (J & 1) )
EndProcedure
Repeat
	Delay(16)
	ExamineKeyboard()
	If KeyboardPushed(#PB_Key_Left): Xd - ScrollVitesse / Zoom: EndIf
	If KeyboardPushed(#PB_Key_Right): Xd + ScrollVitesse / Zoom: EndIf
	If KeyboardPushed(#PB_Key_Up): Yd - ScrollVitesse / Zoom: EndIf
	If KeyboardPushed(#PB_Key_Down): Yd + ScrollVitesse / Zoom: EndIf
	If KeyboardPushed(#PB_Key_PageUp): Zoom * 1.01: EndIf
	If KeyboardPushed(#PB_Key_PageDown): Zoom / 1.01: EndIf
	If KeyboardReleased(#PB_Key_Space): Sens + (#PI / 2.0): CosSens = Cos(Sens): EndIf
	If KeyboardReleased(#PB_Key_Return): Lined ! 1: EndIf
	ClearScreen(0)
	StartDrawing(ScreenOutput() )
	For I = 0 To (DentQtt - 1)
		Angle00 = (2.0 * #PI / DentQtt) * I + Angle20
		For J = 0 To 7
			If (J <> 0) And (J <> 4)
				Angle10 = (2.0 * #PI / 8) * J
				Ampli = Cos(Angle10) * DentAmpli
				Xe0 = Xe1
				Ye0 = Ye1
				Xe = Cos(Angle00 + (Angle10 / DentQtt) ) * (DentRayon + Ampli)
				Ye = 0.0 - Sin(Angle00 + (Angle10 / DentQtt) ) * (DentRayon + Ampli)
				Xe1 = (Dw / 2.0) + ((Xe - Xd) * Zoom)
				Ye1 = (Dh / 2.0) + ((Ye - Yd) * Zoom)
				Box(Xe1, Ye1, 1, 1, CouleurC(J) )
				If Lined: LineXY(Xe0, Ye0, Xe1, Ye1, CouleurA): EndIf
				Xf0 = Xf1
				Yf0 = Yf1
				Xf = (Angle00 + (Angle10 / DentQtt) - #PI) * DentRayon
				Yf = (DentRayon + Ampli)
				Xf1 = (Dw / 2.0) + ((Xf - Xd) * Zoom)
				Yf1 = (Dh / 2.0) + ((Yf - Yd) * Zoom)
				Box(Xf1, Yf1, 1, 1, CouleurC(J) )
				If (I > 0) And Lined: LineXY(Xf0, Yf0, Xf1, Yf1, CouleurB): EndIf
			EndIf
		Next		
	Next	
	Angle20 + ((2.0 * #PI / DentQtt / ImageParDent) * CosSens)
	StopDrawing()
	FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)

CloseScreen()
End
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

Vous noterez que le rouge et le noir manquent à l'appel.
Ce sont les crêtes des ondulations qui architecturent chaque coupe de chevron.
noir:0
rouge:4
dans le cycle
(0), 1, 2, 3, (4), 5, 6, 7

les usures éventuelles se trouvent entre
1 et 2 (entre bleu et vert)
2 et 3 (entre vert et cyan)
5 et 6 (entre magenta et jaune)
et entre 6 et 7 (entre jaune et blanc)
si besoin...

Il y a un problème qui t'empêche de faire un crémaillère dans le sens de la longueur en fait?
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Engrenage & crémallière

Message par G-Rom »

Code : Tout sélectionner

Il y a un problème qui t'empêche de faire un crémaillère dans le sens de la longueur en fait?
Oui, plus la crémaillère est grande , plus je perd en précision, je rappel qu'un servo moteur est asservi par un angle (~ +/- 0 à 180), que je transforme en mouvement linéaire , plus la crémaillère est grande , plus mon pignon le sera :

Longueur crémaillère = (Diamètre pignon * 3.1415) / 2

J'ai imprimé mon châssis/crémaillère et un pignon droit, je constate peu de jeu , voir pas du tout , alors que je l'ai fait au pifomètre...

Image
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Engrenage & crémallière

Message par G-Rom »

Micheao
Messages : 533
Inscription : dim. 07/déc./2014 10:12
Localisation : Sud-Est

Re: Engrenage & crémallière

Message par Micheao »

c'est quoi un CNC?
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Engrenage & crémallière

Message par Patrick88 »

tu as regardé sur thingiverse ? y'a des engrenages "paramétrable"

http://www.thingiverse.com/thing:6544
Image

pat
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

G-Rom a écrit :

Code : Tout sélectionner

Il y a un problème qui t'empêche de faire un crémaillère dans le sens de la longueur en fait?
Oui, plus la crémaillère est grande , plus je perd en précision, je rappel qu'un servo moteur est asservi par un angle (~ +/- 0 à 180), que je transforme en mouvement linéaire , plus la crémaillère est grande , plus mon pignon le sera :

Longueur crémaillère = (Diamètre pignon * 3.1415) / 2

J'ai imprimé mon châssis/crémaillère et un pignon droit, je constate peu de jeu , voir pas du tout , alors que je l'ai fait au pifomètre...

Image
Est-ce que tu peux tu faire un (ou 2) petit schéma des différents jeux possibles avec une lettre par jeu pour les préciser?

J'en vois 4 sur le plan de face
1) 1 entre les dents
2) deux entre le pignon et le chassis de chaque côté
3) 1 entre le pignon et le chassis au-dessus

Sur le plan de profil, j'en vois 2. (si le pignon s'enfonce ou s'extrait du chassis.)
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

En gros, le jeu qui te gène avec ce code source, c'est que je ne prends pas en compte l'ensemble du tracé du chassis?

@Spock

Oui, bon j'ai été un peu vache, il fait un petit peu le démêlage, mais j'ai tâché de mettre en variable tout ce qui peut intervenir dans le tracé du profil. C'est fait pour être modifié, utilisé, testé.

On peut étudier l'usure. Je crois que c'est le plus difficile à mettre en oeuvre pour des pièces métalliques.

Et encore j'ai fait une erreur parce que les couleurs des points indiquent que j'ai confondu l'intérieur et l'extérieur. Mais bon...
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Engrenage & crémallière

Message par G-Rom »

@Ollivier
Ton code source est nickel , faut que je l'étudie et que je fasse des test en "réel". car la théorie ne colle jamais à la réalité ( pb de rétraction des matériaux , ou de dilatation ) , par exemple , pour un écrou m4 , la partie hexagonale fait 7mm , il faut que je fasse un hexagone de 7.1mm pour que çà rentre sans forcé.

@Patrick88 , oui j'ai déjà vu , mais pas vu de crémaillère qui vont avec ^^
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

C'est quand même costaud ton histoire!

Tu as évoqué un nom de langage d'interface.
C'est avec Purebasic que tu contrôles ce langage?
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Engrenage & crémallière

Message par Patrick88 »

G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Engrenage & crémallière

Message par G-Rom »

oui ton premier lien , n'est pas "paramètrable" , je ne peu pas le customizé.
ce lien à l'air intéressant : http://hessmer.org/gears/InvoluteSpurGearBuilder.html
j'vais regardé les autres.
celui la ressemble furieusement à ton projet
je l'ai imprimé celui là, d'ou la conception d'un modèle "plus rigide" , celui là n'est pas du tout précis.


@Ollivier.

PB envois juste du GCODE en serial à l'arduino.
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Engrenage & crémallière

Message par Ollivier »

G-Rom a écrit :GCODE
Je regrette beaucoup d'ignorer ce langage.
En tout cas, en voyant G90 et G91, je vois qu'on peut fournir une succession de position assez aisément. Je vois aussi qu'une commande de vitesse est possible.

Si l'interface accepte de recevoir son programme par paquets, ça simplifie grandement la tâche "E/S" logicielle.
Répondre