Arduino väckarklocka Canvas--hur man
1. duk (valfri storlek)
2. tyg (tillräckligt för att täcka duken)
3. kardborre
4. 8-10 LED-lampor
5. ledande tråd
6. tråd
7. 1 Lilypad enkel fäst styrelsen (du kan välja att använda andra Lilypad brädor också)
8. 1 Lilypad högtalare/Summer
9. 3-5 ledande material som används som sensorer (jag använde 3 cookie fräsar)
10. alla dekorativa material (Extra)
11. nålar
12. sax
13. tyg lim
14. vit färgad penna
Instruktioner om hur du monterar din Arduino väckarklocka
** När du använder ledande tråd aldrig korsa linjer av sömmar. Alltid sy små, nära och tät stygn. Slinga runt metall hål i Lilypad enkla Snap, och andra Lilypad material. Klipp ändarna som nära knuten som möjligt för att behålla svansar av tråden från att röra andra ledande tails.* *
** Negativa rader är marken, och kan röra när alla negativ är sydde i provet hålet. Alla positiva rader kan inte korsa eller anslutas till samma hål. Varje positiv linje behöver det egna nummer hål på den Lilypad enkel Snap.* *
1. Fäst Lilypad enkel fäst styrelsen ditt tyg med tyg lim. Sätt en prick av lim i mitten av din Lilypad och tryck på tyg. Jag valde att fästa min i mitten av tyget på baksidan så den inte kan ses.
2. Placera Lilypad högtalaren nära din Lilypad enkla Snap styrelse. Använd sedan de ledande tråden för att sy genom negativa hålet på högtalaren. Slinga runt den negativa hål flera gånger för att hålla ledningsförmåga starkt. Sedan använda nära och tätt sömmar att sy ner till det negativa hålet på den Lilypad enkel nafsa. Sy genom Lilypad enkla Snap negativa hålet flera gånger, sedan knyta av fodra, och skär extra. Jag valde att fästa min nära upp ovanför lilypad på baksidan av tyget så det inte skulle ses.
3. med en ny linje av ledande tråd stygn från den positiva änden av högtalaren i 5 hålet på den Lilypad enkel nafsa. Efter samma ledande tråd regler som ett steg före.
4. Markera med en vit färgad penna där du vill ha din LED-lampor att gå. Ståndpunkten lysdioder ett par inches isär. Jag gjorde en rad med 10 på toppen av tyget.
5. position LED lampor rakt upp och ner med hela negativa vänd nedåt, och alla positiva ändar uppåt.
6. ta en ny linje av ledande tråd och börja sy på första LED-lampan på långt till vänster. Börja med negativ, göra en linje som förbinder alla LED negativa ändar. Efter alla negativa ändar har varit sydde på tyget sy ner till den Lilypad enkel nafsa och ansluta den negativa LED ljusa raden till negativa hålet i styrelsen.
7. nu med en ny linje av ledande tråd starta från längst till höger att fästa alla positiva ändar av LED-lampor. Börja längst till höger och sy tills de är alla anslutna med ledande tråd. Sedan stich ner LilyPad enkel knäppa och Anslut den positiva linjen till hål 9 på LilyPad enkla Snap.
8. nu testa dina lampor och högtalare för att se till att de fungerar som de ska. Om de kör in fästa din sensorer. Om inte problemet lösa för att lista ut problemet. Du kan behöva nytt sy.
9. Välj sedan slumpmässigt områden på nedre hälften av arbetsytan där du vill att dina sensorer placeras. Markera med vit färgad penna.
10. sy sensorer på tyget med ledande tråd och ansluter dem till Lilypad enkel fäst styrelsen. Varje sensor ska kopplas till sina egna nummer hål i styrelsen.
11. jag använde 10 för en sensor1, 11 för sensor2 och A2 för sensor3.
12. nu sy på trippeln en batterihållare i en bekväm plats med ledande tråd. Jag valde ovan Lilypad enkla Snap. Koppla ihop 3 negativa hålen på batterihållaren och sy ner till den negativa hål i Lilypad enkel fäst styrelsen.
13. Anslut positiva hålet på batterihållaren i positiva hålet på den Lilypad enkel nafsa med ledande tråd. Trippel A batteri innehavaren kommer att göra det så du kan köra din klocka hela dagen utan att vara ansluten till en dator. Det gör också att den Lilypad enkel nafsa att hålla exakt tid hela dagen.
14. programmera din Lilypad enkla Snap styrelse att ha din väckarklocka slocknar vid önskade tider med ljuset tänt och talare på. Jag programmerade min Lilypad enkla Snap stänga av lampor och summern när alla 3 sensorer har berörts. Detta tvingar mig att komma ur sängen och stänga av väckarklockan, utan att somna.
15. testa din kod.
16. Fäst kardborre runt duken och tyg kanten så du kan dra ditt tyg väckarklocka och på duken till enkelt programmera datorn.
17. hänga din väckarklocka på väggen.
18. Njut!
Vanliga problem du kan möta:
1. hålla ledande linjer tätt, tätt sydd och inte korsningen linjer. Sy alltid genom antalet hål och positiva negativa hål flera gånger.
2. Kontrollera ledningsförmåga av sensorer.
3. alltid diagram över ditt projekt, så du kan ha en ritning för att följa. Det gör det så mycket lättare att hantverk, och se till att dina rader inte över!
4. att hålla negativa och positiva slutar alla inför samma sätt på liknande material.
5. normal tråd inte störa ledande tråd, så Använd normal tråd om du behöver för att sy på lappen.
6. klipp alla ändar av trådar så nära som möjligt till Knut, så att de inte orsakar kortslutning.
7. alltid dubbelkolla din kod, du kanske missat något enkelt som ett semikolon. Ibland hjälper det att ha ett par nya ögon tittar på din kod för att hitta det lilla misstaget du är saknad.
8. Använd andra tutorials, och människor som resurser!
Kod:
Första besök Ardunio lekplatsen att läsa över tid biblioteket. Hämta tid zip från denna webbplats:
http://Playground.Arduino.cc/Code/Time
Sedan klickar du på länken TimeAlarms på hemsidan ovan, läsa över sidan, och ladda ner zip Time Alarm:
http://www.pjrc.com/teensy/td_libs_TimeAlarms.html
Detta måste den kod som du måste ställa in larmet. Det bara behöver viss redigering.
Måste du lägga till dina sensorer, lampor, högtalare och capacitative pin Läs information för att få larmet att arbeta hur vi vill ha det till.
Här är min sista koden:
#include
#include
int speakerPin = 5;
int lampor = 9.
int sensorPin1 = 10;
int sensorPin2 = 11;
int sensorPin3 = A2;
int sensorValue;
int sensorValue2;
int sensorValue3;
void setup()
{
Serial.BEGIN(9600);
pinMode (sensorPin1, ingång);
pinMode (sensorPin2, ingång);
pinMode (sensorPin3, ingång);
pinMode (ljus, OUTPUT);
pinMode (speakerPin, produktionen);
setTime(15,35,0,4,23,13); anger tid till tisdag 3:35:00 pm April 23 2013
Alarm.alarmRepeat (7,30,0, MorningAlarm); 7:30 på varje dag
Alarm.alarmRepeat (15,36,0, TestAlarm);
Alarm.timerRepeat (15, upprepar); timer för varje 15 sekunder
Alarm.timerOnce (10, OnceOnly); kallas en gång efter 10 sekunder
}
void loop() {
digitalClockDisplay(); så länge batteriet är en, kommer att det hålla tiden som en klocka
Alarm.Delay(1000); vänta en sekund mellan klockdisplay
}
funktioner som anropas när ett larm utlöser:
void MorningAlarm() {
booleska alarm_on = sant; Utlösa larm på
booleska sensor1_touched = false;
booleska sensor2_touched = false;
booleska sensor3_touched = false;
digitalWrite (ljus, hög); Lamporna tänds
medan (alarm_on == true) {
tonen (speakerPin, 1046, 100); Högtalare ljud
sensorValue = readCapacitivePin(sensorPin1); läsa med sensor 1
sensorValue2 = readCapacitivePin(sensorPin2); läsa med sensor 2
sensorValue3 = readCapacitivePin(sensorPin3); läsa med sensor 3
om (sensorValue > 1) sensor1_touched = sant; måste röra alla 3 att stänga av, tryck 1
om (sensorValue2 > 1) sensor2_touched = sant; Touch 2
om (sensorValue3 > 1) sensor3_touched = sant; Touch 3
om ((sensor1_touched==true) & &(sensor2_touched==true) & &(sensor3_touched==true)) {
alarm_on = false; När alla sensorer har berörts stannar högtalare klingande
}
}
digitalWrite (ljus, låg); När alla sensorer har berörts stänga lampor av
}
void TestAlarm() {
booleska alarm_on = sant;
booleska sensor1_touched = false;
booleska sensor2_touched = false;
booleska sensor3_touched = false;
digitalWrite (ljus, hög);
medan (alarm_on == true) {
tonen (speakerPin, 1046, 100);
sensorValue = readCapacitivePin(sensorPin1);
sensorValue2 = readCapacitivePin(sensorPin2); läsa värdet touch sensor
sensorValue3 = readCapacitivePin(sensorPin3);
om (sensorValue > 1) sensor1_touched = sant;
om (sensorValue2 > 1) sensor2_touched = sant;
om (sensorValue3 > 1) sensor3_touched = sant;
om ((sensor1_touched==true) & &(sensor2_touched==true) & &(sensor3_touched==true)) {
alarm_on = false;
}
}
digitalWrite (ljus, låg);
}
void WeeklyAlarm() {
Serial.println ("Alarm: - dess måndag morgon");
}
void ExplicitAlarm() {
Serial.println ("Alarm:-Detta utlöser endast vid angivet datum och tid");
}
void Repeats() {
Serial.println ("15 andra timer");
}
void OnceOnly() {
Serial.println ("denna timer bara startar en gång");
}
void digitalClockDisplay()
{
digital klocka av tiden
Serial.Print(Hour());
printDigits(minute());
printDigits(second());
Serial.println();
}
void printDigits(int digits)
{
Serial.Print(":");
IF(digits < 10)
Serial.Print('0');
Serial.Print(digits);
}
readCapacitivePin
Ingång: Arduino pin-kod
Utgång: Flera, från 0 till 17 uttrycker
Hur mycket kapacitans är på stiftet
När du rör den PIN-kod, eller vad du har
fäst vid den, kommer att hur många få högre
#include "pins_arduino.h" / / Arduino pre-1.0 behöver detta
uint8_t readCapacitivePin (int pinToMeasure) {
Variabler som används för att översätta från Arduino att AVR pin namngivning
flyktiga uint8_t * hamn.
flyktiga uint8_t * ddr;
flyktiga uint8_t * pin;
Här översätter vi ingångsstift numret från
Arduino pin-kod till AVR PORT, PIN, DDR,
och vilken bit av dessa register vi bryr oss om.
bitmask som byte;
Port = portOutputRegister(digitalPinToPort(pinToMeasure));
DDR = portModeRegister(digitalPinToPort(pinToMeasure));
bitmask = digitalPinToBitMask(pinToMeasure);
PIN-kod = portInputRegister(digitalPinToPort(pinToMeasure));
Ansvarsfrihet stiftet först genom att ange det låga och utdata
* port & = ~ (bitmask);
* ddr | = bitmask;
Delay(1);
Gör stiftet indata med inre pull-up på
* ddr & = ~ (bitmask);
* port | = bitmask;
Nu se hur länge den PIN-kod får dras. Denna manuella slangen av slingan
minskar antalet hårdvara cykler mellan varje läsning av klämma fast,
vilket ökar känsligheten.
uint8_t cykler = 17;
om (* pin & bitmask) {cykler = 0;}
annars om (* pin & bitmask) {cykler = 1;}
annars om (* pin & bitmask) {cykler = 2;}
annars om (* pin & bitmask) {cykler = 3;}
annars om (* pin & bitmask) {cykler = 4;}
annars om (* pin & bitmask) {cykler = 5.}
annars om (* pin & bitmask) {cykler = 6;}
annars om (* pin & bitmask) {cykler = 7.}
annars om (* pin & bitmask) {cykler = 8.}
annars om (* pin & bitmask) {cykler = 9.}
annars om (* pin & bitmask) {cykler = 10.}
annars om (* pin & bitmask) {cykler = 11.}
annars om (* pin & bitmask) {cykler = 12.}
annars om (* pin & bitmask) {cykler = 13.}
annars om (* pin & bitmask) {cykler = 14.}
annars om (* pin & bitmask) {cykler = 15;}
annars om (* pin & bitmask) {cykler = 16.}
Ansvarsfrihet PIN-koden igen genom att ange det låga och utdata
Det är viktigt att lämna stiften låg om du vill
att kunna röra mer än 1 sensor på en gång - om
sensorn är kvar drog hög, när du rör
två sensorer, din kropp kommer att överföra laddningen mellan
sensorer.
* port & = ~ (bitmask);
* ddr | = bitmask;
returnera cykler;
}