Throwduino Basic - licht-Sensing knippert Throwie met 1 deel van de toegevoegde - nu met Morse Code (7 / 7 stap)

Stap 7:


Morsecode!

In deze stap vindt u de Morse-Code... erm... code voor Throwdurino.

Het grote ding over het toevoegen van een microcontroller is dat we informatie kunnen uitvoeren.  Deze sketch kunt de dezelfde throwie te knipperen een voorgeprogrammeerde boodschap in Morse Code.  De eerste drempel instelling routine en licht sensing methode zijn dezelfde als voor de originele schets.

Bewerken - kan er een fout in de code:

drempel = (totaal >> 5); drempel gemiddelde punt (kloof totaal per 128) instellen.

waarschijnlijk moet worden:

drempel = (totaal >>7); drempel gemiddelde punt (kloof totaal per 128) instellen.

Op heeft gehanteerd voor mij zoals het was, maar dit leiden problemen met de lichte sensing tot kan.  Ik zal controleren en corrigeren indien nodig.

De timing van de Morse is niet vrij zo snel zoals het moet - de pauzes veel te lang zijn werkelijk - maar ik vond de strikte timing te snel voor een beginner om te decoderen. Of te zwaar op batterijgebruik.  Ik denk dat dit vrij duidelijk is voor de beginnende Morse Coder.

Als u wilt het bericht bewerken, de lijn onder aan de bovenkant van de schets te vinden:

const char flashSeq [] = {"donker hier niet het"};  Morse bericht.  Bewerk dit.

en gewoon bewerken die als u nodig hebt.

Voor het minimaliseren van de lengte van de schets, erkent het alleen hoofdletters.  Alles zal worden behandeld als een "ruimte".  Probeer niet meer dan 256 tekens gebruiken of het dreigt te crashen vreselijk.

De schets is gekoppeld en geplakt hieronder.  Het moet compileren tot rond 1398 bytes

Throwduino basic - editie van de Morse-code!
Ugi 2012
MIT-licentie
Geschreven voor ATtiny25/45/85 met behulp van de Arduino Tiny core - http://code.google.com/p/arduino-tiny/
Wordt niet gecompileerd voor andere Arduinos (ATMega168, ATMega328 etc)
Zorg ervoor dat u het juiste bord voordat je compileert.

Voor Ref:
ADC Pins:
ADC1 = PB2
ADC2 = PB4
ADC3 = PB3

Als u wilt gewoon de flash patroon wijzigen, moet u dat hier doen.
Standaard is:
//
const char flashSeq [] = {"donker hier niet het"};  Morse bericht.  Bewerk dit.
//
Het bericht met alleen hoofdletters-tekens bewerken.
Iets anders zal komen als een 1s vertraging.
Na de reeks wachten we op 2s voordat herhaald.

const char flashSeq [] = {"donker hier niet het"};  Morse bericht.  Bewerk dit.
Const byte seqLength =(sizeof(flashSeq)-1);

Morse code codering
Opgeslagen als één byte per brief.
Hoge 5 bits zijn 1 voor - en 0 voor beginnend met LSB voor die hoog-5...
Lage 3 bits geven aantal flitsen (stippen + streepjes).
Morse zorgt voor 5 flitsen (voor getallen) maar brieven vereisen 4 maximaal.
Deze indeling kan dus worden gebruikt voor getallen zo goed maar ik heb dat niet uitgevoerd.

Const byte morse [26] = {}
B00010010, //a
B00001100, //b
B00101100, //c
B00001011, //d
B00000001, //e
B00100100, //f
B00011011, //g
B00000100, //h
B00000010, //i
B01110100, //j
B00101011, //k
B00010100, //l
B00011010, //m
B00001010, //n
B00111011, //o
B00110100, //p
B01011100, //q
B00010011, //r
B00000011, //s
B00001001, //t
B00100011, //u
B01000100, //v
B00110011, //w
B01001100, //x
B01101100, //y
B00011100, //z
};
Nu laten we een throwie voor die reeks...

Const int LEDpin = 4; Hoewel dit in een constante, is er een heleboel directe poort toegang
Ik zou niet proberen om dit te veranderen zonder lopende throu' de hele code.

unsigned int drempel = 10; We zullen dit juist ingesteld tijdens de installatie

Dit stelt sommige libs en definities voor gebruik met de sluimer-timer
#include < avr/sleep.h >
#include < avr/wdt.h >
#ifndef cbi
#define cbi (sfr, bit) (_SFR_BYTE(sfr) & ~_BV(bit)) =
#endif
#ifndef sbi
#define sbi (sfr, bit) (_SFR_BYTE(sfr) | = _BV(bit))
#endif

ISR(WDT_vect) {WDTCR| = B01000000;} / / Watchdog-Timer reset naar Interrupt modus elke keer.

Knoeien over met sommige journalen die u wilt uitschakelen van spullen & set referenties.
VOID Setup {}
ADCSRB & = B10111111; uitschakelen van comparitor
ACSR | = B10000000; Schakel stroom comparitor
ADCSRA | = B10000000; / / ADC inschakelen
DDRB & = B11100000; Stel alle invoeren
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; set PB3 lage - dit was voor de testfase.  Waarschijnlijk kan nu worden weggelaten.
PRR & = B11111110; duidelijke ADC uitschakelen bits in macht vermindering Reg
analogReference(6); interne 2.56v verwijst naar met geen bypass - INTERNAL2v56NB-

Tonen dat we wakker zijn:
Flash(3);  Drie flitsen - wij zijn gebruiksklaar.


De drempel voor lichte sensing tijdens eerste 40 seconden instellen
Wij nemen 148 metingen, bin van de eerste 20 en vervolgens het gemiddelde van de volgende 128.
unsigned int totaal = 0;
voor (byte rep = 0; rep < 148; rep ++) {}
int value=lightLevel();
int waarde = 10;
if(Rep>19) {}
Total += waarde; tatke totaal 128 lezingen
}
Flash(Value);

pause(4); / / was pause(4)
DDRB| = B00011010; 1, 3 en 4 te stellen als uitvoerapparaat
PORTB & = B1110000; Alle laag ingesteld
}
drempel = (totaal >> 7); drempel gemiddelde punt (kloof totaal per 128) instellen.

Flash(Threshold); Dit is meestal voor foutopsporing.
}

Hoofdlus
We meten het lichtniveau.  Als het is laag vervolgens flash wij onze volgorde dan slaap voor 2s.
Als licht niveau hoog, we voor 8s slapen.
void loop {}
analogReference(6); interne 2.56v verwijst naar met geen rondweg

Meten van lichtniveau en als het is laag genoeg, weergeven van onze flash reeks
Als (lightLevel() < drempel) {}
flashMorse();
Indien wij knipperen waren, slapen we nu voor 4s
pause(8);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}
else {}
Als we niet waren knippert dan slapen we voor 8s
pause(9);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}

} / / einde van de hoofdlus

Lichtniveau meten door te kijken naar spanning gegenereerd door LED verbonden met D4 (A2) op pin 3 van de chip.
Instellen van Output en laag om te beginnen om zich te kwijten van de opbouw van een kosten - niet zeker als we dit nodig
int lightLevel() {}
pinMode (LEDpin, uitvoer);
digitalWrite (LEDpin, laag);
delayMicroseconds(50);
pinMode (LEDpin, INPUT);
delayMicroseconds(100); laat het stabiliseren als input weer
unsigned int waarde = analogRead(A2);
retourwaarde;
}

Flitser routine - 70ms, 250 ms uit
Bepaald aantal keren herhalen en vervolgens onderbreken 500ms
VOID flash(byte No) {}
pinMode (LEDpin, uitvoer);

if (!. No) {/ / als wij een nul ontvangen, gewoon pauzeren.
pause(5);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}

Als we een ander getal dan nul flitsen hadden, maken we ze nu
voor (byte rep = 0; rep < No; rep ++) {}
flashDot(70);
}

Pauze (slaap)
pause(5);
DDRB| = B00011010; 1 en 3 instellen als output
PORTB & = B11110111; PB3 laag.
}

VOID pauze (byte keer) {}
DDRB & = B11100000; Stel alle invoeren
setup_watchdog(time); wachttijd instellen
system_sleep(); / / slapen
}

ongeldig flashMorse() {}
voor (byte rep = 0; rep < seqLength; rep ++) {}
byte index = 0;
Als (flashSeq [rep] < 65 || flashSeq [rep] > 90) index = 0;
anders index = flashSeq [rep]-64;
if(!index) pause(6);
else {}
byte dotdash = morse [index-1] >> 3; slechts reeks deel (5 bits) gestoken dotdash
Punten en strepen volgens volgorde gecodeerd in morse]
voor (byte knippert = 0; knippert < ((morse[(index-1)] & B111)); flitsen ++) {}
Als (dotdash & 1)flashDot(160); Als LSB 1 dan display a dash is
anders flashDot(40); anders is het een stip
pause(4); pauze tussen flitsers - 256ms
dotdash >> = 1; Roll langs met de volgende bit
}
pause(5); Einde van woord pauze 0.5s
}
}
}

flitser de LED voor tijd (< 256 ms) en pauze voor 250ms.
VOID flashDot (byte keer) {}
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
PORTB| = B00010000; PB4 hoog
delay(time);
PORTB & = B11101111; PB4 laag.
pause(4);
}

Watchdog-timer-installatie
Dit is specifiek voor de ATTiny85 (+ tiny45, & tiny25) en zal niet compileren voor ATMega328 enz.
0 = 16 MS, 1 = 32ms, 2 = 64ms, 3 = 128ms, 4 = 250ms, 5 = 500ms
6 = 1 sec, 7 = 2 sec, 8 = 4 sec, 9 = 8 sec
VOID setup_watchdog (int periode) {}

de waarde van de byte;
Als (periode > 9) periode = 9;
waarde = periode & B111;
Als (periode > 7) value| = (1 << 5);
Value| = (1 << WDCE);

MCUSR & = ~ (1 << WDRF);
Start 4-klok-cycle getimede opeenvolging
WDTCR | = (1 << WDCE) | (1 << WDE);
nieuwe waakhond-outwaarde instellen
WDTCR = waarde;
WDTCR | = _BV(WDIE);
}

systeem in de slaapstand
systeem wakker wanneer wtchdog een time-out opgetreden is
ongeldig system_sleep() {}
CBI(ADCSRA,ADEN);                    switch analoog naar Digitalconverter af

set_sleep_mode(SLEEP_MODE_PWR_DOWN); slaapstand ligt hier
sleep_enable();

SLEEP_MODE();                        Systeem slaapt hier

sleep_disable();                     Systeem blijft uitvoering hier als waakhond time-out
SBI(ADCSRA,ADEN);                    switch analoog aan Digitalconverter
PRR & = B11111110; duidelijke ADC uitschakelen bits in macht vermindering Reg
}
Ugi 2012
MIT-licentie
Geschreven voor ATtiny25/45/85 met behulp van de Arduino Tiny core - http://code.google.com/p/arduino-tiny/
Wordt niet gecompileerd voor andere Arduinos (ATMega168, ATMega328 etc)
Zorg ervoor dat u het juiste bord voordat je compileert.

Voor Ref:
ADC Pins:
ADC1 = PB2
ADC2 = PB4
ADC3 = PB3

Als u wilt gewoon de flash patroon wijzigen, moet u dat hier doen.
Standaard is:
//
const char flashSeq [] = {"donker hier niet het"};  Morse bericht.  Bewerk dit.
//
Het bericht met alleen hoofdletters-tekens bewerken.
Iets anders zal komen als een 1s vertraging.
Na de reeks wachten we op 4s voordat herhaald.

const char flashSeq [] = {"donker hier niet het"};  Morse bericht.  Bewerk dit.
Const byte seqLength =(sizeof(flashSeq)-1);

Morse code codering
Opgeslagen als één byte per brief.
Hoge 5 bits zijn 1 voor - en 0 voor beginnend met LSB voor die hoog-5...
Lage 3 bits geven aantal flitsen (stippen + streepjes).
Morse zorgt voor 5 flitsen (voor getallen) maar brieven vereisen 4 maximaal.
Deze indeling kan dus worden gebruikt voor getallen zo goed maar ik heb dat niet uitgevoerd.
Const byte morse [26] = {}
B00010010, //a
B00001100, //b
B00101100, //c
B00001011, //d
B00000001, //e
B00100100, //f
B00011011, //g
B00000100, //h
B00000010, //i
B01110100, //j
B00101011, //k
B00010100, //l
B00011010, //m
B00001010, //n
B00111011, //o
B00110100, //p
B01011100, //q
B00010011, //r
B00000011, //s
B00001001, //t
B00100011, //u
B01000100, //v
B00110011, //w
B01001100, //x
B01101100, //y
B00011100, //z
};
Nu laten we een throwie voor die reeks...

Const int LEDpin = 4; Hoewel dit in een constante, is er een heleboel directe poort toegang
Ik zou niet proberen om dit te veranderen zonder lopende throu' de hele code.

unsigned int drempel = 10; We zullen dit juist ingesteld tijdens de installatie

Dit stelt sommige libs en definities voor gebruik met de sluimer-timer
#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

ISR(WDT_vect) {WDTCR| = B01000000;} / / Watchdog-Timer reset naar Interrupt modus elke keer.

Knoeien over met sommige journalen die u wilt uitschakelen van spullen & set referenties.
VOID Setup {}
ADCSRB & = B10111111; uitschakelen van comparitor
ACSR | = B10000000; Schakel stroom comparitor
ADCSRA | = B10000000; / / ADC inschakelen
DDRB & = B11100000; Stel alle invoeren
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; set PB3 lage - dit was voor de testfase.  Waarschijnlijk kan nu worden weggelaten.
PRR & = B11111110; duidelijke ADC uitschakelen bits in macht vermindering Reg
analogReference(6); interne 2.56v verwijst naar met geen bypass - INTERNAL2v56NB-

Tonen dat we wakker zijn:
Flash(3);  Drie flitsen - wij zijn gebruiksklaar.


De drempel voor lichte sensing tijdens eerste 40 seconden instellen
Wij nemen 148 metingen, bin van de eerste 20 en vervolgens het gemiddelde van de volgende 128.
unsigned int totaal = 0;
voor (byte rep = 0; rep < 148; rep ++) {}
int value=lightLevel();
int waarde = 10;
if(Rep>19) {}
Total += waarde; tatke totaal 128 lezingen
}
Flash(Value);

pause(4); / / was pause(4)
DDRB| = B00011010; 1, 3 en 4 te stellen als uitvoerapparaat
PORTB & = B1110000; Alle laag ingesteld
}
drempel = (totaal >> 5); drempel gemiddelde punt (kloof totaal per 128) instellen.

Flash(Threshold); Dit is meestal voor foutopsporing.
}

Hoofdlus
We meten het lichtniveau.  Als het is laag vervolgens flash wij onze volgorde dan slaap voor 2s.
Als licht niveau hoog, we voor 8s slapen.
void loop {}
analogReference(6); interne 2.56v verwijst naar met geen rondweg

Meten van lichtniveau en als het is laag genoeg, weergeven van onze flash reeks
Als (lightLevel()
flashMorse();
Indien wij knipperen waren, slapen we nu voor 4s
pause(8);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}
else {}
Als we niet waren knippert dan slapen we voor 8s
pause(9);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}

} / / einde van de hoofdlus

Lichtniveau meten door te kijken naar spanning gegenereerd door LED verbonden met D4 (A2) op pin 3 van de chip.
Instellen van Output en laag om te beginnen om zich te kwijten van de opbouw van een kosten - niet zeker als we dit nodig
int lightLevel() {}
pinMode (LEDpin, uitvoer);
digitalWrite (LEDpin, laag);
delayMicroseconds(50);
pinMode (LEDpin, INPUT);
delayMicroseconds(100); laat het stabiliseren als input weer
unsigned int waarde = analogRead(A2);
retourwaarde;
}

Flitser routine - 70ms, 250 ms uit
Bepaald aantal keren herhalen en vervolgens onderbreken 500ms
VOID flash(byte No) {}
pinMode (LEDpin, uitvoer);

if (!. No) {/ / als wij een nul ontvangen, gewoon pauzeren.
pause(5);
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
}

Als we een ander getal dan nul flitsen hadden, maken we ze nu
voor (byte rep = 0; rep flashDot(70);
}

Pauze (slaap)
pause(5);
DDRB| = B00011010; 1 en 3 instellen als output
PORTB & = B11110111; PB3 laag.
}

VOID pauze (byte keer) {}
DDRB & = B11100000; Stel alle invoeren
setup_watchdog(time); wachttijd instellen
system_sleep(); / / slapen
}

ongeldig flashMorse() {}
voor (byte rep = 0; rep byte index = 0;
Als (flashSeq [rep] < 65 || flashSeq [rep] > 90) index = 0;
anders index = flashSeq [rep]-64;
if(!index) pause(6);
else {}
byte dotdash = morse [index-1] >> 3; slechts reeks deel (5 bits) gestoken dotdash
Punten en strepen volgens volgorde gecodeerd in morse]
voor (byte knippert = 0; knippert < ((morse[(index-1)] & B111)); flitsen ++) {}
Als (dotdash & 1)flashDot(160); Als LSB 1 dan display a dash is
anders flashDot(40); anders is het een stip
pause(5); pauze tussen flitsers - 256ms
dotdash >> = 1; Roll langs met de volgende bit
}
pause(6); Einde van woord pause 1 s
}
}
}

flitser de LED voor tijd (< 256 ms) en pauze voor 250ms.
VOID flashDot (byte keer) {}
DDRB| = B00011010; 1,3 en 4 stellen als uitvoerapparaat
PORTB & = B11110111; PB3 laag.
PORTB| = B00010000; PB4 hoog
delay(time);
PORTB & = B11101111; PB4 laag.
pause(4);
}

Watchdog-timer-installatie
Dit is specifiek voor de ATTiny85 (+ tiny45, & tiny25) en zal niet compileren voor ATMega328 enz.
0 = 16 MS, 1 = 32ms, 2 = 64ms, 3 = 128ms, 4 = 250ms, 5 = 500ms
6 = 1 sec, 7 = 2 sec, 8 = 4 sec, 9 = 8 sec
VOID setup_watchdog (int periode) {}

de waarde van de byte;
Als (periode > 9) periode = 9;
waarde = periode & B111;
Als (periode > 7) value| = (1 << 5);
Value| = (1 <

MCUSR & ~(1< =
Start 4-klok-cycle getimede opeenvolging
WDTCR | = (1 < / / nieuwe waakhond-outwaarde instellen
WDTCR = waarde;
WDTCR | = _BV(WDIE);
}

systeem in de slaapstand
systeem wakker wanneer wtchdog een time-out opgetreden is
ongeldig system_sleep() {}
CBI(ADCSRA,ADEN);                    switch analoog naar Digitalconverter af

set_sleep_mode(SLEEP_MODE_PWR_DOWN); slaapstand ligt hier
sleep_enable();

SLEEP_MODE();                        Systeem slaapt hier

sleep_disable();                     Systeem blijft uitvoering hier als waakhond time-out
SBI(ADCSRA,ADEN);                    switch analoog aan Digitalconverter
PRR & = B11111110; duidelijke ADC uitschakelen bits in macht vermindering Reg
}

Gerelateerde Artikelen

Morse code met behulp van Raspberry Pi en LED!

Morse code met behulp van Raspberry Pi en LED!

Deze krijgt u aan de slag met de GPIO pinnen op de Raspberry Pi, met behulp van een API en, natuurlijk, knipperende morsecode! Nadat u deze zelfstudie hebt voltooid, kunt u bijvoorbeeld alle tekens van de morse code leren, uw IP-adres bij het opstart
Morse code met arduino + LED

Morse code met arduino + LED

HalloIk weet niet de echte reden, maar ik heb dat pletten op de oude technologie en zijn spullen, een van de meest ding ik ooit liefgehad morse code en hoe ze communiceren, zo in mijn eerste dagen met arduino - drie jaar geleden ik denk! - is een van
Experiment voor de lol: Morse Code Encrypter met behulp van de Arduino en Smartphone!

Experiment voor de lol: Morse Code Encrypter met behulp van de Arduino en Smartphone!

Nou, Hallo iedereen! Hoe ben je, jongens? Ik hoop dat iedereen is ok en in een goed humeur. Vandaag wil ik delen met u over een eenvoudig experiment die ik gemaakt heb tijdens mijn vrije tijd allen. Het heet de Morsecode encrypter. De stroom van dit
Licht Sensing LED - versie van PICAXE

Licht Sensing LED - versie van PICAXE

een tijdje geleden ik geboekte licht sensing LED die de arduino board gebruikt, nu is het hetzelfde project, maar met behulp van een PICAXE microcontroller. Dit is het eenvoudigste circuit die u zou kunnen hebben ooit gezien dat alleen gebruikt een P
Batterij aangedreven gameboy licht: een ander project met SUGRU

Batterij aangedreven gameboy licht: een ander project met SUGRU

wij houden hen, we spel met hen, en zij staan als een van de grootste mobiele consoles uit aller tijden. Maar u nog steeds niet afspelen in het donker. ikn dit project mij positiebepaling een van de Gameboy Kleur de meest irritante gebreken zonder he
Licht Sensing LED zaklamp

Licht Sensing LED zaklamp

Elke dag, veel en veel elektriciteit en energie wordt verspild van mensen per ongeluk verlaten elektronica op of zaklampen. Deze uitvinding is de perfecte oplossing voor dit probleem. De zaklamp wordt alleen ingeschakeld wanneer het zintuigen dat de
Controle van elke lichte of elektrische toestel met je tablet of smartphone (wifi)

Controle van elke lichte of elektrische toestel met je tablet of smartphone (wifi)

Elke lichte of elektrische toestel met je tablet of smartphone (wifi) met behulp van de arduino, blynk en een wemos controle / ESP8266 bestuurIn deze tutorial we zullen maken iets ik bel een wifi ac schakelaar gecontroleerd. (Maar het werkt ook voor
Licht-up ketting gemaakt met vilt & LEDs!

Licht-up ketting gemaakt met vilt & LEDs!

In deze oefening zult u een prachtige licht-up ketting of patch met LEDs in een parallelle reeks maken. We namen een vel wit vilt en bloemen toegevoegd, maar u kunt decoreren uw ketting maar u wilt! U kan deze oefening in een licht-up rugzak patch ge
Licht omhoog uw aansteker met sommige Art

Licht omhoog uw aansteker met sommige Art

In dit Instructable, zal ik u leren hoe te maken van een decoratieve lichtere, waardoor een grote gift voor iemand (rokers of niet-roker). Ooit zag ik iemand die had een, en het inspireerde me om mijn eigen manier van decoreren aanstekers vinden. Na
Licht-Up Minecraft fakkel met behulp van een dief Joule

Licht-Up Minecraft fakkel met behulp van een dief Joule

Voor iedereen wie ooit heeft willen maken van hun eigen licht-up Minecraft fakkel, en wil graag spelen met wat leuks elektronica in het proces, dit project Instructables voor jou is! De elektronica worden toegelicht goed genoeg (en met links naar all
Licht-Up voelde Menorah met Chibitronics Circuit Sticker (Proof of Concept)

Licht-Up voelde Menorah met Chibitronics Circuit Sticker (Proof of Concept)

Elk jaar in laat vallen, tijdens de joodse feestdag van Hanukkah (of Chanukah), gezinnen verzamelen rond de menora aan het licht van de kaarsen van de vakantie. Ik besloot om te zien als ik een licht-Up voelde menora kunnen maken met LED's die flikke
Wat is in het licht? Indringende rond met mijn DIY spectroscoop

Wat is in het licht? Indringende rond met mijn DIY spectroscoop

Ik heb onlangs een publiclab Desktop spectroscopie kit! Ik had echt een hel veel plezier bouwen en indringende lichtbronnen mee. Haar een awesome kit met alle onderdelen die nodig zijn om uw eigen spectroscoop.De kit in een mooi kartonnen doos kwam e
Hoe licht een houtskool barbecue met een schoorsteen

Hoe licht een houtskool barbecue met een schoorsteen

In deze video laat ik zien hoe To Light A houtskool Grill met een schoorsteen.  Jarenlang gebruikte ik de standaardmethode voor de verlichting van mijn grill met lichtere vloeistof maar na het krijgen gefrustreerd met gemengde resultaten elke keer, h
Mechanische licht Sensing en Flex sensoren gecontroleerd bloem Robot

Mechanische licht Sensing en Flex sensoren gecontroleerd bloem Robot

Doel:Maken van een robot die volgt licht en kunt verplaatsen met flex sensoren op een handschoenDit instructable werd geïnspireerd door:Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.ma