mri's CNC fräs

Robot, CNC, Pneumatik, Hydraulik, mm
Användarvisningsbild
Fagge
Inlägg: 3930
Blev medlem: 27 maj 2003, 13:59:51
Ort: Blekinge

Inlägg av Fagge »

Riktigt Snyggt! :tumupp:
Användarvisningsbild
hecke
Inlägg: 284
Blev medlem: 3 januari 2008, 08:20:18
Ort: Östergötland

Inlägg av hecke »

Skall du inte ha något som är planare än ett mynt?
Präglingen på myntet kan ju ge onödig feltolerans.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

Blir det inte olika om man trycker ner myntet i mitten eller på sidorna?
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Tack för de vänliga orden!

hecke: Jo, ytan skall vara plan. Om jag slipar myntet eller tillverkar en rund plåt istället vet jag inte riktigt än. Myntet måste hursomhelst isoleras från den yta som själva fräsen kommer att röra vid. I CNC kontrollern är signaljord separerad från chassit.

jojje: Nej, så länge myntet är plant och ligger plant mot kontakterna förståss. Eftersom myntet stöder mot tre punkter spelar det ingen roll om det bryter bara en kontakt, två kontakter eller alla tre samtidigt.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

OK. Teoretiskt blir det väl lite olika beroende vart på myntet det trycks, men i praktiken märks nog ingen skillnad alls.
Ser helfint ut iaf tycker jag.

En fråga: Varför inte göra som dom flesta andra, att känna av elektriskt att det blir en slutning mellan fräsen och "pucken"?
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

Snyggt Mri! Kommer själv bygga något liknande med 3-punktsprincipen och en liten mikrokontroller eftersom den ger mycket flexibilitet. Annars är väl denna den enklaste formen av zero-setter som jag sett... Tycker dock att det är lite läskigt eftersom den inte ger med sig något om nu skulle vara kabelbrott eller annat som gör att det inte ger någon indikation.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

jojje: Kan du förklara hur du menar? Jag kan inte se att det ens teoretiskt skulle ge olika resultat beroende på var fräsen trycker...

Jag valde det här systemet eftersom jag ville behålla den galvaniska isoleringen.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

Andax: Då gör du en sån här eller använder mri's ide, men slutande när fräsen kommer åt myntet. Då har du lika mycket säkerhetsfjädring.

mri: Tänk dig hur en gunga är konstruerad. Desto längre ifrån mitten, desto längre blir avståndet i Z. Det är inte mycket, och som jag skrev, så märks det inte i praktiken, men finns teoretiskt. Om brytningen blir vid omedelbar vidrörning av myntet, då stämmer det, men blir det det?
Galvanisk isolering köper jag gärna.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Med "gunga" menar du gungbräda, dvs en planka, en bock i mitten och två ungar på var ända av plankan? Åtminstone den analogin får jag inte att passa in på myntet som vilar på tre punkter vid myntets ytterkanter. Den enda "gung" effekt jag kan se är om metallen i själva myntet böjer sig, vilket ju nästan även teoretiskt är ointressant. Eller var det just myntets elasticitet du menade?
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Inlägg av Krille Krokodil »

Det stämmer att trepunktsystemet har variationer beroende på var beröringen sker men det handlar bara om ett antal 0.0001 mm. Renishaws probar som är byggda på detta sättet har en repeternogrannhet på under 0.001 mm.
Användarvisningsbild
jojje
Gått bort
Inlägg: 6380
Blev medlem: 20 januari 2006, 01:53:33
Ort: Stockholms utkant
Kontakt:

Inlägg av jojje »

mri, nu missförstår du också. Allt jag skriver är inte att klaga å jävlas med folk.

Vi skiter i det. Jag är lika glad för det. :D
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Lugn jojje, jag är inte sur, jag vill verkligen fatta hur du menar. :)

Jag tror jag fattar vad du menar nu. Om myntet inte vore elastiskt, och oändligt hårt, och samma sak med de tre kontakterna skulle det inte skilja något. Men eftersom myntet är mjukt, dvs fräsen kommer att köra in en bit i det, olika mycket beroende på var fjäderns motkraft ligger, samt att myntet böjer sig något kommer det att skilja lite.

Alltså, teoretiskt skulle det fungera perfekt (såvida man inte börja räkna på elektroner/hål som hoppar vid olika avstånd mellan atomerna på kontaktpunkterna). I praktiken kommer det att variera lite.
sm7tjc
Inlägg: 399
Blev medlem: 23 mars 2008, 15:56:53
Ort: Anderstorp

Inlägg av sm7tjc »

Hmmm..... förutsättningen för optimal funktion måste ju vara att kontaktblecken inte fjädrar någonting alls. Skulle dom fjädra så blir ju indikationen beroende av var på plattan man träffar (gungbrädan).

Men det är ju klart att det räcker ganska bra med en noggrannhet på någon tusendel. Man skall inte vara för petig :D
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Inlägg av Andax »

De tre kontakterna måste sitta i samma höjd, annars ger det givetvis ett beroende på var man träffar myntet. Men det är ju mer en tillverkningsteknisk detalj än en teoretisk begränsning i metoden.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Så var sensorn klar. På kuppen lyckades jag röka en PIC10F222 när jag skulle göra en liten justering i programmet, så det blev att tillverka ett nytt kretskort. (Förväntade mig inte att texten på kapseln skulle vara upp-och-ner jämfört med databladets "Pin Diagram", och därför hade jag satt Vpp till fel pinne... Alltid lär man sig nått.)

Fräste en bricka i aluminium som kontaktmaterial, och en puck av plexi som isolering:

Bild

Och det röda skenet infann sig: :)

Bild

Sensorn är mycket känslig, detta pga att fjädern är ganska mjuk.

Och här är den extremt :) avancerade programmvaran. Programmerade i C av två orsaker: a) jag slapp ett antal timmars studerande av PIC assembler, och b) jag ville vara lite rebellisk mot diverse assembler-evangelister som anser att asm är förstahandsval för PIC. :)

Vid power-on gör programmet en självtest av de tre kontakterna. Om någon av kontakterna inte kontaktar, t.ex. pga oxidation, så börjar lysdioden i sensorn blinka.

Kod: Markera allt

//
// CNC Tool-Sensor-1 firmware v1.0 for PIC10F222
//
// Copyright (c) Mats Byggmästar Consulting Ab 2008
//
// Programming the chip with XWisp & Wisp648 from http://www.voti.nl:
//   c:\>xwisp target 10f222 go ToolSensor.hex
//
// References:
//   [1] MICROCHIP PIC10F220/222 Data Sheet (DS41270E)
//   [2] MICROCHIP PIC10F220/222 Memory Programming Specification (DS41266C)
//

#include <pic.h>
#include "delay.h"

// Configuration word (See [2] 4.0 CONFIGURATION WORD)
// Disable MCLR pin function, we need it as digital input GP3
// Disable MCLR pull-up
__CONFIG(OSC_4MHZ & MCPUDIS & WDTDIS & UNPROTECT & MCLRDIS);

void main()
{
	// Setup options (See [1] 4.5 OPTION Register)
	// Defaults are okay: Weak pull-ups on GP0,GP1,GP3. T0CKI pin disabled
	OPTION = 0;

	// Oscillator calibration (See [1] 4.6 OSCCAL Register)
	// Frequency not critical: set center frequency
	OSCCAL = 0;

	// Make GP0,GP1,GP2 digital I/O (See [1] TABLE 5-2)
	FOSC4 = 0;	// Disable FOSC4 on GP2
	ANS0 = 0;   // Disable A/D on GP0
	ANS1 = 0;   // Disable A/D on GP1

	// Select directions for GP0,GP1,GP2,GP3 (See [1] 5.2 TRIS Registers)
	// GP2 have no internal pull-up, so use it as output. GP3 is hardwired as input
	// GP2=0(output), GP0,GP1,GP3=1(input)
	TRISGPIO = 0b00001011;

	// Set output low
	GP2 = 0;

	// Wait for things to settle before doing self-test
	DelayMs(250);

	// Self-test: Check that GP0, GP1 and GP3 are all low, i.e. that they 
	// all make contact with the sensor plate
	if ((GPIO & 0b00001011) != 0)
	{
		// Error in at least one contact (oxidation?), tool sensor is not safe to use
		// --> flash output (LED) forever
		for (;;)
		{
			GP2 = 1;
			DelayMs(250);
			GP2 = 0;
			DelayMs(250);
		}
	}

	// Selftest was okay, run mainloop:
	for (;;)
	{
		// Loop while tool NOT pusing down sensor plate
		while ((GPIO & 0b00001011) == 0)
		{
			// Busy wait
		}

		// Tool pushed down sensor plate, set output high for 250 ms
		GP2 = 1;
		DelayMs(250);
		GP2 = 0;

		// Loop while tool is still pushing down sensor plate
		while ((GPIO & 0b00001011) != 0)
		{
			// Busy wait
		}

		// Tool retracted from sensor plate, wait for contact bounce to settle
		DelayMs(250);
	}
}
Skriv svar