3D-miljö Laser Scanner från början (4 / 7 steg)

Steg 4: 1. bearbetningsprogram



I första behandlingen skissar vi kommer att titta på vad webbkameran är att se och extrahera alla röda bildpunkter över en tröskel och spara dem i en annan bild som vita pixlar. Då ska vi städa det upp lite och avsluta med en tunn vit prickig profil av skannade föremål. Då sparar vi de vit pixel X-Y-koordinaterna till en textfil tillsammans med motor vinkeln vid varje bildruta.

Återigen, du kan bara titta på Del3 av video-serien eller titta igenom kommentarerna i skissen men jag ska redogöra för vad som händer här.

Igen, jag hoppar över den viktiga lite (draw loop). Så först och främst måste vi skapa två bilder som har samma storlek som webbkameran foder, 640 x 480. Ställa in bakgrunden till svart.

Nu behöver vi skriva ut motor vinkeln till motor vinkeln till textfilen, förutom att vi inte har läst den från Arduino ännu? Det är bra eftersom vi vet att det har noll till att börja med, och nästa gång runda får vi läsa det! Det behöver göras detta sätt att undvika skrivs en massa kinesiska tecken till textfilen. MEN innan vi skriver denna vinkel, måste vi föregå det med ';'. Detta är så nästa behandling program vet det har att göra med en ny bildruta från webbkameran när den ser en ';'.

Nästa måste vi kontrollera om en ny bildruta från webbkameran är tillgängligt, om det är då vi läser det! Detta sparar en webbkamera ram till videoobjektet och vi kan få enskild pixelvärden med hjälp av video.pixels[i] där "i" är antalet pixel kör från övre vänstra längs till höger sida av skärmen och ner. Så här börjar på 0 och går upp till 640 * 480 = 307200.

Här läser vi från den seriella porten att läsa motor vinkeln från Arduino. Vi kontrollera först om det finns fyra eller fler byte i följetong buffert, en flöte är fyra byte så vi måste vänta tills hela flötet är redo att läsa. Sedan läser vi inkommande data tills vi träffar en ny rad och spara den som en sträng. Efter det måste vi konvertera den till en flottör och spara den till "motangle", men bara innan, kontrollen att se om "myString" faktiskt sparat något.

Nu lite roligt. Skapa en for-loop som upprepas en gång för varje bildpunkt på webbkameran. Kontrollera om den aktuella pixeln har en röd värde som överstiger ett visst tröskelvärde. Här bestämmer du känsligheten på skannern. Den lägre tröskeln (så lågt som 1) desto mer känsliga scan, används för mycket mörka scener där laserljuset är mycket svagt, slå ut alla lampor för detta. En högre tröskel kan användas där det finns andra ljus i scenen (hålla det minimal ändå) och du bara vill ha ljusa linjen ska plockas. SÅ! Om röda är mer än detta värde, sedan placerar du en vit pixel i samma pixel koordinaten i bild 1. Detta ger en svart/vit bild där de röda bitarna är vit och allt annat är svart.

Om vi använde denna bild i 3D-programmet, skulle det nästan säkert krascha. Det är alldeles för många datapunkter. Det skulle också ge en mycket tjock ytfinish till allt eftersom raden är luddiga och brett.

Åtgärda detta genom att en annan slinga på samma sätt som den tidigare för loop. Gör sedan ett tag loop i det kretsar. While loop endast körs när det kommer över en vit pixel i bild 1 och det är fortfarande i bilden och om den är på en linje som är delbara med 5. Denna sista biten ger oss den streckade delen, måste du använda den modulo-funktion för att göra detta. Det nummer du använder kommer att avgöra den vertikal upplösningen för genomsökningen. Titta på videon för en bättre förklaring till detta.

Så i detta medan loop, vi bara räkna upp med "k" (och "i" också eftersom den för loop inte får en chans att göra det). Så denna loop upprepas så länge som det är i en rad med vita pixlar i bild 1, så "k" räknar hur många finns i en rad. När den träffar en svart pixel igen, hoppar ur loopen och plops en vit pixel i bild 2 mitt i raden det bara sprang igenom.

Måste du behöver skriva ut X- och Y-koordinaterna för denna nya vit pixel till textfilen! Kom ihåg att skilja koordinaterna med en ',' så nästa skiss vet vad som är vad. Om du vill skriva ut X-koordinaten, måste vi använda den modulo funktion igen, det kommer att ge oss den kolumn som pixel är på (jag % 640). Och Y-koordinaten måste vi hitta raden är det, göra detta bara genom att dividera antalet pixel bredd (jag / 640). Detta avrundar nedåt svaret vilket är perfekt eftersom det ger oss den exakta rad dess på!

Sedan kan vi skriva ut bilderna till våra render fönster för att se vad som händer. Jag satte webbkamera feed på toppen, och bild 2 nedan så jag kan se det slutliga resultatet. För att placera bilder, den första som börjar vid 0,0 (överst till vänster i fönstret) och nästa bild på 0,480 (halvvägs ner till vänster).

Vi måste kontrollera motor vinkeln och se om det är att skicka den hemliga koden att berätta för oss att stoppa skissen. Kom ihåg att vi skickar en vinkel på 500 när det är att vilja sluta, så vi bara kolla om det finns mer än 450. Om det är, sedan vi spola text fil bufferten och stäng filen och avsluta programmet.

Se Steg
Relaterade Ämnen

Bygga en 30$ laser Scanner

IntroduktionDetta instructable hjälper dig att bygga en 3D-scanner för mindre än $30, eller ens $12 om du redan har en USB webbkamera.Se prislapp och begränsningar av kommersiella skannrar jag beslutat att utmana mig själv att bygga min egen. Det sku...

3-D Laser Scanner

skapa din egen super högteknologiska 3-D laserscanner. Använder bara en laserpekare, vinglas, roterande plattform och en digital videokamera, kan du göra exakt 3-D modeller av ett objekt eller en person.Nu vet hur! Klicka på stegen ovan för mer infor...

Laser skär intarsia

jag var nyligen inspirerad att skapa min egen brickspelet. Målet med spelet är att skapa banor runt bordet och försöka bo i styrelsen så länge som möjligt. Jag tycker spelet fungerar bra i är det aktuella läget så jag beslöt att göra något lite mer b...

En linjär laser borste för att måla med ljus

om du älskar fotografi och experimentera med specialeffekter kommer du bli glad att veta att med en mycket enkel krets och en billig laser kan du enkelt bygga ett slags laser "scanner" för att ta imponerande bilder och porträtt.Mitt projekt var...

Chefbot: En DIY autonoma mobil robot för att servera mat på Hotell

Som titeln säger, ska vi se hur man bygger en autonom mobil robot kallas Chefbot som är för servering av mat och dryck i hotell och restauranger.Detta var ett hobbyprojekt och jag byggde denna robot efter att ha sett en robot som kallas Turtlebot2. H...

Arduino-drivna A-10 stick grepp remote w/Emergency Party knappen!

jag kom över Plama2002's "Emergency Party Button" bygga ett tag tillbaka och ville ha något liknande för min bar. Jag hade också en gammal USAF B-8 stick grepp från en A-10A som jag plockade upp i mitt tidigare liv. Jag tänkte att istället för a...

Hur man köper en laserskrivare.

Ny INFORMATION!Det här är en länk till en PDF-fil av hur Fyll nästan alla typer av laserskrivare patron. Det verkar som Samsung har tagit till lödning sina ID marker till en sekundär styrelse att göra det svårare.Detta är en lista med instruktioner,...

En sandsten block byggt av lego, blanda riktiga objekt med 3d Tryck

genom att kombinera 3d-scanning, 3d digital modellering och 3d-utskrifter, är det möjligt att skapa fantastiska och överraskande effekter, föremål som kan sömlöst smälter mellan verklighet och fantasi. I denna tutorial kommer beskriva jag processen a...

Raspberry Pi och ROS (Robotic Operating System)

i den här guiden vi ska gå över att inrätta en Raspberry Pi med Linux och ROS. Samt att bekanta sig med några av grunderna genom att köra några enkla handledning program från "ROS WIKI" . Om du är obekant med ROS kan du kolla in WIKI eller en av...

Testa 3D tryckta rigg för en R/C Wing segel mark Yacht prototyp

Mitt namn är Ernest Leigh och mitt företag heter Dragonfly HC3D Studios, LLC. Det är en start-up koncept designstudio tillägnad att skapa helt unika tre dimensionella modeller av futuristiska luftfartyg, fordon, tecken och andra fantasifulla skapelse...

Parámetros de Skeinforge en español

SkeinforgeSkeinforge es una herramienta para los programas ReplicatorG y MakerWare. ESTA herramienta recibe todas las configuraciones que desees para tus impresiones 3D y las släkten sv Gcode, es decir, las convierte sv archivos .x3g o .s3g antes de...

Copal - oslagbar i branschen för mycket tillförlitlig elektronisk komponent

Veta om Copal elektronik-del av gruppen Nidec:Som en del av gruppen Nidec är Copal Electronics en tillverkning av elektroniska komponenter. Företaget grundades i April 1967. Den första produkten som de utvecklat var wire wound trimmern som användes i...

Början Microcontrollers del 4: Installera programmering miljö (WinAVR)

Välkommen till nästa steg i vår serie. Vi kommer att introducera några grundläggande programmeringselement nu. Denna handledning är helt enkelt om hur du installerar din programmeringsmiljö. Den programmeringsmiljö som vi kommer att använda kallas Wi...

DIY High-Speed bok Scanner från skräp och billiga kameror

jag älskar böcker. Det finns några verkligt fantastiska kunskap och information dold ute i hårt för att hitta, sällsynta och inte kommersiellt gångbara böcker. Jag tycker att jag vill ha mina böcker med mig överallt. Men det är där problemen börjar....

CNC Laser för utskrift av bilder och gravyr - Shapeoko 2 baserade

Om du äger eller planerar att bygga en Shapeoko 2 CNC-maskinen, kommer att detta Instructable gå igenom stegen för att lägga till en 2 watt laser kan skriva ut gråskala bilder på många ytor. Du hittar också Detaljer om hur man gravera på full effekt....

3D-Scanner: FabScan Pi

Det finns flera sätt att bygga en prisvärd 3D scanner för ditt hem. Ett sätt är att göra bilder (kanske även automatisied) från alla sidor av ett objekt och låta Autodesk 123D fångsten gör sin magi. Ett annat alternativ är att använda en djup kamera...

Laser intarsia & Inlays - avancerad teknik

Att skapa trä inlays för en trälådaFör att skapa inlaga designen på denna trälåda (8 x 4 tum), använder jag Adobe Illustrator att rita vektor design och sedan använder ImagePaint programvara, som är en plug-in för Adobe Illustrator, för att använda t...

Configurando la Grabadora Laser Benbox DIY | Ställa in Benbox DIY laser gravörens

Hola! en este Instructable voy en compartir con ustedes el como configurar el programvara e instalar los förare para la maquina de grabado laser Benbox DIY.Primeramente compartir con ustedes que inget tengo ninguna relación con la empresa Benbox. Yo...

CS4985 Projekt: rörelse Scanner

Någonsin undrat om någon eller något kryper om ditt hus? Någonsin velat få realtidsdata om rörligheten några fot ifrån dig? Någonsin velat göra en revolver som upptäcker rörelse, bara för skojs skull? Sedan har jag projektet för dig!Enkelt. Lightweig...