From 76922d1774fd7d5436121532ac5be76b977d67c6 Mon Sep 17 00:00:00 2001 From: James Devine Date: Thu, 26 Dec 2013 15:42:16 -0800 Subject: [PATCH] --- helloworldlaser.pde | 353 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 353 insertions(+) create mode 100644 helloworldlaser.pde diff --git a/helloworldlaser.pde b/helloworldlaser.pde new file mode 100644 index 0000000..4faf505 --- /dev/null +++ b/helloworldlaser.pde @@ -0,0 +1,353 @@ + + + +int xPinOne = 3; +int laserPin = 4; +int xPinTwo = 5; +int yPinOne = 6; +int yPinTwo = 9; +int zPinOne = 10; +int zPinTwo = 11; +//int +int ledPin = 9; // LED connected to digital pin 9 +byte incomingByte; + + +int currentX = 0; +int currentY = 0; + +//byte imager[32768]; +void setup() { + pinMode(laserPin, OUTPUT); + lasermove(0,0); + // nothing happens in setup + lasermove(currentX,currentY); + laser(0); + +//Serial.begin(115200); +Serial.println("init complete"); +} + + +void loop() { + + + + + + + + + + + +directmove(34,31, 0); +directmove(26,122,1); +directmove(24,74, 0); +directmove(75,75,1); +directmove(69,37, 0); +directmove(68,122,1); +directmove(130,43, 0); +directmove(89,43,1); +directmove(89,43, 0); +directmove(89,121,1); +directmove(89,121, 0); +directmove(145,121,1); +directmove(91,71, 0); +directmove(121,71,1); +directmove(155,43, 0); +directmove(158,122,1); +directmove(156,122, 0); +directmove(189,121,1); +directmove(206,38, 0); +directmove(206,152,1); +directmove(206,152, 0); +directmove(282,151,1); +directmove(328,35, 0); +directmove(294,94,1); +directmove(294,93, 0); +directmove(328,166,1); +directmove(328,166, 0); +directmove(359,165,1); +directmove(359,164, 0); +directmove(363,45,1); +directmove(363,45, 0); +directmove(328,37,1); +directmove(24,172, 0); +directmove(46,481,1); +directmove(46,481, 0); +directmove(84,246,1); +directmove(84,246, 0); +directmove(127,477,1); +directmove(127,477, 0); +directmove(164,174,1); +directmove(233,198, 0); +directmove(181,201,1); +directmove(181,201, 0); +directmove(166,287,1); +directmove(166,287, 0); +directmove(162,465,1); +directmove(162,465, 0); +directmove(185,465,1); +directmove(185,465, 0); +directmove(236,200,1); +directmove(247,223, 0); +directmove(210,457,1); +directmove(248,226, 0); +directmove(290,213,1); +directmove(290,213, 0); +directmove(298,266,1); +directmove(298,266, 0); +directmove(240,283,1); +directmove(259,279, 0); +directmove(322,491,1); +directmove(317,215, 0); +directmove(324,452,1); +directmove(324,452, 0); +directmove(373,441,1); +directmove(388,223, 0); +directmove(388,472,1); +directmove(388,472, 0); +directmove(432,452,1); +directmove(432,452, 0); +directmove(393,230,1); +directmove(449,214, 0); +directmove(459,385,1); +directmove(476,207, 0); +directmove(461,385,1); +directmove(451,218, 0); +directmove(477,211,1); +directmove(466,404, 0); +directmove(466,404,1); +directmove(460,404, 0); +directmove(460,404,1); +directmove(460,404, 0); +directmove(460,404,1); +directmove(462,412, 0); +directmove(462,412,1); +directmove(460,412, 0); +directmove(460,412,1); +directmove(460,402, 0); +directmove(460,402,1); +directmove(464,404, 0); +directmove(464,404,1); +directmove(464,414, 0); +directmove(464,414,1); +directmove(462,412, 0); +directmove(462,412,1); +directmove(457,412, 0); +directmove(457,412,1); +directmove(457,409, 0); +directmove(457,409,1); +directmove(457,405, 0); +directmove(457,405,1); +directmove(463,404, 0); +directmove(463,404,1); +directmove(468,410, 0); +directmove(468,410,1); +directmove(466,411, 0); +directmove(466,411,1); +directmove(462,411, 0); +directmove(462,411,1); +directmove(463,409, 0); +directmove(463,409,1); +directmove(466,409, 0); +directmove(466,409,1); +directmove(470,417, 0); +directmove(470,417,1); +directmove(464,410, 0); +directmove(464,410,1); +directmove(462,408, 0); +directmove(462,408,1); +directmove(466,408, 0); +directmove(466,409,1); +directmove(468,409, 0); +directmove(468,409,1); +directmove(408,71, 0); +directmove(421,73,1); +directmove(451,79, 0); +directmove(469,75,1); +directmove(398,98, 0); +directmove(405,105,1); +directmove(405,105, 0); +directmove(422,117,1); +directmove(422,117, 0); +directmove(440,118,1); +directmove(440,118, 0); +directmove(457,111,1); +directmove(457,111, 0); +directmove(469,100,1); +directmove(420,40, 0); +directmove(407,54,1); +directmove(407,54, 0); +directmove(398,71,1); +directmove(398,71, 0); +directmove(390,103,1); +directmove(390,103, 0); +directmove(405,139,1); +directmove(405,139, 0); +directmove(434,139,1); +directmove(434,139, 0); +directmove(463,138,1); +directmove(463,138, 0); +directmove(471,128,1); +directmove(471,128, 0); +directmove(481,102,1); +directmove(481,102, 0); +directmove(481,67,1); +directmove(481,67, 0); +directmove(458,44,1); +directmove(458,44, 0); +directmove(421,44,1); +directmove(413,80, 0); +directmove(414,84,1); +directmove(463,86, 0); +directmove(462,90,1); +directmove(442,89, 0); +directmove(425,102,1); +directmove(425,102, 0); +directmove(440,108,1); +directmove(411,160, 0); +directmove(411,160,1); + +} + +void directmove(int targetx, int targety, int laserstate) +{ + int deltax = 0; + float xincrement = 0; + int deltay = 0; + float yincrement = 0; + int sumdelta = 0; + int numsteps = 0; + float truexposn = 0; + float trueyposn = 0; + truexposn = float(currentX); + trueyposn = float(currentY); + deltax = targetx - currentX; + deltay = targety - currentY; + sumdelta = deltax + deltay; + //Serial.println(deltax); + //Serial.println(deltay); +// currentX = startx; +// currentY = starty; +// lasermove(currentX, currentY); + numsteps = max((max(currentX,targetx)-min(currentX,targetx)),(max(currentY,targety)-min(currentY,targety))); + //Serial.println(numsteps); + xincrement = float(deltax) / float(numsteps); + yincrement = float(deltay) / float(numsteps); + //Serial.println(xincrement); + //Serial.println(yincrement); + if (laserstate == 1){ + delay(100); + laser(1); + delay(2); + } + for (int thisstep = 0; thisstep 500) + { + xcoord = 500; + } + + if (xcoord <= 255) + { + analogWrite(zPinTwo, 0); + analogWrite(zPinOne, 255-xcoord); + + } + else + { + analogWrite(zPinOne, 0); + analogWrite(zPinTwo, xcoord-255); + } +} + +void yposn(int ycoord){ + ycoord = 500 - ycoord; + if (ycoord > 500) + { + ycoord = 500; + } + + if (ycoord <= 255) + { + analogWrite(yPinTwo, 0); + analogWrite(yPinOne, 255-ycoord); + //analogWrite(yPinTwo, 255-ycoord); + + } + else + { + analogWrite(yPinOne, 0); + analogWrite(yPinTwo, ycoord-255); + //analogWrite(yPinOne, ycoord-255); + } +} + +void lefthandedsquare(){ + //right handed square + for (int i = 0; i<500; i=i+1) + {lasermove(i,0); + } + for (int i = 0; i<500; i=i+1) + {lasermove(500,i); + } + for (int i = 500; i>0; i=i-1) + {lasermove(i,500); + } + for (int i = 500; i>0; i=i-1) + {lasermove(0,i); + } } + + +void righthandedsquare(){ + //left handed square + for (int i = 0; i<500; i=i+1) + {lasermove(0,i); + } + for (int i = 0; i<500; i=i+1) + {lasermove(i,500); + } + for (int i = 500; i>0; i=i-1) + {lasermove(500,i); + } + for (int i = 500; i>0; i=i-1) + {lasermove(i,0); + } + +} +