diff --git a/3DPrint.stl b/3DPrint.stl new file mode 100644 index 0000000..d9fa7c2 --- /dev/null +++ b/3DPrint.stl Binary files differ diff --git a/3DPrint.stl b/3DPrint.stl new file mode 100644 index 0000000..d9fa7c2 --- /dev/null +++ b/3DPrint.stl Binary files differ diff --git a/Attiny85_Source.ino b/Attiny85_Source.ino new file mode 100644 index 0000000..4daf306 --- /dev/null +++ b/Attiny85_Source.ino @@ -0,0 +1,151 @@ +#include +#include +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +int led = 1; // the PWM pin the LED is attached to +volatile boolean f_wdt = 1; +int counter = 0; + +// the setup routine runs once when you press reset: +void setup() { + pinMode(led, OUTPUT); + setup_watchdog(15); // approximately 4 seconds sleep + +} + +void fade(){ + for (int i = 0; i < 255; i++){ + analogWrite(led, i); + delay(5); + } + for (int i = 255; i > 0; i--){ + analogWrite(led, i); + delay(5); + } +} + +void jumpFade(){ + for(int i = 0; i < 6; i++){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } + for(int i = 5; i > 0; i--){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } +} + +void morse(){ + lS(); + lA(); + lY(); + space(); + lH(); + lI(); + space(); +} + +void loop() { + if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs + f_wdt=0; // reset flag + } + + fade(); + fade(); + fade(); + system_sleep(); + + jumpFade(); + jumpFade(); + jumpFade(); + system_sleep(); + + morse(); + morse(); + morse(); + system_sleep(); +} + +//functions for the letters and the numbers +void lA () {dot();dash();shortspace();}//letter A in morse code! +void lB () {dash();dot();dot();dot();shortspace();}//same for B +void lC () {dash();dot();dash();dot();shortspace();} +void lD () {dash();dot();dot();shortspace();} +void lE () {dot();shortspace();} +void lF () {dot();dot();dash();dot();shortspace();} +void lG () {dash();dash();dot();shortspace();} +void lH () {dot();dot();dot();dot();shortspace();} +void lI () {dot();dot();shortspace();} +void lJ () {dot();dash();dash();dash();shortspace();} +void lK () {dash();dot();dash();shortspace();} +void lL () {dot();dash();dot();dot();shortspace();} +void lM () {dash();dash();shortspace();} +void lN () {dash();dot();shortspace();} +void lO () {dash();dash();dash();shortspace();} +void lP () {dot();dash();dash();dot();shortspace();} +void lQ () {dash();dash();dot();dash();shortspace();} +void lR () {dot();dash();dot();shortspace();} +void lS () {dot();dot();dot();shortspace();} +void lT () {dash();shortspace();} +void lU () {dot();dot();dash();shortspace();} +void lV () {dot();dot();dot();dash();shortspace();} +void lW () {dot();dash();dash();shortspace();} +void lX () {dash();dot();dot();dash();shortspace();} +void lY () {dash();dot();dash();dash();shortspace();} +void lZ () {dash();dash();dot();dot();shortspace();} +void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code +void n2 () {dot();dot();dash();dash();dash();shortspace();} +void n3 () {dot();dot();dot();dash();dash();shortspace();} +void n4 () {dot();dot();dot();dot();dash();shortspace();} +void n5 () {dot();dot();dot();dot();dot();shortspace();} +void n6 () {dash();dot();dot();dot();dot();shortspace();} +void n7 () {dash();dash();dot();dot();dot();shortspace();} +void n8 () {dash();dash();dash();dot();dot();shortspace();} +void n9 () {dash();dash();dash();dash();dot();shortspace();} +void n0 () {dash();dash();dash();dash();dash();shortspace();} +void space () {delay (1200);}//space between words +void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300 +void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300 +void shortspace () {delay(600);}//space between letters + +// set system into the sleep state +// system wakes up when wtchdog is timed out +void system_sleep() { + digitalWrite(led,LOW); + cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF + set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here + sleep_enable(); + sleep_mode(); // System sleeps here + sleep_disable(); // System continues execution here when watchdog timed out + sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON +} +// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms +// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec +void setup_watchdog(int ii) { + byte bb; + int ww; + if (ii > 9 ) ii=9; + bb=ii & 7; + if (ii > 7) bb|= (1<<5); + bb|= (1< +#include +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +int led = 1; // the PWM pin the LED is attached to +volatile boolean f_wdt = 1; +int counter = 0; + +// the setup routine runs once when you press reset: +void setup() { + pinMode(led, OUTPUT); + setup_watchdog(15); // approximately 4 seconds sleep + +} + +void fade(){ + for (int i = 0; i < 255; i++){ + analogWrite(led, i); + delay(5); + } + for (int i = 255; i > 0; i--){ + analogWrite(led, i); + delay(5); + } +} + +void jumpFade(){ + for(int i = 0; i < 6; i++){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } + for(int i = 5; i > 0; i--){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } +} + +void morse(){ + lS(); + lA(); + lY(); + space(); + lH(); + lI(); + space(); +} + +void loop() { + if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs + f_wdt=0; // reset flag + } + + fade(); + fade(); + fade(); + system_sleep(); + + jumpFade(); + jumpFade(); + jumpFade(); + system_sleep(); + + morse(); + morse(); + morse(); + system_sleep(); +} + +//functions for the letters and the numbers +void lA () {dot();dash();shortspace();}//letter A in morse code! +void lB () {dash();dot();dot();dot();shortspace();}//same for B +void lC () {dash();dot();dash();dot();shortspace();} +void lD () {dash();dot();dot();shortspace();} +void lE () {dot();shortspace();} +void lF () {dot();dot();dash();dot();shortspace();} +void lG () {dash();dash();dot();shortspace();} +void lH () {dot();dot();dot();dot();shortspace();} +void lI () {dot();dot();shortspace();} +void lJ () {dot();dash();dash();dash();shortspace();} +void lK () {dash();dot();dash();shortspace();} +void lL () {dot();dash();dot();dot();shortspace();} +void lM () {dash();dash();shortspace();} +void lN () {dash();dot();shortspace();} +void lO () {dash();dash();dash();shortspace();} +void lP () {dot();dash();dash();dot();shortspace();} +void lQ () {dash();dash();dot();dash();shortspace();} +void lR () {dot();dash();dot();shortspace();} +void lS () {dot();dot();dot();shortspace();} +void lT () {dash();shortspace();} +void lU () {dot();dot();dash();shortspace();} +void lV () {dot();dot();dot();dash();shortspace();} +void lW () {dot();dash();dash();shortspace();} +void lX () {dash();dot();dot();dash();shortspace();} +void lY () {dash();dot();dash();dash();shortspace();} +void lZ () {dash();dash();dot();dot();shortspace();} +void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code +void n2 () {dot();dot();dash();dash();dash();shortspace();} +void n3 () {dot();dot();dot();dash();dash();shortspace();} +void n4 () {dot();dot();dot();dot();dash();shortspace();} +void n5 () {dot();dot();dot();dot();dot();shortspace();} +void n6 () {dash();dot();dot();dot();dot();shortspace();} +void n7 () {dash();dash();dot();dot();dot();shortspace();} +void n8 () {dash();dash();dash();dot();dot();shortspace();} +void n9 () {dash();dash();dash();dash();dot();shortspace();} +void n0 () {dash();dash();dash();dash();dash();shortspace();} +void space () {delay (1200);}//space between words +void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300 +void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300 +void shortspace () {delay(600);}//space between letters + +// set system into the sleep state +// system wakes up when wtchdog is timed out +void system_sleep() { + digitalWrite(led,LOW); + cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF + set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here + sleep_enable(); + sleep_mode(); // System sleeps here + sleep_disable(); // System continues execution here when watchdog timed out + sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON +} +// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms +// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec +void setup_watchdog(int ii) { + byte bb; + int ww; + if (ii > 9 ) ii=9; + bb=ii & 7; + if (ii > 7) bb|= (1<<5); + bb|= (1< +#include +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +int led = 1; // the PWM pin the LED is attached to +volatile boolean f_wdt = 1; +int counter = 0; + +// the setup routine runs once when you press reset: +void setup() { + pinMode(led, OUTPUT); + setup_watchdog(15); // approximately 4 seconds sleep + +} + +void fade(){ + for (int i = 0; i < 255; i++){ + analogWrite(led, i); + delay(5); + } + for (int i = 255; i > 0; i--){ + analogWrite(led, i); + delay(5); + } +} + +void jumpFade(){ + for(int i = 0; i < 6; i++){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } + for(int i = 5; i > 0; i--){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } +} + +void morse(){ + lS(); + lA(); + lY(); + space(); + lH(); + lI(); + space(); +} + +void loop() { + if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs + f_wdt=0; // reset flag + } + + fade(); + fade(); + fade(); + system_sleep(); + + jumpFade(); + jumpFade(); + jumpFade(); + system_sleep(); + + morse(); + morse(); + morse(); + system_sleep(); +} + +//functions for the letters and the numbers +void lA () {dot();dash();shortspace();}//letter A in morse code! +void lB () {dash();dot();dot();dot();shortspace();}//same for B +void lC () {dash();dot();dash();dot();shortspace();} +void lD () {dash();dot();dot();shortspace();} +void lE () {dot();shortspace();} +void lF () {dot();dot();dash();dot();shortspace();} +void lG () {dash();dash();dot();shortspace();} +void lH () {dot();dot();dot();dot();shortspace();} +void lI () {dot();dot();shortspace();} +void lJ () {dot();dash();dash();dash();shortspace();} +void lK () {dash();dot();dash();shortspace();} +void lL () {dot();dash();dot();dot();shortspace();} +void lM () {dash();dash();shortspace();} +void lN () {dash();dot();shortspace();} +void lO () {dash();dash();dash();shortspace();} +void lP () {dot();dash();dash();dot();shortspace();} +void lQ () {dash();dash();dot();dash();shortspace();} +void lR () {dot();dash();dot();shortspace();} +void lS () {dot();dot();dot();shortspace();} +void lT () {dash();shortspace();} +void lU () {dot();dot();dash();shortspace();} +void lV () {dot();dot();dot();dash();shortspace();} +void lW () {dot();dash();dash();shortspace();} +void lX () {dash();dot();dot();dash();shortspace();} +void lY () {dash();dot();dash();dash();shortspace();} +void lZ () {dash();dash();dot();dot();shortspace();} +void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code +void n2 () {dot();dot();dash();dash();dash();shortspace();} +void n3 () {dot();dot();dot();dash();dash();shortspace();} +void n4 () {dot();dot();dot();dot();dash();shortspace();} +void n5 () {dot();dot();dot();dot();dot();shortspace();} +void n6 () {dash();dot();dot();dot();dot();shortspace();} +void n7 () {dash();dash();dot();dot();dot();shortspace();} +void n8 () {dash();dash();dash();dot();dot();shortspace();} +void n9 () {dash();dash();dash();dash();dot();shortspace();} +void n0 () {dash();dash();dash();dash();dash();shortspace();} +void space () {delay (1200);}//space between words +void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300 +void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300 +void shortspace () {delay(600);}//space between letters + +// set system into the sleep state +// system wakes up when wtchdog is timed out +void system_sleep() { + digitalWrite(led,LOW); + cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF + set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here + sleep_enable(); + sleep_mode(); // System sleeps here + sleep_disable(); // System continues execution here when watchdog timed out + sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON +} +// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms +// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec +void setup_watchdog(int ii) { + byte bb; + int ww; + if (ii > 9 ) ii=9; + bb=ii & 7; + if (ii > 7) bb|= (1<<5); + bb|= (1< +#include +#ifndef cbi +#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit)) +#endif +#ifndef sbi +#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit)) +#endif + +int led = 1; // the PWM pin the LED is attached to +volatile boolean f_wdt = 1; +int counter = 0; + +// the setup routine runs once when you press reset: +void setup() { + pinMode(led, OUTPUT); + setup_watchdog(15); // approximately 4 seconds sleep + +} + +void fade(){ + for (int i = 0; i < 255; i++){ + analogWrite(led, i); + delay(5); + } + for (int i = 255; i > 0; i--){ + analogWrite(led, i); + delay(5); + } +} + +void jumpFade(){ + for(int i = 0; i < 6; i++){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } + for(int i = 5; i > 0; i--){ + int j = i * 50; + analogWrite(led, j); + delay(500); + } +} + +void morse(){ + lS(); + lA(); + lY(); + space(); + lH(); + lI(); + space(); +} + +void loop() { + if (f_wdt==1) { // wait for timed out watchdog / flag is set when a watchdog timeout occurs + f_wdt=0; // reset flag + } + + fade(); + fade(); + fade(); + system_sleep(); + + jumpFade(); + jumpFade(); + jumpFade(); + system_sleep(); + + morse(); + morse(); + morse(); + system_sleep(); +} + +//functions for the letters and the numbers +void lA () {dot();dash();shortspace();}//letter A in morse code! +void lB () {dash();dot();dot();dot();shortspace();}//same for B +void lC () {dash();dot();dash();dot();shortspace();} +void lD () {dash();dot();dot();shortspace();} +void lE () {dot();shortspace();} +void lF () {dot();dot();dash();dot();shortspace();} +void lG () {dash();dash();dot();shortspace();} +void lH () {dot();dot();dot();dot();shortspace();} +void lI () {dot();dot();shortspace();} +void lJ () {dot();dash();dash();dash();shortspace();} +void lK () {dash();dot();dash();shortspace();} +void lL () {dot();dash();dot();dot();shortspace();} +void lM () {dash();dash();shortspace();} +void lN () {dash();dot();shortspace();} +void lO () {dash();dash();dash();shortspace();} +void lP () {dot();dash();dash();dot();shortspace();} +void lQ () {dash();dash();dot();dash();shortspace();} +void lR () {dot();dash();dot();shortspace();} +void lS () {dot();dot();dot();shortspace();} +void lT () {dash();shortspace();} +void lU () {dot();dot();dash();shortspace();} +void lV () {dot();dot();dot();dash();shortspace();} +void lW () {dot();dash();dash();shortspace();} +void lX () {dash();dot();dot();dash();shortspace();} +void lY () {dash();dot();dash();dash();shortspace();} +void lZ () {dash();dash();dot();dot();shortspace();} +void n1 () {dot();dash();dash();dash();dash();shortspace();}//number 1 in morse code +void n2 () {dot();dot();dash();dash();dash();shortspace();} +void n3 () {dot();dot();dot();dash();dash();shortspace();} +void n4 () {dot();dot();dot();dot();dash();shortspace();} +void n5 () {dot();dot();dot();dot();dot();shortspace();} +void n6 () {dash();dot();dot();dot();dot();shortspace();} +void n7 () {dash();dash();dot();dot();dot();shortspace();} +void n8 () {dash();dash();dash();dot();dot();shortspace();} +void n9 () {dash();dash();dash();dash();dot();shortspace();} +void n0 () {dash();dash();dash();dash();dash();shortspace();} +void space () {delay (1200);}//space between words +void dot () {analogWrite(led, 150); delay (300); digitalWrite(led,LOW); delay (300);}//the dot this code make the led on for 300 than off for 300 +void dash () {analogWrite(led, 150); delay (900); digitalWrite(led,LOW); delay (300);}//the dash this code make the led on for 900 than off for 300 +void shortspace () {delay(600);}//space between letters + +// set system into the sleep state +// system wakes up when wtchdog is timed out +void system_sleep() { + digitalWrite(led,LOW); + cbi(ADCSRA,ADEN); // switch Analog to Digitalconverter OFF + set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here + sleep_enable(); + sleep_mode(); // System sleeps here + sleep_disable(); // System continues execution here when watchdog timed out + sbi(ADCSRA,ADEN); // switch Analog to Digitalconverter ON +} +// 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms +// 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec +void setup_watchdog(int ii) { + byte bb; + int ww; + if (ii > 9 ) ii=9; + bb=ii & 7; + if (ii > 7) bb|= (1<<5); + bb|= (1<