Ramper 1.4 DIY SMD Pick and Place (5 / 6 steg)
Steg 5: programvara
Den stora biljetten
Den olyckliga del av varje elektronik projekt är hur man talar med din maskin. Jag menar... du kunde prata med det och säga gulligt nonsens men du kommer inte få några resultat. Precis som talar till den heta tjejen i baren, ska hon ignorera du tills du vet hur man trycka på rätt konversation knapparna. Haha.
Hur som helst. Snabb sökning på Google visar en massa proprietär programvara som fungerar på proprietär maskinvara som är löjligt dyra. Finns det OpenPnP projektet, men de har inte någon slutanvändaren paket ännu för din användning! Och som jag förstår har det fortfarande kommer att kräva vissa tweaking och manuell ingångar att få igång.
Så lösningen...
Bygga ett gcode droppmunstycke program som skickar de lämpliga värdena. Jag vet det låter skrämmande vid första men inte fruktansvärt svårt.
Det finns två vägar du kan ta som jag jobbar på just nu. Så har jag inte för mycket information för dig i nuläget.
Manuell GCode
Registrera alla ståndpunkterna som behövs och bygga själv en handskriven algoritm. Det skulle gå ungefär så här:
- noll maskinen
- lyft huvud munstycke
- gå till komponent reel
- dra tillbaka bandet för att få komponent (släppa munstycket, flytta tejp, lyft munstycke)
- flytta över komponent på rulle
- släppa munstycket
- slå på sug
- höja munstycke
- flytta till styrelsen
- lägre munstycke
- stänga av sug
- upprepa från steg 2 för alla komponenter
Skapa ett Program
Jag har byggt en mycket mycket mycket rudimentär Java program (varför Java? Jag byggde detta program förra året för ett annat projekt och varför göra om något när du redan har något som fungerar?) som uppnår ett par saker:
- upprätta seriell kommunikation med ramper
- DROPP kommandon över följetong
- skärmkalibrering rutin att kolla hastigheten på resor
- justering rutin av bandet rullar
- manuell inmatning
- köra en programmerad textfil med alla andra funktioner som automatisk
Programmerade textfilen kräver varje kodrad ska innehålla 4 element, resten av rutin tas om hand i java-programmet. Grundläggande formatet på filen innehåller en Placera nummer, x-koordinaten och y-koordinat, rotation. Till exempel "1 X100 Y100 S0" kommer att säga att ska gå plocka upp en komponent på position 1, placera den på (100.100) och rotera 0 grader. Den rotation del kommer att genomföras vid ett senare tillfälle, som jag har planer på att installera ett servo på z-axeln att rotera sugmunstycket.
Det finns en zip-fil som innehåller paketet NetBeans. Programmet är långt ifrån polerad, men core mekaniken är det och det är TUNGT dokumenterad. Någon som tagit minst en enkel kurs i programmering kommer att kunna gå igenom metoder logiskt och fullt ut. Jag ska erkänna dock att vissa delar av koden kasta fel och text navigeringen är lite buggigt och inte flöda korrekt, men det är vad du får från en student som har haft endast en termin av datorprogrammering. Haha. Jag bara bryr sig att core mekanik arbeta och jag kan få det att fungera på mitt projekt. Om jag har tid denna kommande termin jag kommer att arbeta på det och försöka utveckla baserade en bättre text slutprodukten som är mer vänlig till mindre datorn benägen.
Huvudskälet för att bokföra det är att se om någon förbipasserande är villig att ta en titt... och um... kanske hjälpa mig ut eller ge lite konstruktiv feedback mer än "Hej dude... Hur får jag denna sak till verk?"