Arduino powered Lucky katt som fysiska Webcounter (3 / 3 steg)

Steg 3: Katter Firmware



jag använde en bild som räknaren på min hemsida som laddas från arduino som fungerar som en webbserver. Dess anslutna till internet via dyndns. När gif på webbsidan kommer att läsas av klienten, arduino märker detta och börjar räkna och bearbetning och arbeta och blinkar och saker sådär.
Dessa räknas visas på displayen. För förflyttningar av armen finns en annan counter så att flera armrörelser kan behandlas oberoende av de faktiska webbplats-hitsna. Det beror på att armen svänger en stund efter att träffas av servo.
Arduino kontroller ljuset så att på natten, servo brukar fungera men RGB LED kommer att ändra sin färg varje gång en hit på webbplatsen händer (denna del händer utan en fördröjning)

Här är koden:

/*
Webbserver

Webserver lyssnar på webben och flyttar en servo
LightSensor kontrollerar ljuset så att servo inte flytta när det är mörkt
En sju segment display fungerar med hjälp av shiftregisters att visa en räknare

*/

#include < SPI.h >
#include < Ethernet.h >
#include < Servo.h >

Ange en MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip [] = {192, 168, 178, 188};

siffror:
int latchPin = 2; //muss noch angeschlossen werden
int clockPin = 4;
int dataPin = 3;
int yellowPin = 16.
int redPin = 18;
int bluePin = 17;
int greenPin = 19.
int btnPin = 7.

färger
int röda;
int grönt;
int blå;
int gult;
int ydir; riktning mot gula vissna

siffran är matrisen för nummer 192 för 0, 249 för 1,... 255 för ingenting och 191 för-
byte [siffra] = {192, 249, 164, 176, 153, 146, 130, 248, 128, 144, 255, 191, 225, 163, 171, 198, 167, 123};

int dig1;
int dig2;
int antal;
int ljus;

ljussensor:
int lightPin = 1; //light sensor

Starta servern Ethernet-biblioteket
med IP-adress och port vill du använda
(port 80 är standard för HTTP):
EthernetServer server(80);
Servo myservo; skapa objekt för att styra servo servo
int count = 0;

tid
osignerade långa previousMillis = 0;
osignerade långa currentMil = 0;
osignerade långa previousMil = 0;
osignerade långa mil = 0;

booleska timepassed = sant;

void setup()
{
myservo.attach(6); fäster servo på stift 6
Starta Ethernet-anslutningen och servern:
Ethernet.BEGIN (mac, ip);
Server.BEGIN();

pinMode (latchPin, produktionen);
pinMode (clockPin, produktionen);
pinMode (dataPin, produktionen);
pinMode (yellowPin, produktionen);
pinMode (redPin, produktionen);
pinMode (greenPin, produktionen);
pinMode (bluePin, produktionen);
pinMode (btnPin, ingång); //switch
Serial.BEGIN(9600);
digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, MSBFIRST, siffran [11]), //ones
shiftOut (dataPin, clockPin, MSBFIRST, siffran [11]), //tens
digitalWrite (latchPin, hög);
antal = 0;
röd = 0;
grön = 0;
blå = 0;
gul = 250;
ydir = 1;
analogWrite (yellowPin, gul);
analogWrite (redPin, röd);
analogWrite (greenPin, grön);
analogWrite (bluePin, blå);
myservo.write(0);

Serial.Print ("servern är på");
Serial.println(Ethernet.localIP());

}

void loop()
{
randomSeed(analogRead(A0)); Gul slumpmässiga
gul = random (111, 256);
Gul = Gul + (1 * ydir); typ av fade
om (gula == 255) ydir = -1;
om (gula == 110) ydir = 1;
Serial.println(Yellow);
analogWrite (yellowPin, gul), //Eyes på

lyssna efter inkommande klienter
EthernetClient klient = server.available();
om (klient) {
en http-förfrågan avslutas med en tom rad
booleska currentLineIsBlank = sant;
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Om du har fått till slutet av raden (fick en newline
karaktär) och raden är tom, http-begäran har avslutats,
så du kan skicka ett svar
om (c == '\n' & & currentLineIsBlank) {
Skicka ett standard http-svarshuvud
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println();

antal = antal + 1; //there var en begäran

antal = antal + 1; //Counter
SevenSegDis (); //Display
om (antal == 99) {//so 100 saknas :(men vem bryr sig
digitalWrite (yellowPin, hög); behövs inte längre eftersom yellowPin är analogWrite hela tiden
antal = 0;
}

bryta;
}
om (c == "\n") {
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r') {
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(1);
stänga anslutningen:
client.stop();

randomSeed(analogRead(A0));
röd = random(256);
randomSeed(analogRead(A0));
grön = random(256);
randomSeed(analogRead(A0));
blå = random(256);

Serial.Print ("Servo:");
Serial.println(myservo.Read());
Serial.Print ("Timepassed:");
Serial.println(timepassed);
Serial.Print ("Count:");
Serial.println(Count);
Serial.Print ("nummer:");
Serial.println(Number);
Serial.Print ("Mil:");
Serial.println(mil);
Serial.Print ("Licht:");
Serial.println(Light);
Serial.Print ("röda:");
Serial.println(Red);
Serial.Print ("gröna:");
Serial.println(Green);
Serial.Print ("blå:");
Serial.println(Blue);

}

lightsens(); kontrollerar ljuset
Time(); / / kontrollerar tiden

om (ljus < 99 & & timepassed == true & & count > 0) {//so när dess mörka servo inte fungerar och
myservo.attach (6), //attaches Servo till Pin6 igen
om (myservo.read() == 0) {
myservo.write(180); arm upp
timepassed = false;
antal = antal -1;
}
annat if (myservo.read() == 180) {
myservo.write (0), //arm ner
timepassed = false;
antal = antal -1;
}
Delay(1000);
myservo.detach (); //detaches Servo
vänder lampor av om servo körs
analogWrite (redPin, 0);
analogWrite (greenPin, 0);
analogWrite (bluePin, 0);
}
annars om (ljus > = 99 & & count > 0) {//so när dess mörka ljuset ändras med varje träff på webbplatsen
analogWrite (redPin, röd);
analogWrite (greenPin, grön);
analogWrite (bluePin, blå);
antal = antal-1;
timepassed = false;
}

om (digitalRead(btnPin) == hög) {//check om knapp trycks
randomSeed(analogRead(A0));
röd = random(256);
randomSeed(analogRead(A0));
grön = random(256);
randomSeed(analogRead(A0));
blå = random(256);

analogWrite (redPin, röd);
analogWrite (greenPin, grön);
analogWrite (bluePin, blå);
}

}

---Del två: sju segment Display

void SevenSegDis() {//controls display med två SKIFT register
antal = begränsa (nummer, 0, 99); //number > = 0 och < 99 på grund av Visa spektrum
om (antal < 10) {
dig1 = 10; visar ingenting
dig2 = nummer; sådana
digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, MSBFIRST, siffran [dig2]), //ones
shiftOut (dataPin, clockPin, MSBFIRST, siffran [dig1]); //tens här ingenting
digitalWrite (latchPin, hög);
}
annat {
dig1 = antal/10; / / första siffran tio
dig2 = antal - dig1 * 10; andra siffran som
digitalWrite (latchPin, låg);
shiftOut (dataPin, clockPin, MSBFIRST, digit[dig2]);
shiftOut (dataPin, clockPin, MSBFIRST, digit[dig1]);
digitalWrite (latchPin, hög);
}
}

---Del tre: den ljussensor delen

void lightsens() {
ljus = analogRead(lightPin);
ljus / = 10;

}

---Del fyra: tiden grejen

{Ogiltig tid)
currentMil = millis();
om (currentMil < previousMil) {/ / om millis svämmar över
mil += 34359738 - previousMil + currentMil;
}
annat {/ / om millis inte har territorier överflygas
mil += currentMil - previousMil;
om (mil > 25000) {//if 20 SEK gått
timepassed = true; //resets timepassed till true för servo
mil = mil-25000;
}
previousMil = currentMil;
}
}

Se Steg
Relaterade Ämnen

Hur man bygger en Arduino Powered Chess spela Robot

att döma av det stora antalet schack relaterade Instructables, jag tycker det är säkert att säga gemenskapen åtnjuter spelet. Det kan dock vara svårt, att hitta någon som spelar på samma nivå som du gör. Att lösa detta dilemma, och att öka min spela...

Ett trådlöst kontrollerade, Arduino-Powered anslagstavla

bygga själv en trådlöst styrd, Arduino-powered anslagstavla!Här är ett enkelt projekt som skapar en trådlöst programmerbart anslagstavla. XBee moduler använder för att ge en trådlös seriell länk mellan datorn och enheten. Du interagerar med den via e...

Arduino-Powered binära termometer

jag nyligen förvärvat en Arduino Uno och letade efter en cool "komma igång" projekt. Jag beslöt att göra en termometer, som satsen har jag haft alla nödvändiga delar (termistor, sladdar, motstånd, lysdioder). Genom ett par iterationer, jag äntli...

Arduino Powered infraröd sak

Hej, detta är min första instructible. Jag kommer att visa dig hur man gör en arduino powered analog sensor läsare (jag kommer att använda en infraröd fotodiod).Steg 1: delar Du behöver flera saker att göra detta:1. någon form av fallet eller låda2....

Arduino Powered uppvärmd handske Liners

Arduino Powered uppvärmda handskarDetta projekt är om hur att göra världens smartaste uppvärmd handske liners för extremt kalla förhållanden som de i Minnesota eller människor som har Raynauds syndrome(like me). Dessa handskar kommer förses du med ti...

Arduino-powered LED klocka

En rolig, enkel LED-klocka, som ger dig tiden till den närmaste halvtimmen med hjälp av enfärgade lysdioder. Delar som behövs är följande:Arduino Nano400 tie-punkt skärbrädaBandkabelDS1307 RTC IC32.768 kHz Crystal(12) 10mm lysdioder(12) 180 Ohm motst...

Arduino powered Halloween pumpa med rörelsedetektor

Hejdetta Instructable visar dig hur man gör några Halloween dekorationer inklusive arduino powered Halloween pumpa med rörelsedetektor.Steg 1: Göra Halloween pumpa Material:Rund ballongGamla tidningarSmidig mjölVattenTemperaModellering leraSuperlimVe...

Kinesiska Lucky katt-O-Lantern

detta kommer att visa dig hur man gör din egna kinesiska Lucky katt-O-Lantern!Steg 1: Steg 1-se mönstret Först, rita ett mönster baserat på en kinesisk lycklig katt. Försöka göra det rista-stånd. Färg i de följande avsnitten kommer att lyftas med en...

Acrylic fisk Tank med Arduino-Powered mataren

Har du någonsin velat ett mer händer på känsla när får en fisk? Eller ville ha något annat än de genomsnittliga akvarier finns i butiker? Denna fisk tank är helt anpassad och kan ändras för att passa din storlek behov och har en Arduino powered feede...

Arduino Powered RGB LED Vodka hylla

detta instructable kommer du igång att göra ditt eget arduino powered röd grön och blå LED-projekt. Det behöver inte ens vara en hylla! Vodka flaskor råkar bara lysa upp fint så det är vad jag valde att göra.I detta projekt använder vi varje stift på...

Att göra en Arduino Powered gardin Automation

I den här videon börja jag arbeta på visar dig hur man gör en Arduino Powered enhet som kommer att öppna och stänga gardiner!Med hjälp av några rep och en kontinuerlig rotation servo jag kan skapa en trissa system som fungerar som stamnät till rörels...

3 kanal arduino Powered Christmas Light Controller!

För julen i år, jag ville göra ett riktigt häftigt projekt men inte riktigt vet vad man ska göra. Som jag fick julen ljus ut att dekorera, var det en gammal trasig Christmas light timer. Jag tog isär och tittade på lågspänning kretsen. Innan detta ha...

Solar-orienterade, Arduino-Powered klockan

detta är en klocka för att hålla exakt tid (oberoende av atom eller GPS), Visa lokala soluppgång, solnedgång och solar, och även justera sig för sommartid.Jag ville ha klockan för att vara lätt att använda och vara flexibel. Funktionerna som inställn...

Arduino Powered raket styrsystemet

detta är min första Instructable så bär med mig.Detta är en Arduino Powered raket vägledning System. Jag skickade in detta för Google Global Science Fair. Min science projekt är på https://sites.google.com/site/arduinorocket/ . Det tog mig tre månade...

Arduino Powered Gainclone (förstärkare)

för er som inte vet (och jag inte förrän nyligen), en Gainclone är en förstärkare som är en klon av den ursprungliga utformningen av en förstärkare av 47 Labs kallas en Gaincard och är baserade på enkel flisa förstärkare av National Semiconductor - n...

Arduino powered RC tank

detta är min första instructable så snälla ha tålamod med mig. Mitt namn är Stanley Deakins och jag har spelat med elektronik ganska länge, men det var år sedan. På grund av min senaste anställning har jag återuppväcka denna passion. Jag har fått min...

Nattliga utsläpp: Min Arduino Powered Internet aktiverat dröm Generator

måste vi alla drömmer mer så jag har skapat denna Arduino Powered "dream generator" för att plantera frön för några stora tänkande galenskap. När du närmar dig generatorn en Maxbotix ultrasonic sensor utlöser ljus och musik som drar du i så du k...

Arduino Powered RGB humör lampa plus Simon

detta är grunden en arduino powered RGB humör lampa plus simon says spel, två i ett.Hur man använder: Enheten börjar med RGB humör lampa standardprogram, när du trycker på någon av de fyra knapparna längst ner, säger Simon spelet startar. När du tryc...

CO2 Laser vatten flöde Monitor - Arduino Powered / Windows kontrollerade

CO2 Laser vatten flöde Monitor och larmDrivs av en Arduino och kontrollerade av anpassade program på en Windows PCAtt förlänga livslängden på en CO2 laser röret är det nödvändigt att pumpa kylvatten genom det medan det fungerar. Om pumpen inte eller...