Arduino Laser gravör (10 / 11 steg)
Steg 10: Förbättringar av gemenskapens Instructables
Detta steg är avsedd för att dela förbättringar av Instructables läsare.Handskakning - av "spiralout11235"
Den första förbättringen är från "spiralout11235" (Smart användarnamn!) som har genomfört seriell handskakning mellan bearbetning skissen och Arduino (för raster gravyr). Detta eliminerar behovet för att ange tidsfördröjningar i bearbetning skissen. Dessutom Arduino skiss funktioner PWM kontroll av laser output, och några andra förändringar märker du om du tittar igenom koden noga.
Han har vänligen erbjudit sig att dela sina idéer och kod. Här är hans anteckningar:
Arduino skiss: version 4.0 handslag
Processing skiss: 2.0 handslag
Version anteckningar: handskakning är nu genomfört: behöver inte längre ange fördröjningstiderna bearbetning. Detta innebär Arduino och bearbetning skicka och ta emot data när den andra är redo. Bearbetning väntar tills det tar emot seriella data: SerialEvent() utlöser och läser tills radbrytning "\n". Så är Serial.print () tills Serial.println() är hela kommandot från Arduino. (Endast svartvitt bilder, ingen gråskala)
1. Arduino println ut "A" och väntar för att ta emot detta och skicka tillbaka. "Anslutning till etablerade".
2. Arduino skickar "1" att signalera att den är redo för "linelength" av nästa uppsättning instruktioner.
3. om bearbetningen får "1" det sänder (linelength + 10) (skäl förklaras i koden).
4. Arduino nu väntar linelength. Läsningar följetong när det gäller och skriver linelength = linelength-10. Arduino skickar "2" signalering redo för instruktion block.
5. om bearbetningen får "2" skickar nästa instruktion block.
6. Arduino tar emot instruktioner block och fortsätter läsa varje byte till numBytes = linelength (förväntat antal byte) som grundläggande kvalitetssäkring av fullständiga uppgifter
7. Upprepa steg 2-6 tills alla instruktioner uppsättningar skickas.
Dessutom, kopplade jag upp en knapp och en kruka
-När Arduino startar upp, medan letar efter bearbetning för att starta (establishContact() funktion), gör det att användaren kan slå en knapp för att aktivera lasern; andelen "på" bestäms av läsningen av potten. Efter installationen används inte knappen/pot.
-Detta möjligt för mig att ställa in den laser Rita/strömbegränsning (vid max Pot) som radas upp mitt mål (på låg kruka)
-Knappen: en sida till marken, en sida till stift 12, som ställs in på INPUT_PULLUP
-Pot (10k eller något tillräckligt hög för att inte blåsa pin (20mA tror jag)): 1 slutet till 5V, den andra till Gnd, mitten till Analog (A0) eller stift 14
* Efter installationen bestäms lasereffekt utifrån definierade variabel laserPercentage
Laser kontroll måste vara på stift 10 (eller någon med PWM) för analogWrite() att arbeta. Om du inte har en kruka ännu, bara matar stift 14 5V så laser är inställd på full effekt.
Bearbetning och Arduino filerna finns i filen "Handshake.zip" nedan.
Om du vill dela dina förbättringar eller förslag, skicka mig ett meddelande (via Instructables eller getburnt1 och jag kan ladda upp dem till det här steget.