• No results found

System för optisk mätning av linjeprofil

N/A
N/A
Protected

Academic year: 2021

Share "System för optisk mätning av linjeprofil"

Copied!
47
0
0

Loading.... (view fulltext now)

Full text

(1)

Kandidatuppsats

Civilingenjör i intelligenta system 300 hp

System för optisk mätning av linjeprofil

Elektroteknik 15 hp

Halmstad 2021-06-21

Andreas Johansson och Victor Svahn

(2)

i

(3)

Förord

Vi vill börja med att tacka Lantz Measuring AB för förtroendet att genomföra detta projekt. Ett extra tack till Christoffer Lantz som varit vår kontaktperson på företaget och som har svarat på frågor och givit råd under projektets gång.

Vi vill även tacka vår handledare, Håkan Pettersson, som bidragit med tips och ideér.

ii

(4)

iii

(5)

Abstract

Today’s industry is moving towards a fourth revolution based on digitilizing tech- nologies to reduce errors and streamline processes. When manufacturing hydraulics and other pressurized systems, couplings are pressed onto pipes and hoses that must be able to maintain an expected pressure. If such a coupling has not been pressed correctly, there is a risk of leakage. This can have devastating consequences such as a liquid polluting the environment, inhalation of toxic gas, an important work stop, or a pilot losing control of an aircraft.

Lantz Measuring AB therefore wants to develop a system that will be able to effect- ively ensure that these couplings have the correct shape around the entire coupling with an accuracy of 0.1 mm. With this information, the manufacturer should be able to ensure that a coupling is correctly pressed.

In this paper, a prototype for such a system has been developed as a contribution to a product that will meet Lantz Measuring’s requirements for accuracy, durability, and cost-effectiveness. The system is based on optical triangulation, which means calculating the line profile via the refraction of line lasers against the coupling using image sensors. Control and processing takes place with an FPGA and associated peripherals.

The prototype shows that the requirement for trueness in the measured value is met, but that there is room for improved precision. Sources of error and methods that contribute to improved results are presented. The work describes the development of the system, testing of precision, and analysis of results.

iv

(6)

v

(7)

Sammanfattning

Dagens industri rör sig mot en fjärde revolution som bygger på digitaliserande tekno- logier för att minska fel och effektivisera processer. Vid tillverkning av hydraulik och andra trycksatta system så pressas kopplingar på rör och slangar som måste kunna hålla ett förväntat tryck. Om en sådan koppling inte har pressats fast korrekt så finns det risk för läckage. Detta kan ge förödande konsekvenser genom att en vätska förorenar omgivningen, inandning av giftig gas, ett viktigt arbete stannar av, eller att en pilot tappar kontrollen över ett flygplan.

Lantz Measuring AB vill därför utveckla ett system som effektivt ska kunna säker- ställa att dessa kopplingar har rätt form kring hela kopplingen med en noggrannhet på 0,1 mm. Med denna information ska tillverkaren kunna säkerställa att en kop- pling är korrekt pressad.

I detta arbete har en prototyp för ett sådant system utvecklats som bidrag till en produkt som ska uppfylla Lantz Measurings krav på noggrannhet, hållbarhet, och kostnadseffektivitet. Systemet baseras på optisk triangulering, vilket innebär att beräkna linjeprofilen via brytningen av linjelasrar mot kopplingen med hjälp av bildsensorer. Styrning och processing sker med en FPGA och tillhörande krin- gutrustning.

Prototypen påvisar att kravet på riktighet i mätvärdet är uppfyllt, men att det finns utrymme till förbättrad precision. Felkällor samt metoder som bidrar till förbättrat resultat presenteras. Arbetet beskriver utvecklingen av systemet, test av precision, samt analys av resultat.

vi

(8)

vii

(9)

Innehållsförteckning

1 Introduktion 1

1.1 Inledning . . . . 1

1.2 Syfte . . . . 1

1.3 Kravspecifikation . . . . 2

1.4 Avgränsningar . . . . 2

2 Bakgrund/Teori 3 2.1 Optisk mätning av linjeprofil . . . . 4

2.1.1 Triangulering . . . . 4

2.1.2 Beräkningsmetoder . . . . 5

2.2 Mätkomponenter . . . . 6

2.2.1 Bildsensor . . . . 6

2.2.2 Laser . . . . 8

2.3 Digitalt inbyggt system . . . . 9

2.3.1 FPGA . . . 10

2.3.2 Mjukvara . . . 10

2.3.3 Gränssnitt . . . 11

3 Metod 13 3.1 Jämförelser och val av komponenter . . . 13

3.1.1 Bildsensor . . . 13

3.1.2 FPGA . . . 13

3.1.3 Laserval . . . 14

3.2 Implementation och konstruktion . . . 14

3.2.1 Initiering av sensor . . . 14

3.2.2 Avläsning av pixeldata . . . 15

3.2.3 Kolumnprocessning . . . 16

3.2.4 Geometri . . . 16

3.3 Test . . . 18

3.3.1 Konfiguration av FPGA . . . 18

3.3.2 Initiering av sensor . . . 19

3.3.3 Systemets precision . . . 19

3.4 Utvärdering och analys av resultat . . . 21

4 Resultat 22 4.1 Val av komponenter . . . 22

4.2 Beräkningar . . . 23

viii

(10)

4.3 Digitalt inbyggt system . . . 24

4.4 Test . . . 24

4.4.1 Konfiguration av FPGA . . . 25

4.4.2 Initering av sensor . . . 25

4.4.3 Systemets precision . . . 26

5 Diskussion 28 5.1 Testresultat . . . 28

5.2 Geometri . . . 28

5.3 Export av data . . . 29

5.4 PCB design . . . 30

5.5 Samhällskrav på teknisk produktutveckling . . . 30

6 Slutsats 32

INNEHÅLLSFÖRTECKNING ix

(11)

1. Introduktion

1.1 Inledning

Lantz Teknik AB är ett företag beläget i Halmstad som konstruerar och tillverkar automatiska maskiner som pressar kopplingar på rör och slangar som ska vara tryck- satta i hydraulik- och AC-system. Dessa maskiner säljs sedan världen över bland annat till de allra mest kända biltillverkarna och deras underleverantörer.

Att tidigt upptäcka en felaktigt pressad koppling motverkar potentiella kostnader och risker som kan uppstå om en koppling hamnar i ett hydraulik- eller AC-system.

Därför vill företagets dotterbolag, Lantz Measuring AB, sälja ett prisvärt mätinstru- ment till deras kunder som möjliggör noggrann och effektiv kontroll av att kopplingar är korrekt pressade av deras maskiner.

Uppdraget är tilldelat av Lantz Measuring AB och innebär att konstruera ett sys- tem för optisk mätning av en linjeprofil (yttre konturen) på cylindriska objekt genom att triangulera brytningen av linjelasrar mot dessa via fotoelektriska matrissensorer.

Signalen ska därefter processas och sändas vidare med hjälp av en FPGA för yt- terligare behandling. Systemet ska göra det möjligt för en arbetare att snabbt och enkelt kontrollera att linjeprofilen för pressade kopplingar är inom önskad tolerans med hög noggrannhet och på så vis säkerställa att de kommer att hålla för det tryck som förväntats.

Systemet går att konstruera med redan utvecklade sensorer, dock är urvalet av sensorer begränsat. Därför består uppgiften även av att utveckla egna sensorer med hjälp av lösa sensorelement och linjelasrar för att uppnå specifika egenskaper samt för att få ner priset.

1.2 Syfte

Syftet med projektet är att utveckla ett inbyggt optoelektroniskt system som mäter yttre konturen kring ett tvärsnitt, även kallat linjeprofilen, på cylindriska objekt, samt behandlar och sänder ut mätdatan. Lämplig metod och hårdvara för mätning, behandling, och sändning ska väljas så att de krav som specificerats av uppdrags- givaren uppfylls. Systemet ska bidra till en kostnadseffektiv produkt, lämpad för försäljning, med huvudsakligt syfte att på ett snabbt och pålitligt vis säkerställa att kopplingar pressats korrekt innan de monteras i ett tryckbelagt system.

1

(12)

1.3 Kravspecifikation

Kraven angivna av uppdragsgivaren innebär följande:

• Mätningar ska kunna utföras på cylindriska kopplingar med en enhetlig textur upp till 50 mm i diameter.

• Mätvärdet ska besitta en noggrannhet på 0,1 mm.

• All hårdvara skall tåla industrimiljö.

• Lämplig kommunikationsstandard ska användas för export av mätdatan.

• Storleken på systemet ska minimeras i möjligaste mån.

• Kostnaden för mätinstrumentet ska hamna på en prisvärd nivå.

• Mätinstrument ska vara utformat på ett sätt som ger objekten stor frihet att enkelt placeras oavsett form.

• Ett mätobjekt ska på en kort tid kunna föras in, mätas, och föras ut igen.

1.4 Avgränsningar

Projektet begränsas till att använda bildsensorer, med tillhörande optisk lins, lödade på breakout boards för enkel sammankoppling med övrigt system. Kretsen och tillhörande komponenter för styrning av sensorerna samt behandling och sändning av datan kommer att befinna sig på en färdig development board baserad på den FPGA som väljs ut i projektet. Färdiga lasrar med tillhörande optik för att projicera linjer kommer att användas. Den valda FPGA-tillverkarens mjukvarupaket kommer att användas för systemutveckling.

Introduktion 2

(13)

2. Bakgrund/Teori

Det finns redan idag ett utbud av olika optiska system för mätning av linjeprofil [1–4]. Dessa system är konstruerade för att kunna anpassa sig till flera olika app- likationer. Systemen består ofta av endast en enskild sensor inkapslad tillsammans med ett inbyggt digitalt system som behandlar och sänder ut datan från den en- skilda sensorn via en kommunikationsstandard. En negativ aspekt med detta för ett ändamål där ett flertal sensorer ska användas i kombination är att det då används ett inbyggt digitalt system per sensor, när det endast krävs ett sådant system totalt.

Genom att konstruera ett eget system kan endast nödvändiga komponenter använ- das och anpassas för en utvald miljö och ändamål. En annan nackdel med färdiga sensorer är att de ofta är dyra i förhållande till ändamålsspecifika system eftersom de besitter onödiga egenskaper. Detta projekt går ut på att skapa ett system för mätning av just cylindriska objekt och därför kan ett system konstrueras för just detta ändamål vilket kan bli fördelaktigt med avseende på storlek, pris, och miljö.

Relaterade studier finns kring tidigare, liknande delsystem. Ett exempel på ett sådant delsystem konstruerat av en CMOS

1

bildsensor, FPGA

2

, samt upprättad Ethernetkommunikation via vilken en bildström sänds [5]. Utförliga beräkningar kring nödvändig bandbredd vid dataöverföring presenteras, samt metoder som an- vänds i mjukvaran för att hantera dataströmmar in från en sensor, mellan delsystem i FPGAn, och ut över Ethernetbussen.

Ett liknande projekt är ett examensarbete [6], utfört 2012 på Högskolan i Halmstad.

Syftet med projektet var att bygga ett intelligent system som, med hjälp av en sensor, kunde instruera en legorobot att utföra vissa uppgifter. Komponenterna som an- vänds är FPGA och bildsensorer, vilket är samma typ av komponenter som kommer att användas i detta projekt. Även om det inte är exakt samma komponenter så kan inspiration hämtas ifrån detta arbete.

Ett annat exempel är David Williams [7], som noggrant beskriver initieringen av en bildsensor i programspråket Verilog

3

. Williams använder sig av samma bildsensor men inte samma FPGA som kommer att användas i detta projekt. Inspiration finns att hämta om initieringen och styrning av sensorerna.

LAP [8] är ett exempel på ett företag som har skapat ett sensorsystem, uppbyggt av ett flertal sensorer, vilket fungerar till att mäta linjeprofilen av cylindriska objekt.

Det består av linjelasrar, högpresterande bildsensorer, samt övrigt digitalt system för att processa data. Lasrar projicerar raka linjer, vinkelräta mot den yta som ska mätas, och linjeprofilen avläses via brytningen av laserlinjerna utifrån kamerornas perspektiv. Systemet är ämnat för stålindustrin, och därför ska objekt mycket större och varmare än i detta projektets mätas. Dessa två skillnader bidrar till att systemet kräver egenskaper som inte är nödvändiga detta projekt och systemet är därför dyrare än vad som krävs i detta fall.

1

CMOS 2.2.1

2

FPGA 2.3.1

3

Verilog 2.3.1

3

(14)

2.1 Optisk mätning av linjeprofil

För att optiskt mäta linjeprofilen av ett objekt kan ett flertal metoder användas.

Det finns metoder som baseras på tid såsom time of flight (TOF), och metoder som baseras på fasskiftet hos det utsända och mottagna ljuset. En, för detta projekt, passande metod är att triangulera en lasers brytning med hjälp av en fotoelektrisk sensor. Anledningen till att denna metod lämpar sig så väl är att den kräver färre komponenter och enklare beräkningar än övriga metoder, men ändå kan uppfylla kraven på systemet.

2.1.1 Triangulering

Principen

Triangulering går ut på att identifiera positionen hos brytningen av en linjelaser längs ett objekt som ska mätas med hjälp av en fotoelektrisk matrissensor, även kallad bildsensor. Principen visualiseras i figur 2.1. Beskrivning av en linjelaser läses i avsnitt 2.2.2.

Kritiska komponenter är laser, sensor, och optisk lins. Dessa komponenter placeras ut med en viss geometri, relativt till mätobjektet, med vilken ett avstånd till mäto- bjektet sedan kan beräknas. Detta visualiseras i figur 2.3.

Figur 2.1: Grundprincip för sensorns funktion

Då projektet går ut på att mäta linjeprofilen kring ett cylindriskt objekt så kommer tre identiska sensorsystem för triangulering att placeras med 120 graders förskjut- ning kring den punkt där mätobjektet ska placeras.

Felkällor

Noggrannheten vid optisk triangulering beror delvis på tolkningen av reflektionen mot mätobjektet [9]. Om bredden av en laserlinje täcker mer än en pixel i bild- sensorn, vilket den ofta gör, kan ett centrum definieras genom att välja toppvärdet eller att beräkna ett medelvärde. Dessa metoder är dock endast tillräckliga då mäto- bjektet motsvarar en, mot laserkällan vinkelrät, plan yta. Skulle mätobjektet inte ha dessa egenskaper så måste hänsyn till eventuella felkällor tas. Fyra av dessa felkällor demonstreras i en två-dimensionell version i figur 2.2, principen är densamma.

Bakgrund/Teori 4

(15)

Figur 2.2: Felkällor vid avvikande mätobjekt. (a) Diskontinuitet i

reflektionsegenskaper. (b) Diskontinuitet av belysningspunkten. (c) Mittpunkten av lasern missar ytan. (d) Skuggning av laserns mittpunkt.

2.1.2 Beräkningsmetoder

För att det optiska trianguleringssystemet ska fungera optimalt krävs vissa egenskaper såsom optiskt fokus för hela mätområdet, samt att komponenter placeras ut på ett optimalt sätt. Detta görs genom att placera lasern och bildsensorn nära varandra för att uppnå en mindre formfaktor vid inkapsling, även om en teoretiskt optimal placering innebär ett längre avstånd.

Figur 2.3: Ofta använd anordning för projektets ändamål.

Fokus

Ekvation 2.1 beskriver sambandet som måste uppfyllas för att uppnå fokus för alla infallsvinklar ρ från en lasers reflektion då en ideal lins används, där α är bildvinkeln och β är sensorns lutning i förhållande till linsen [10]. Bildvinkel är ett begrepp inom fotografi och avser den vinkel inom vilken allt avbildas av kameran.

tan(β) = b

0

tan(α) a

0

(2.1) En anordning som enligt [10] vanligtvis används i system av den typ som ska utveck- las i detta projekt är den som demonstreras i figur 2.3. α kan användas för att beräkna β med hjälp av önskade värden på längderna a

0

och b

0

.

Bakgrund/Teori 5

(16)

Avstånd

En pixels positions representation av avstånd r mellan laserkällan och brytpunkten kan beräknas matematiskt enligt ekvation 2.2 med beteckningar enligt figur 2.3, där s i ekvationen är positionen på bildsensorn i längdenheter i y-led [10].

r = B(b

0

sin(α) − s)

b

0

cos(α) (2.2)

En annan metod som kan användas för att konvertera pixeldata till avstånd är kalibrering. Kalibrering går ut på att skapa en tabell med mätvärden från mätningar med mätanordningen på mätobjekt av kända mått. Noggrannheten av denna metod beror på antal kända mätvärden och är därför i teorin inte lika noggrann. Dock kan metoden i praktiken ge ett bättre resultat om man inte vet varje komponents placering och vinkel med extremt hög precision, vilket kan vara svårt. Mätningar där mätvärdet hamnar mellan kalibrerade, kända värden löses ut via interpolering.

Interpoleringen kan beräknas linjärt, men ett bättre mätresultat kan uppnås om interpoleringen är baserad på ekvation 2.2.

2.2 Mätkomponenter

2.2.1 Bildsensor

En bildsensor består av en matris av pixlar som kan konvertera fotoelektrisk inform- ation för att skapa en bild. En bildsensor använder sig av så kallade fotodetektorer som ofta består av kisel. När fotoner träffar fotodetektorerna kan elektroner i kislet absorbera energin. Detta fenomen är en slags intern fotoelektrisk effekt. Beroende på hur många fotoner som träffar pixeln uppstår en viss laddning som kan mätas för att få en uppfattning om ljusintensiteten från en reflektion eller ljusskälla.

De två vanligaste typerna av bildsensorer är CCD (Charged-Coupled Device) och CMOS (Complementary Metal–Oxide–Semiconductor).

CCD fungerar på så sätt att laddningen som skapats genom absorption av fotoner i varje pixel transporteras vidare med hjälp av ett horisontellt och vertikalt skiftre- gister [11], vilket illustreras till vänster i figur 2.4. Det horisontella skiftregistret flyttar ett steg åt vänster, som sedan kompletteras med ett vertikalt skiftregister vilket gör att varje laddning, en i taget, kan generera en ström och sedan förstärkas.

Denna procedur fortsätter tills varje pixel har laddats ur. När alla laddningar är konverterade till spänning kommer den slutliga signalen att digitaliseras med hjälp av en AD-omvandlare som oftast är ett separat chip.

I en CMOS-sensor har istället varje pixel en egen konverterare som låter laddningen generera en ström [11], vilket illustreras till höger i figur 2.4. Det finns även en switch för varje pixel som aktiveras en efter en och information kan läsas av. Samma procedur fortsätter för varje kolumn tills varje pixel är tom på laddning. Detta tillvägagångssätt är betydligt mer effektivt än CCD [12].

Det finns två olika sätt för bildsensorn att skanna en bild, Global eller Rolling Shutter. Rolling Shutter innebär att en pixelkolumn exponeras och avläses i taget

Bakgrund/Teori 6

(17)

Figur 2.4: CCD vs. CMOS illustration

[13]. Alla delar av bilden är alltså inte tagna vid exakt samma tillfälle och detta kan märkas ifall en bild tas av ett objekt som rör sig snabbt, då objektet hinner flyttas innan nästa kolumn skannas. Global shutter är istället att alla pixlar exponeras på samma gång, för att sedan efter en tid stänga alla pixlar [12]. Detta gör att ljus i varje pixel absorberas vid exakt samma tidpunkt.

Beroende på ifall man vill ha färg på den tagna bilden eller inte används antingen en färg- eller monokrom-sensor. En monokrom sensor registrerar all typ av ljus, oberoende på vilken färg ljuset är. Om en sensor t.ex. kan känna av vågläng- der i spannet 400-1000nm kommer varje pixel att registrera dessa våglängder och, beroende på hur många elektroner som emitteras, avgöra ljusintensiteten. Detta resulterar i att bilden får en gråskala eftersom det inte finns någon information om det absorberade ljusets våglängd.

Figur 2.5: Monokrom

Bakgrund/Teori 7

(18)

I en färgsensor har istället varje pixel ett färgfilter innanför linsen. Filtret släpper igenom ett smalare frekvensband än själva pixeln under, ett rött filter låter alltså bara rött ljus passera till pixeln osv. Filtren är utspridda över sensorn i ett mönster där femtio procent av alla filter är gröna, tjugofem procent röda och tjugofem procent blåa, detta för att människans öga är känsligare för den gröna färgen jämfört med de andra två.

Figur 2.6: Bild som beskriver hur ett färgfilter fungerar. Det röda filtret låter bara rött ljus passera osv.

Styrning av bildsensor

För att kunna extrahera relevant pixeldata från en bildsensor krävs det att ett antal digitala signaler och parametrar skrivs till och tas emot från sensorn via diverse pins.

Signalerna som ska till sensorn består generellt av en klockpuls som bestämmer den huvudsakliga frekvensen som sensorn körs med, en klockpuls för seriell data, och den själva seriella datan som ska skrivas till sensorns register. De parametrar som generellt är relevanta att skrivas är exponeringstid, horisontell blankningstid, vertikal blankningstid, start- och slutkolumn, samt start- och slutrad för avläsning.

De signaler som ska tas emot från sensorn är en pixelklockpuls som används för att mottagaren ska kunna synkronisera avläsningen av den parallella pixeldatan. Övriga signaler är vertikal synkronisering och horisontell synkronisering för att mottagaren ska veta när en bild och rad ska avläsas.

2.2.2 Laser

Laser (Light Amplification by Stimulated Emission of Radiation) är en enhet som stimulerar atomer eller molekyler för att sända ut ljus. När en elektron absorberar energi exciteras den till ett högre tillstånd som befinner sig längre bort från atomkärnans centrum. Detta tillståndet är väldigt instabilt vilket gör att elektronen snabbt faller tillbaka från det högre tillståndet till det lägre, energiskillnaden som uppstår mellan tillstånden sänds då ut i form av fotoner. Lasern sänder sedan ut dessa fotoner i form av en ljusstråle där alla fotoner är fas med varandra och har samma våglängd [14]. Beroende på vilken våglängd som fotonerna har kan lasern sända ut synligt, infrarött eller ultraviolett ljus. Det finns olika typer av linser som kan appliceras för att fokusera ljuset i en punkt eller en linje. En punktlaser använder sig av en sfärisk lins till skillnad från en linjelaser, vilken används i det här projektet, som använder sig av en cylindrisk lins.

Varje laser har en strålavvikelse (stråldivergens) vilket är ett mått på hur mycket stråldiametern ökar beroende på avståndet från ljuskällan. Kortfattat kan man

Bakgrund/Teori 8

(19)

förklara det så att ju längre avstånd från källan, desto större strålavvikelse. För att beskriva en lasers strålavvikelse används enheten milliradian, mrad. Vanligtvis brukar strålavvikelsen ligga mellan 0,3 till 2 mrad.

Figur 2.7: Olika storlek på laserspots vid samma avstånd med olika strålavvikelser.

Då strålning kan vara mycket farligt för ögon och hud klassas lasrar in i olika säker- hetsklasser. Det är många faktorer som påverkar hur farlig skadan kan bli som t.ex. vad lasern har för effekt, våglängd, spridning och hur länge man utsatts för ljuset. Om ögat utsätts för en laserstråle blir ögats lins som ett brännglas då ljuset fokuseras i samma punkt. Detta leder till näthinnan och syncellerna överbelastas.

Ögat har en blinkreflex som gör att man vid vissa våglängder blundar och skyddar ögat mot det farliga ljuset. Detta fungerar dock bara för vissa våglängder och där- för kan det vara viktigt att i vissa arbetsmiljöer använda en laser där blinkreflexen fungerar.

2.3 Digitalt inbyggt system

Ett digitalt inbyggt system är det elektroniska delsystem som styr övriga kom- ponenter, såsom mätkomponenter och databussar, genom att hantera dataflöden, både in och ut. Komponenter som vår typ av system baseras på kan till exempel vara digital signal processor hardwares (DSP) eller field-programmable gate arrays (FPGA). FPGAs har fördelen att kunna utföra parallella operationer i större ut- sträckning än DSPs, vilket är av intresse i detta projekt då tre sensorer ska nyttjas parallellt.

I

2

C

I

2

C är en multi-master, multi-slave, single-ended, seriell databus skapad av Philips Semiconductor, idag känd som NXP Semiconductors och används för att upprätta långsam kommunikation mellan komponenter i ett digitalt inbyggt system [15].

Protokollet är ett robust och flexibelt kommunikationsprotokoll som är mycket an- vändbart för kommunikation vid utveckling av ett digitalt inbyggt system [15].

Bakgrund/Teori 9

(20)

Figur 2.8: Logik för I

2

C-kommunikation.

2.3.1 FPGA

En FPGA är ett chip bestående av omprogrammerbara logiska block, utplacerade i en matris, sammankopplade till ett fysiskt nätverk, vilket också är omprogram- merbart. En FPGA kan liknas vid en mikroprocessor med omprogrammerbar arkitek- tur för att kunna anpassas till förändringar eller för att åtgärda problem som upptäckts efter implementering i ett system. Möjligheten för en erfaren utvecklare att kunna anpassa och testa arkitekturen utifrån specifika behov kan ge upphov till avsevärt mer effektiva resultat. Möjligheten att kunna utveckla en egen arkitek- tur i iterationer genom tester är en funktion som, för en mindre erfaren utvecklare, möjliggör utveckling av en integrerad krets, vilket annars inte skulle vara rimligt.

FPGAs har även många general purpose input output (GPIO) som är användbara för att styra externa digitala komponenter. Till många FPGA-chip finns flera så kal- lade development boards som innehåller de komponenter och den kringutrustning som krävs för de flesta grundläggande applikationer, samt enkel tillgång till GPIOs.

Arkitekturen programmeras via kommandon lagrade i minnestyper som till exempel SRAM, Flash, eller EPROM. Dessa kommandon är formulerade i ett språk som benämns Hardware Description Language (HDL), eller Very High Speed Integrated Circuit Hardware Description Language (VHDL), eller Verilog.

2.3.2 Mjukvara

Hårdvarutillverkare, såsom Xilinx och Altera, erbjuder mjukvarupaket, som till ex- empel Vivado av Xilinx, för enkel generering av de kommandon som programmerar FPGAn. Dessa mjukvarupaket innehåller även färdiga arkitekturer, intellectual properties (IP), som kan användas och sammankopplas av utvecklare för att snabba på och förenkla designprocessen. Dessa IPs kan vara allt från olika slags gränssnitt till hela softcore processorer såsom MicroBlaze av Xilinx. IP-blocken sammanställs till en blockdesign som sedan konverteras till ett speciellt filformat kallat bitstream, som sedan laddas in i FPGAns internminne via en så kallad JTAG-anslutning.

Det finns även andra metoder än JTAG om dessa implementerats hårdvarumässigt.

Denna bitstream är vad som programmerar FPGAn.

Då dessa mjukvarupaket i kombination med tillhörande FPGAs används brett så finns det inspiration att hämtas till utveckling av grundläggande system såsom de delsystem som ska utvecklas i detta projekt.

Bakgrund/Teori 10

(21)

Figur 2.9: Blockdesign av ett Ethernetgränssnitt i Xilinx Vivado.

2.3.3 Gränssnitt

Olika versioner av gränssnitt kan användas för att sända mätdata vidare till en ex- tern enhet för ytterligare behandling. Gränssnitt med lägre överföringshastigheter tenderar att vara enklare att implementera, medans motsatsen gäller för gränssnitt med högre överföringshastigheter. Dock kan det i vissa fall krävas högre hastigheter för att sändningarna inte ska hamna efter det övriga systemet, ofta i applikationer som behandlar video i realtid. Frekvent använda kommunikationsstandarder anpas- sade för högre hastigheter är till exempel Ethernet och USB.

Gigabit Ethernet stödjer idag överföringshastigheter upp till 1 Gbps [16], beroende på version. Denna standard används brett inom industri på grund av stöd för relativt högt antal noder, bakåtkompabilitet med äldre versioner, och möjlighet för långa distanser mellan master- och slave-enhet.

USB 3.0 stödjer överföringshastigheter upp till 5 Gbps [17]. Denna standard kräver dock många avgifter för exempelvis det USB-ID som enheten måste erhålla för att kunna säljas, samt för användning av USB logotyp, för att kunna implemen- teras. Standarden är anpassad för anslutningar mellan system på kortare avstånd i förhållande till Ethernet. Kretsen som krävs för att upprätthålla versioner av hö- gre hastigheter bygger på intelligenta styrenheter, och kan därför bli kostsam att implementera i förhållande till hastigheten jämfört med Ethernet.

Bakgrund/Teori 11

(22)

Bakgrund/Teori 12

(23)

3. Metod

3.1 Jämförelser och val av komponenter

Jämförelser genomfördes med syfte att välja den metod eller komponent som är bäst lämpad för ändamålet. Metoden som användes för att välja ut komponen- terna gick ut på att börja med den komponent som är mest kritisk för att uppfylla kravspecifikationen, och sedan anpassa övriga komponentval efter denna. Det var viktigt att först bestämma precis vilka egenskaper som faktiskt behövs hos kompon- enten för att undvika att välja en överkvalificerad komponent vilket ofta leder till en högre kostnad. Slutsatser drogs tillsammans med uppdragsgivaren och baserat på den information som utvärderingen bidragit med valdes passande komponenter för projektet. Dessa komponenter, såsom sensorer och development board, köptes in av uppdragsgivaren Lantz Measuring AB. Se kapitel 4 för valda komponenter och deras specifikationer.

3.1.1 Bildsensor

Det första ämnet som undersöktes var vilken slags sensorteknologi som var bäst lämpad för optisk triangulering av en linjelaser då det är den mest kritiska delen i systemet. De två teknologier som vi fokuserade på var CCD och CMOS fo- toelektriska area-sensorer. CCD är den vanligaste typen av sensor för applikationen sedan länge tillbaka, dock har dagens CMOS-teknologi potentialen att vara bättre lämpad för detta projekt.

Utifrån diskussioner med uppdragsgivaren drogs slutsatsen att global shutter-teknik passar bäst för industriell mätning eftersom alla kolumner i varje bild tas vid samma tidpunkt. Vid rolling shutter-teknik kan ett felaktigt värde ges ifall mätobjektet skulle röra sig under mätningen, vilket behövde undvikas. Dagens CMOS sensorer har global shutter-teknik [18] samt erbjuder ett bättre utbud, kvalité och ett pris. De flesta sensorer klarar en bildfrekvens som är mer än tillräcklig för att en mätning ska kunna ske under ett relativt snabbt skede. Vid val av en monokrom eller färgsensor togs beslutet att använda en monokrom bildsensor eftersom endast ljusintensiteten för en specifik våglängd från en laser ska mätas. Detta kan alla pixlar i en monokrom sensor utnyttja och på så vis få en högre effektiv upplösning.

3.1.2 FPGA

Därefter forskades det kring valet av FPGA. Kravet var att det ska finnas en devel- opment board med board files och kringutrustning såsom USB- eller Ethernet-krets, samt tillräckligt många GPIOs och lagringsminne tillgängligt. Development board krävs för att få tillgång till FPGAns pins utan att behöva tillverka ett kretskort och löda, då vi inte hinner att utföra detta inom tidsramen. Antalet GPIOs bestämdes med hjälp av förundersökningen kring de tre bildsensorerna, där varje bildsensor be- höver ett visst antal GPIOs för att fungera. Storleken på lagringsminnet bestämdes av att minst tre bilder med P

h

pixlar i höjd och P

b

pixlar ska kunna lagras och där varje pixel byggs upp av 10 bitar. Kravet på storleken B i byte av lagringsminnet kan beräknas utifrån ekvation 3.1,

13

(24)

B = 10P

h

P

b

8 (3.1)

FPGAn måste även ha tillräckligt med logiska block för att klara av det som för- väntas utföras av systemet, det vill säga att köra tre sensorer med tillhörande al- goritm parallellt. En annan viktig aspekt är att det behövs en tillräckligt hög klockfrekvens för att kunna utnyttja sensorernas och datakommunikationens fulla potential.

3.1.3 Laserval

Vid val av laser var det viktigt att ljusstyrkan är jämn över hela linjen och inte faller av mot ändarna. Detta eftersom det då blir svårt för sensorn att läsa av linjen i det yttre mätområdet. Eftersom lasern kommer att placeras nära mätobjektet måste dess fokus ligga på ett kort avstånd, samt att linjen ska vara så tunn som möjligt.

Detta för att med hjälp av en algoritm för kolumnprocessing, få ett mer tillförlitligt mätvärde i Y-led.

Lasern behöver även ha en viss våglängd som ger optimal uppladdning av pixlarna i bildsensorn. Sensorns maximala kvanteffektivitet går att avläsa i tillhörande dat- ablad. Strålavvikelsen som nämns i avsnitt 2.2.2 måste beaktas och ju lägre detta värde är, desto mindre kommer linjens bredd att skilja sig åt på olika avstånd inom mätområdet. En homogen smal linjebredd är nödvändig för att erhålla korrekta mätresultat.

3.2 Implementation och konstruktion

En översiktlig förståelse över systemets funktion ges i figur 4.6.

Förberedelser gjordes genom att ladda ned så kallade board files, som tillhör devel- opment boarden. Detta för att avgränsa funktionerna i designstudion till de som är relevanta, med andra ord; möjliga att använda på development boarden i fråga.

Bland dessa filer ingår en constraint file som tilldelar namn till fysiskt användbara pins på FPGAn så att dessa kan användas i programmet.

3.2.1 Initiering av sensor

Varje sensor behöver initieras genom att skriva parametrar till dess cirka 200 register.

Detta görs via seriell datakommunikation över två specifika pins på varje sensor, en för seriell data och en för klockpuls. I

2

C protokollet ansågs lämpligt för att skriva seriell data då det används brett inom digitalt inbyggda system [15].

Det första delmomentet gick ut på att upprätta kommunikation mellan FPGAn och en sensor för att skriva värden till sensorns register. Programmet är kodat i Verilog, uppbyggt av moduler strukturerade i lager, där det lägsta lagret för initieringspro- cessen är en modul som innehåller den grundläggande logiken som I

2

C-protokollet bygger på.

Denna modul, som kan benämnas I

2

C-modulen, kallas på av en modul i ett högre lager med den data som ska skrivas och även adressen på mottagaren. Modulen i

Metod 14

(25)

det högre lagret, som kan benämnas kärnmodulen, hämtar data ur en initieringsfil som sedan skrivs till sensorn i form av värden på parametrar och information om vilka register som dessa värden ska skrivas i. Under kommunikationsprocessen så uppdateras flaggor av I

2

C-modulen som berättar för resterande delar av programmet vilket stadie i dataöverföringen som den befinner sig i. Kärnmodulen kallas på i sin tur av en huvudmodul som är det högsta lagret. Här tilldelas de GPIOs som är kopplade till sensorn, bland annat seriell data-pin och seriell data klockpuls-pin, till modulerna i FPGAn. Huvudmodulen får också uppdaterade flaggor av kärnmodulen för att förhindra logiska kollisioner som kan leda till att sensorn inte initieras korrekt eller att pixeldatan avläses fel.

Figur 3.1: Logik för seriell dataöverföring.

De huvudsakliga parametrar som kom att korrigeras var exponeringstid, horisontell blankningstid, vertikal blankningstid, start- och slutkolumn, samt start- och slutrad.

3.2.2 Avläsning av pixeldata

Kärnmodulen har även uppgiften att hantera avläsningen av pixeldatan. Detta sker genom att påbörja samplingen av en ny bild då den vertikala synksignalen från sensorn blir hög, och därefter avläsa pixlar synkroniserat med sensorns pixelklocka då den horisontella synksignalen från sensorn är hög, detta illustreras i figur 3.2.

Varje pixel består av 10 bitar som tas emot av sensorn parallellt över 10 GPIOs och lagras i en buffer för varje kolumn i en bild.

Figur 3.2: Logik för avläsning av pixeldata.

Metod 15

(26)

3.2.3 Kolumnprocessning

Det andra delmomentet gick ut på att implementera en metod som indentifierar positionen av en lasers brytning på sensorn längs varje kolumn. En, för ändamålet, passande algoritm implementerades för att utföra detta. Fördelen med att använda en FPGA är förmågan att kunna utföra parallella operationer, vilket vi ville utnyttja i detta projekt genom att köra algoritmen parallellt med den inkommande pixeldatan för möjligheten att behålla bildfrekvensen.

Då bilden av en laserlinje på sensorn är bredare än 1 pixel längs varje kolumn, vilket kan observeras i figur 3.3, så måste ett centrum c identifieras. Metoden som användes för detta går ut på att beräkna ett viktat centrum för en grupp sammanhängande pixlar som alla avgivit ett värde över ett fördefinierat gränsvärde g. Gränsvärdet undviker att brus och omgivningens skillnad i ljusintensitet påverkar det beräknade centrumet. Fördelen med denna metod är att det framräknade centrumet inte be- höver vara en representation av en specifik pixels position, utan genom att behålla decimaler kan ett mer noggrannt centrum hittas och systemet blir inte lika begrän- sat av sensorns upplösning, vilket illustreras i figur 3.3. Denna metod tar också hänsyn till att laserns avbild inte alltid kommer att vara symmetrisk beroende på vissa felkällor som nämndes i avsnitt 2.1.1, illustrerade i figur 2.2, vilket medför att centrum inte alltid är den pixel med högst värde. Algoritmen kan beskrivas med ekvation 3.2,

c =

P

n

np

n

P

n

p

n

, p

n

≥ g (3.2)

där n är en pixels position längs kolumnen och p

n

är pixelns värde.

Figur 3.3: En lasers avbild över 16 kolumner med viktat centrum (rött), först utan och sedan med decimaler.

3.2.4 Geometri

Det tredje delmomentet gick ut på att bestämma alla geometriska parametrar som krävs för att kunna översätta ett beräknat värde c ur ekvation 3.2 till en position r i mätområdet. Resultaten av testen beskrivs i kapitel 4.

Metod 16

(27)

Beräkningar

För att bestämma hur bildsensor och laser ska placeras i förhållande till varandra beräknades geometrin utifrån avsnitt 2.1.2. Då sensorns breakout board inte tillät att förflytta eller vinkla sensorn i förhållande till linsen, krävdes en geometri som baserades på breakout bordens konstruktion för att kunna implementeras i ett test. Begränsningarna uppfyllde inte kravet att mätobjekten ska ha stor frihet med avseende på form kring den cylindriska koppling som ska mätas, men fungerar utmärkt till att bestämma noggrannheten av systemet. Breakout boarden tillät för- flyttning av optiskt centrum vinkelrätt mot sensorplanet, vilket kunde utnyttjas till att välja en passande baslinje B. Figur 3.4 visar hur den geometriska uppbyggnaden ser ut.

Figur 3.4: Geometrisk uppbyggnad av laser, lins, och bildsensor i förhållande till varandra.

Först bestämdes längden B mellan lasern och det optiska centrumet. Det var viktigt att välja ett kort avstånd så att den slutliga inkapslingen skulle bli så liten som möjligt. Objekten som ska mätas fick ha en radie mellan 0 och 25 mm vilket gavs av uppdragsgivaren. Figur 3.4 visar att mitten på sensorplanet motsvarar positionen r = 12,5 mm i mätområdet vilket då utnyttjar hela bildsensorn. Genom att välja B, samt radien till 12,5 mm kunde vinkeln α räknas ut enligt ekvation 3.3.

α = arctan 12, 5

B (3.3)

Metod 17

(28)

Nästa steg var sedan att med hjälp av uttryck 3.4 beräkna intervallet för s,

s ∈ ± N 4x

2 (3.4)

vilket är den fysikaliska dimensionen på bildsensorn, där N är antal pixlar i den vertikala riktningen och 4x är den verkliga dimensionen av en pixel. Dessa värden fanns att hämta ur bildsensorns datablad.

b

0

kunde sedan lösas ut i syfte att utnyttja hela sensorytan. För att göra detta sattes s till det högsta värdet på sensorytan, eftersom att detta motsvarar det lägsta värdet i mätområdet. Detta visualiseras genom att titta på den horisontella linjen som går ifrån 0 mm i mätområdet till det högsta värdet s på sensorplanet i figur 3.4. Värdet sätts sedan in i ekvation 2.4, vilket kan förenklas som i ekvation 3.5.

r = B(b

0

sin(α) − s)

b

0

cos(α)→ b

0

= s

sin(α) (3.5)

För att omvandla enheten av ett identifierat centrum c, som fås ur ekvation 3.2, till en position s på sensorn i längdenheter användes följande ekvation 3.6,

s = ( 2c

n

max

− 1)s

max

(3.6)

där n

max

är antal pixlar i en kolumn och s

max

är största värdet i intervallet för s, framräknat med ekvation 3.4. Detta görs för att sedan kunna använda ekvation 2.2, där mätobjektets position i mätområdet för den kolumnen kan beräknas.

Ekvationer 3.6 och 2.2 implementerades i en loop i koden som körs på FPGAn för att kunna bilda vektor med alla värden r från ekvation 3.2 och därefter kunna sändas ut till en extern mottagare för vidare behandling.

3.3 Test

Tester utfördes på systemet efter varje delmoment av konstruktionen för att under- söka huruvida systemet beter sig som förväntat. Resultaten från testen beskrivs och presenteras i sektion 4.3.

3.3.1 Konfiguration av FPGA

Det första som behövde kontrolleras var att en bitstream kunde laddas ned till development boarden och konfigurera FPGAn korrekt. Detta testades genom att skriva ett simpelt program i Verilog som skapade en binär klocka utav 8 LED-lampor på dev-boarden, direkt kopplade till pins på FPGAn. Denna metod ansågs enklast och tillräcklig då LED-laporna var ett bra sätt att få respons från FPGAn innan någon annan form av kommunikation är upprättad.

Metod 18

(29)

3.3.2 Initiering av sensor

Nästa test utfördes efter initieringen av sensorn och gick ut på att verifiera att pixeldatan som avläses uppförde sig som förväntat och på så vis säkerställa att sensorn initierats korrekt. För att testa detta skrevs en modul i VHDL som kon- verterar ett 10 bitars binärt pixelvärde till motsvarande decimaltal på dev-boardens 7-segment display i realtid. En counter, baserad på 100 MHz-klockan i development boarden, räknade antal mottagna bilder under en sekund implementerades sedan.

För avläsning av detta värde användes också 7-segment displayen.

3.3.3 Systemets precision

Inför detta test bestämdes och beräknades de geometriska storheter, nämnda i avs- nitt 3.5.4, som krävs för att översätta en position s på sensorn till ett position r i mätområdet. Dessa storheter benämns som vinkeln α, baslinjen B, samt kortaste avståndet b

0

mellan sensorn och linsens fokus. Övriga storheter, specifika till de komponenter som använts är linsens brännvidd som är 6 mm, samt laserns avstånd till fokus som är 70 mm. Framräknade värden på storheterna presenteras i kapitel 4.

För att få ett optimalt testresultat av systemets precision krävdes att kompon- enternas positionering motsvarade nämnda geometriska storheter till största möj- liga precision. Av denna anledning användes ett optikbord med tillhörande skena, vinkelanslutningar, och hållare. För förflyttning av ett mätobjekt mot laserkällan längs skenan användes en mikrometer med 10 µm mätnoggrannhet. Uppställningen illustreras i figur 3.5 och 3.6.

Osäkerheten kring mätområdets slutliga position kalibrerades bort genom att flytta mätobjektet tills sensorn visade ändpositionen på displayen. Positionen r i mil- limeter för en kolumn beräknades i FPGAn och visades därefter på 7-segment displayen med två decimalers precision. Bildsensorns värden avlästes mellan 100 µm stora förflyttningar av mätobjektet för ytterligare analys. Noggrannheten i de verkliga förflyttningarna är relaterade till mikrometerns noggrannhet, vilken är sig- nifikant högre än den som förväntas av systemet och kan därför försummas. Totalt antecknades 25 värden för att sedan jämföras med teoretiska värden i ett diagram.

Metod 19

(30)

Figur 3.5: Uppställning av testutrustning och komponenter, från ovan.

Figur 3.6: Uppställning av testutrustning och komponenter, från sidan.

Metod 20

(31)

3.4 Utvärdering och analys av resultat

Efter varje genomfört test gjordes en utvärdering av systemet för att se huruvida det förhåller sig till kravspecifikationen. Utvärderingen i sig bestod av att avgöra ifall systemet behöver ytterligare utveckling, jämförelse, konstruktion eller test. Det gjordes även jämförelser till tidigare forskning för att se hur resultaten förhåller sig till varandra. I slutändan kunde utvärderingarna resultera i förändringar eller att nya metoder och/eller komponenter valdes ut.

Systemets precision

För att analysera resultatet från precisionstestet beräknades medelvärdet av av- vikelserna E på de uppmätta värdena från de faktiska värdena.

E beräknades genom att subtrahera den faktiska positionen r från den uppmätta positionen r

m

enligt ekvation 3.7.

E = r

m

− r (3.7)

Medelvärdet beräknades därefter enligt ekvation 3.8, där n är antal mätvärden.

E =

P

n

E

n

n (3.8)

Därefter beräknades variansen v utifrån ekvation 3.9,

v =

P

n

(E

n

− E)

2

n − 1 (3.9)

vilket gav standardavvikelsen σ enligt ekvation 3.10.

σ =

v (3.10)

Metod 21

(32)

4. Resultat

Resultaten som presenteras i detta kapitel kommer från olika delmoment i projektet, vilka presenteras i flödesschemat i figur 4.1.

Figur 4.1: Flödesschema över projektets utförande.

4.1 Val av komponenter

Bildsensor

En 752x480px monokrom CMOS fotoelektrisk areasensor med global shutter-teknik vid namn MT9V022 på en breakout board med tillhörande lins valdes ut. Sensorn klarar 60 bilder per sekund vid full upplösning och en optimal klockfrekvens på 26,66 MHz. Sensorchippets bredd är 4,51 mm [19].

Figur 4.2: MT9V022 bildsensor på Arducam breakout board med lins.

Laser

En röd VLM-635-56 linjelaser från Quarton Inc. valdes ut. Lasern håller fokus från 70 till 145 mm från källan och linjebredden är högst 1 mm i detta område.

22

(33)

Utbredningsvinkeln är 60 grader vilket resulterar i att linjens längd i mätområdet blir minst 110 mm, vilket är mer än tillräckligt då diametern av mätobjekten ej överstiger 50 mm. Lasern har en våglängd på 638 nm vilket är runt maxvärdet för bildsensorns maximala effektivitet.

Figur 4.3: VLM-635-56 LPO-D60-F10 från Quarton Inc.

FPGA

Totalt antal pins som krävs för att driva bildsensorerna är 60 och slutsatsen av detta blev en development board vid namn Mimas A7 som bygger på Xilinxs Artix 7 FPGA. Boarden har tillräckligt med GPIOs, samt 2 gigabit RAM, Gigabit Ether- net, och den klarar den klockfrekvens som sensorerna kräver [20]. En övrig positiv egenskap är att den kan konfigureras från en PC över USB, utan en JTAG, då en JTAG kostar omkring 2000 kr.

Figur 4.4: Numato LAB Mimas A7 development board.

Xilinx var av intresse då en licens för deras design studio Vivado kan erhållas gratis som student [21]. Även Xilinxs MicroBlaze softcore processor används i stor utbred- ning utav många utvecklare och därför finns mycket inspiration att hämtas kring olika applikationer.

4.2 Beräkningar

Längden mellan lasern och det optiska centrumet, B, valdes till 20 mm då detta är ett rimligt avstånd när komponenterna sedan ska kapslas in.

Resultat 23

(34)

Alfa beräknades genom att sätta in värden i ekvation 3.3:

α = arctan 12.5

B = arctan 12.5 20 = 32

Vidare kunde även s beräknas genom att se i databladet att antal pixlar per kolumn är 752 stycken och varje pixels verkliga storlek är 6 × 6 µm. Uttryck 3.4 gav därför

s ∈ ± N 4x

2 = ± 752 × 6µ

2 = ±2.255mm

Till sist beräknades b

0

genom att sätta r = 0 mm då det är det lägsta värdet i mätområdet och s = 2,255 mm vilket motsvarar det högsta värdet på sensorytan.

Insatta värden i ekvation 3.5 gav

b

0

= s

sin(α) = 2.255

sin(32

) = 4.255mm

Figur 4.5: Geometrisk uppbyggnad av sensor, laser, och mätområde i förhållande till varandra.

4.3 Digitalt inbyggt system

Den slutgiltiga konstruktionen av det digitala systemets logiska uppbyggnad il- lustreras i figur 4.6.

4.4 Test

Nedan presenteras resultat utifrån de tester av systemet som genomförts.

Resultat 24

(35)

Figur 4.6: Blockdiagram över det digitala inbyggda systemet.

4.4.1 Konfiguration av FPGA

Varje pin kopplad till en LED sätts hög då en räknare räknat upp ett visst antal klockpulser. Skillnaden i antal klockpulser för varje pin är att antalet dubblas till den pin kopplad till nästkommande LED. "LD0" i figur 4.7 skiftar tillstånd varje sekund, och "LD1" skiftar varannan sekund, osv.

Figur 4.7: Bild av den binära klockan under räkning.

Den binära klockan räknade upp som förväntat vilket påvisade en lyckad konfigur- ation av logiken in i FPGAn. En JTAG behövde därför inte införskaffas.

4.4.2 Initering av sensor

Ljusnivån på den yta som sensorn var riktad mot gav ett värde på 7-segment dis- playen, som visas till vänster i figur 4.8. När ljusnivån på ytan höjdes så förändrades värdet motsvarande, vilket visas till höger i figur 4.8.

Resultat 25

(36)

Figur 4.8 En pixels utslag vid olika belysning.

4.4.3 Systemets precision

Utifrån 100 µm stora förflyttningar av mätobjektet noterades uppmätta värden givna av systemet. För att kunna analysera resultatet plottades den verkliga till- sammans med den uppmätta positionen i grafen i figur 4.9.

Medelvärdet för avvikelsen går att avläsa i tabellen i bilagor under "Medelavvikelse".

Standardavvikelsen beräknades till följande värde.

σ = 0.0743mm

Avvikelserna visualiseras tydligare i figur 4.10.

Figur 4.9 Graf som jämför uppmätt värde och det verkliga värdet.

Resultat 26

(37)

Figur 4.10 Diagram av avvikelser mot förflyttning från test.

Resultat 27

(38)

5. Diskussion

I detta kapitel diskuteras resultaten och jämförs med tidigare relaterade arbeten.

Felkällor kommer att presenteras, samt vad som hade kunnat göras för att uppfylla alla målen för detta projekt.

5.1 Testresultat

Målet med att testa systemets precision var för att kunna analysera och dra slutsat- ser angående huruvida kravet om 0,1 mm noggrannhet är uppfyllt. Utifrån grafen i figur 4.9 går det att se att uppmätta värden följer mätobjektets förflyttning och att mätfelen är ganska jämt fördelade. Detta argument kan styrkas med att medelvär- det av mätfelen är nära noll, 0,0168 mm för att vara exakt. En relaterad studie [10] nämner att noggrannheten vid användning av samma algoritm och uppställning kan förväntas vara 1/2 pixel. För att jämföra detta med vårt system kan vi beräkna representationen av 1/2 pixel i mätområdet, vilket är mätområdet dividerat med två gånger antal pixlar i en kolumn.

25mm

2 × 752px = 0, 0166mm

I förhållande till detta påstående är standardavvikelsen σ = 0, 0743 mm för vårt systems mätfel sämre med en faktor 4.

Detta kan bero på att vi inte uppnådde ett perfekt fokus för sensorn under testet på grund av svårigheten att ställa in linsens avstånd till sensorn med tillräcklig noggrannhet. Om linsen ligger fel kan det uppstå delvis fokus på sensorn, vilket kan förklara de sammanhängande mätfelen i mitten av grafen. Tillfälligt brus är uteslutet då varje mätvärde visades oförändrat på displayen under ett stort an- tal bilder tagna med sensorn. För att uppnå högre noggrannhet i geometrin för systemet kunde en stadig kapsel frästs ut som positionerar alla komponenter med högre precision än den uppställning som används i testet.

Den laser som används i prototypen har en relativt hög tjocklek på 1 mm i förhål- lande till noggrannheten på 0,1 mm som ska uppnås. I ideala förhållanden ska detta inte ha någon betydelse då algoritmen ska hitta centrum, dock finns det större chans för felkällor såsom reflektioner med en bredare laserlinje i praktiken. Den valda lasern fungerar bra till vår prototyp, men till slutgiltiga projektet kommer en bättre laser att användas.

5.2 Geometri

Geometrin i den uppställning som använts till prototypen uppfyller inte kravet att mätobjekten ska kunna ha stor frihet att enkelt placeras oavsett form, då sensorn och linsen kommer sitta i vägen för utstickande delar. För att lösa detta problemet behövs en uppställning som flyttar ned mätområdet i förhållande till sensorn och linsen. En sådan uppställning illustreras nedan i figur 5.1.

28

(39)

Figur 5.1: Uppställning av komponenter för att uppfylla kravspecifikationen.

5.3 Export av data

Då Gigabit Ethernet är, relativt till detta projekt, ett ganska avancerat protokoll var tanken att använda en blockdesign i Xilinx Vivado Design Suite, konstruerat av Xilinxs färdiga IP-block. För att få tillgång till dessa block krävs en licens som kan erhållas gratis för studenter.

I figur 2.12 illustreras översiktligt hur denna blockdesign skulle vara uppbyggd för att vara anpassad till den development board som användes i detta projekt. I centrum av figuren kan man se en MicroBlaze-processor, vilken är en så kallad softcore processor då den är programmerad in i en FPGA istället för att vara permanent implementerad i en IC-krets. Instruktionerna för vad som ska sändas och hur, skulle körts på MicroBlaze-processorn via en .elf-fil som genererats via mjukvara skriven i Vitis som är en enhetlig mjukvaruplattform av Xilinx. Logiken bakom denna mjukvara var inte tänkt att vara avancerad, då endast en vektor per bild ska sändas i en form av en "first in first out"-sekvens. Trots den enkelheten så utnyttjar MicroBlaze- processorn mycket plats i FPGAn och chippet utvecklar därför en större mängd värme. Detta kan skapa komplikationer om inkapslingen behöver vara IP-klassad och inte har bra kylförmåga.

När bildsensorerna drivs i högsta möjliga bildfrekvens på 60 bilder per sekund motsvarar detta 260 000 bitar per sekund (kbps). Vårt system har totalt tre bild- sensorer vilket kräver en överföringshastighet på totalt 780 kpbs. Denna överföring- shastigheten är betydligt lägre än vad Ethernet klarar av, men fördelen med att använda Ethernet är att standarden används brett inom industrin och är därför lämplig för miljön som systemet är ämnat för.

Diskussion 29

(40)

5.4 PCB design

För att få ner storleken på systemet var tanken att identifiera relevanta komponenter och utifrån detta konstruera ett kretsdiagram för att slutligen skapa en PCB-design.

PCB-designen skulle innehålla utrustning som t.ex. överspänningsskydd, kontakter för att koppla in sensorer och lasrar, samt port för Ethernet och för spänningsmat- ning. Detta skulle leda till att det slutliga kretskortet får en minsta formfaktor som sedan kan kapslas in med nödvändig IP-klassning. Kretsdesign kring FPGAn och dess kringutrustning skulle inspireras från evaluation boardens dokumentation vilket bland annat innehåller nödvändig kretsdesign för systemet.

5.5 Samhällskrav på teknisk produktutveckling

Syftet med uppgiften var att skapa ett optiskt system för mätning av linjeprofil med mål att skapa ett så bra förhållande mellan pris och effektivitet som möjligt.

Detta är ur ett ekonomiskt perspektiv gynnsamt för Lantz Measuring AB då det försvinner en mellanhand mellan de lösa komponenterna som använts i detta projekt och företaget, jämfört med inköp av färdiga sensorsystem. Även företagets kunder gynnas ekonomiskt då prissättningen kan hållas relativt låg.

Ur ett miljömässigt perspektiv används färre komponenter än om systemet skulle konstrueras av flera färdiga sensorsystem. Varje komponent måste tillverkas, lagras, och fraktas. Vid framtagningen av detta ändamålsspecifika system kunde vi välja icke-överkvalificerade komponenter, alltså komponenter som kommer utnyttjas fullt ut. På så vis krävs ingen onödigt kostsam och energikrävande tillverkningsprocess.

Vi har även valt en skonsam process för produktutveckling ur ett både ekonomiskt och miljömässigt perspektiv då vi utförde en omfattande förundersökning. Detta för att förhindra onödiga inköp av komponenter som eventuellt inte skulle kunna användas.

Diskussion 30

(41)

Diskussion 31

(42)

6. Slutsats

Att konstruera ett system för mätning av linjeprofil på objekt upp till 50 mm dia- meter som ska besitta 0,1 mm noggrannhet går att utföra med de komponenter och den metod som använts i detta projekt. Standardavvikelsen i mätresultatet påvisar att det finns utrymme för förbättringar för att uppnå en mer pålitlig noggrannhet i mätvärdet. Sensorn har en upplösning som tillsammans med den algoritm som valts ska klara av att uppfylla kravet på noggrannheten med en bra pålitlighet, vilket gör den till en prisvärd komponent. Det hade gynnat pålitligheten med en laser som kan projicera en tunnare, skarpare, linje än den laser som använts. Även geometrin kräver högre precision i placering av sensor, optisk lins, och linjelaser än vad som uppnåtts i testet i detta projekt, vilket också var tanken till den slutliga proto- typen. Den FPGA som valts hanterar dennes uppgifter utmärkt, och är samtidigt inte överkvalificerad, vilket gör den mycket prisvärd i denna situation. Hastigheten som systemet uppnår i att avge ett mätresultat är mycket snabbt i förhållande till klassiska metoder, vilket uppfyller kravet på att mätning ska ske på kort tid. På grund av att licensen som krävdes för att upprätta Ethernetkommunikation inte erhölls i tid kunde export av mätdata inte utföras.

Under detta projekt har vi lärt oss enormt mycket om vad det innebär att sam- manfoga elektronik och mjukvara med optik, matematik och logik för att skapa ett system som löser ett praktiskt problem. Det har krävts mer än vad vi först förväntat oss vilket har givit ny kunskap om vad som ingår i att utveckla ett system av denna sort.

För vidareutveckling av systemet behöver, som tidigare nämnt, en kommunikation för export av data upprättas, samt en geometri för triangulering enligt figur 5.1.

Därefter en PCB-design och slutligen en robust kapsling av mätkomponenter och det digitala inbyggda systemet. Utöver detta skulle det behövas test för att be- stämma optimal exponeringstid för sensorerna i olikt belysta miljöer. En automat- isk kalibreringsmetod för att ställa in exponeringstiden skulle bidra till en produkt som är mer anpassningsbar. En annan kalibreringsmetod för att bestämma varje pixelkolumns representation av position i X-led skulle också kunna utvecklas.

32

(43)

Slutsats 33

(44)

Referenser

[1] S. Van Wolputte, W. Abbeloos, S. Helsen, A. Bey-Temsamani and T. Goedemé,

‘Embedded line scan image sensors: The low cost alternative for high speed imaging,’ Nov. 2015 (cit. on p. 3).

[2] LMI3D. (2021). ‘Line profile sensors,’ [Online]. Available: https://lmi3d.

com / family / line - profile - sensors/ (visited on 7th May 2021) (cit. on p. 3).

[3] Leuze. (2021). ‘Line profile sensors,’ [Online]. Available: https://www.leuze.

com/ (visited on 7th May 2021) (cit. on p. 3).

[4] Keyence. (2021). ‘Line profile sensors,’ [Online]. Available: https : / / www . keyence.com/products/measure/laser-2d/ (visited on 7th May 2021) (cit.

on p. 3).

[5] I. Bravo, J. Baliñas, A. Gardel, J. L. Lázaro, F. Espinosa and J. García,

‘Efficient smart cmos camera based on fpgas oriented to embedded image processing,’ Sensors, vol. 11, no. 3, pp. 2282–2303, 2011 (cit. on p. 3).

[6] T. Haamed, A. Ashfaq and R. Mehmood, ‘Intelligent sensor,’ Halmstad: Sek- tionen för Informationsvetenskap, Data– och Elektroteknik (IDE), Högskolan i Halmstad, Feb. 2012 (cit. on p. 3).

[7] D. Williams. (2021). ‘Spokefpga,’ [Online]. Available: https://davidthings.

github.io/spokefpga/ (visited on 9th Feb. 2021) (cit. on p. 3).

[8] LAP. (2021). ‘Lap contour check,’ [Online]. Available: https : / / www . lap - laser.com/products/shape/ (visited on 9th Mar. 2021) (cit. on p. 3).

[9] B. Curless and M. Levoy, ‘Better optical triangulation through spacetime ana- lysis,’ in Proceedings of IEEE International Conference on Computer Vision, 1995, pp. 987–994 (cit. on p. 4).

[10] M. Johannesson, SIMD Architectures for Range and Radar Imaging, ser. Linköping studies in science and technology: Dissertations. Department of Electrical En- gineering, Linköping University, 1995 (cit. on pp. 5, 6, 28).

[11] C. Poynton, Digital Video and HD: Algorithms and Interfaces, 2nd ed. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2012 (cit. on p. 6).

[12] D. Fritsch and R. Spiller, ‘Ccd versus cmos - has ccd imaging come to an end?,’ 2001 (cit. on pp. 6, 7).

[13] C. Liang, L. Chang and H. H. Chen, ‘Analysis and compensation of rolling shutter effect,’ Image Processing, IEEE Transactions on, vol. 17, pp. 1323–

1330, Sep. 2008 (cit. on p. 7).

[14] L. R. Migliore, Laser Materials Processing. Bosa Roca, United States: Taylor Francis Inc, Apr. 1996 (cit. on p. 8).

34

(45)

[15] A. Jacob, W. N. W. Zakaria and M. R. B. M. Tomari, ‘Evaluation of i2c communication protocol in development of modular controller boards,’ Sensors (Basel, Switzerland), vol. 11, pp. 4991–4996, Apr. 2016 (cit. on pp. 9, 14).

[16] E. Hamada, Y. Fujii, Y. Igarashi, M. Ikeno, S. Mihara, H. Nishiguchi, K. Oishi, T. Uchida, K. Ueno and H. Yamaguchi, Gigabit ethernet daisy-chain on fpga for comet read-out electronics, 2021. arXiv: 2011.12529 (cit. on p. 11).

[17] U. S. B. Implementers Forum. (2021). ‘SuperSpeed USB,’ [Online]. Available:

https://www.usb.org/superspeed-usb (visited on 9th Mar. 2021) (cit. on p. 11).

[18] A. Belenky, A. Fish and O. Yadid-Pecht, ‘Global shutter cmos image sensor with wide dynamic range,’ vol. 54, Jan. 2007, pp. 314–317 (cit. on p. 13).

[19] ArduCAM. (2021). ‘ArduCAM MT9V022,’ [Online]. Available: https://www.

arducam.com (visited on 9th Mar. 2021) (cit. on p. 22).

[20] N. LAB. (2021). ‘Numato LAB Mimas A7 Development Board,’ [Online].

Available: https://numato.com (visited on 9th Mar. 2021) (cit. on p. 23).

[21] Xilinx. (2021), [Online]. Available: https : / / www . xilinx . com (visited on 9th Mar. 2021) (cit. on p. 23).

REFERENSER 35

(46)

Bilagor

Tabell över testresultat.

36

(47)

Besöksadress: Kristian IV:s väg 3 Postadress: Box 823, 301 18 Halmstad Telefon: 035-16 71 00

E-mail: registrator@hh.se www.hh.se

Victor Svahn

Andreas Johansson

References

Related documents

Erforderligt antal belastningar per mätpunkt för att uppfylla ovanstående krav ska anses uppfyllt, får bestämmas enligt följande metod:. 1. Erforderligt antal extra belastningar

Orsaken till att kartor och bilder ej hanteras digitalt är att kostnaden för lagring och distribution av bildbaserad information på konventionella magnetiska minnesmedier varit

meringsarbete fordrar inblick i Boolesk algebra. Fysiska fel på kretsar kan också uppstå. Riskerna ökar med komplexiteten hos systemet. För att uppnå en säker funktion

• Man kan även låta destruktorn vara privat då förhindras allokering på

Gref d’Erfeuil gaf ingen upmårksamhet åt Italien, och gjorde nåstan omöjligt för lord Nelvil at sysselsätta sig dermed; ty lian storde altid den sinnesstållning som gör at

Figur 16: Schematisk bild över strålgången i kameran i kameran för fall A och B som reflekteras i övre och undre receiverrörets kant och från vilka plåtens normalvinkel

Syftet denna studie är att utvärdera tillförlitligheten och användbarheten hos en metod framtagen av Jeffrey Lewis (2016), metoden är ett generellt och enkelt sätt att

Figur 6 nedan visar årets absolut största dygnsnederbörd under åren 1881 till och med sep 2017 uppmätt vid någon av SMHIs stationer, manuella och automatiska.. Även data som