söndag 31 januari 2010

Program för styrning av fräs

Nu har jag uppdaterat min styrkrets så att den kan hantera g-code, eller åtminstone två av kommandona ("G00" och "G01"). Detta format går nämligen att generera från eagle och man får då koden som styr positionen av fräsen.

För att se vad som kommer att fräsas har jag skrivit ett litet java program som läsen in en sådan här fil innan den skickar ner den till styrkortet. På bilden nedan ser man en skärmdump som visar att jag kan markera vilka kommandon som skall skickas ner till fräsen, och även visar grafiskt vilken del av fräsningen som är markerad (det som visas med blåa linjer).

Tyvärr har jag fortfarande inte fått fast något fäste för fräs ovanför skivorna, men jag har testat med en blyertspenna vilken var väldigt svår att hålla stadigt i. Videon nedan visar körningen av programmet som är markerat ovan.


tisdag 26 januari 2010

Början till en datorstyrd 3D fräs

Nu när det är kallt ute har jag dragit mig från att åka till admittansen i Ryd för att etsa nya kretskort, därför tyckte jag det vore smart att smidigt kunna fixa dem hemma istället, men helst utan kemikalier. Så jag bestämde mig för att försöka göra en datorstyrd 3D fräs.



Än så länge har jag lyckats koppla ihop bottenplattan som nu kan röra sig i två dimensioner. Det är två spånskivor som topp och botten, och en masonitskiva i mitten för att stabilisera de fyra expansionsbeslagen (från Clas Ohlson) som sitter vinkelräta mellan skivorna. För att flytta skivorna är de fastsatta med muttrar på gängade stänger som är kopplade direkt på varsin stegmotor.



Jag hoppas snart kunna få till z-led också eller åtminstone någon stabil fästanordning över plattan för att fästa en fräs eller liknande så jag kan fräsa mitt första kretskort.


På datorn kör jag ett javaprogram som skickar stykommandon ner till processorn som styr stegmotorerna, än så länge får Javaprogrammet ta hand om rörelser utöver enbart x eller y-led, men jag kommer nog göra så styrkortet även klarar diagonala linjer för att få smidigare rörelser.

söndag 10 januari 2010

Fjärr till Nikon D90

I mellandagarna köpte jag en systemkamera, Nikon D90, som jag nu har byggt en fjärr till. Jag använde mig av en ytmonterad pic12f675 med intern oscillator. De enda övriga kompomenterna är tryckknapp, 2 motstånd, en transistor och en IR diod. Man kan klara sig utan transistorn, men då får man inte lika mycket effekt ur dioden och räckvidden minskar därefter.



Frekvensen på signalen är på 38.4kHz, 26 cykler i 1MHz, och information om utseendet hittade jag här.


Fjärren är framförallt för att ta kort från avstånd, men den gör det också lättare att ta flera kort från exakt samma position, ifall man vill göra en sekvens med ett kort varje minut osv. För min kamera gör den också så att jag kan ta kort med slutartider upp till 30min istället för 30sek, då funkar den så att jag öppnar med första trycket och stänger med andra.

Jag tänkte även testa att göra om koden så att fjärren även funkar på Canon kameror. Jag har även funderingar på en automatisk timer utlöst version, där man kan välja intervall mellan korten.

söndag 6 december 2009

IMU för styrning av servon

Nu har jag kopplat ihop IMU och servon så att servopositionerna bestäms av roll och pitch på IMUn, mest för att se att hela kedjan fungerar. På samma sätt ska vi ju styra quadcoptern är det tänkt.


tisdag 10 november 2009

IMU för styrning av 3d kub

På vår väg mot en quadcopter har jag och Torkel nu köpt in en IMU(Inertia Measurement Unit) för att förhoppningsvis kunna få en stabil farkost. Som en tidig test har jag tagit in mätvärdena från sensorn till en Java applikation där en kub visas. Kuben roteras runt x, y, och z axeln efter vad sensorn läser av.

Nu är det inga beräkningar av euler vinklar eller motsvarande, utan enbart en summering av förändringar på respektive axel som jag tar hänsyn till. Men det räcker för att jag ska lägg upp en liten videosnutt.




IMU:n är en "6DOF Razor" från SparkFun där vi även köpt ett par XBee för att kommunicera med vår helikopter.

måndag 5 oktober 2009

Ett till servo

Inte lika långt mellan inläggen denna gång...

Var på PowerToys efter jobbet idag och köpte ett till servo. Gick ganska smärtfritt att modda min konstruktion för att även styra höjdled:


Interfacet till datorn fanns redan sen tidigare, jag har lagt in stöd för 8st servon.


Med java appleten var det lika smidigt, bara att även ta hänsyn till avläst y värde på muspekaren, resultatet...






Källkoden för java-appleten finns på http://code.google.com/p/usb-interface-gui/, den är endast en moddad version av det som ingår i webcam-server.

Webbkamera med servo

Ett tag sedan förra inlägget, men har nu modifierat mitt tidigare projekt för att styra även servon. Det som krävs för detta är pulser på 1.5 - 2.5 ms med en periodicitet på 20ms.

Anledningen till att jag behövde införa detta är att jag och Torkel har börjat bygga en quad-copter och där behöver man denna styrning till motorerna.

Men i torsdags fick jag låna ett servo av Torkel så då var jag ju tvungen att hitta på något att använda det till, det blev att styra en webbkamera. Den går att styra från mitt java gui men har även gjort ett interface i php för att styra över nätet.


Här kan du se två filmer över kameran, den ena är just på kameran när den styrs från java-appleten, den andra över datorns syn över det hela.




För att få till en exakt syrning av servona är man tvungen att generera ganska exakta längde på pulserna, så mitt gamla program på usb-kortet var inte tillräckligt bra. Där hanteras USB rutinerna nämligen genom pollning. Jag löste det genom att ladda hem en ny version av grundversionen till programmet från Microchips hemsida, i detta kan jag använda interrupt för styrningen av tiderna som då blir väldigt exakta.