Frankenstein project (1 / 5 stap)

Stap 1: Arduino Code:


 /****************************************** PURPOSE: Project FrankensteinCreated by Howard KaplanDATE: 4.22.2015This sketch used the HCSR04.h class and HCSR04.cpp to get the sensor input and stores the current and previous distances using the Serial Monitor - the distance of the detected object is displayed and determined as approaching or retracting based on the current and previous distance. Additional components such as LEDs and Servos are used and their respective pins are turned on and off depending on the range sensor values. The sketch also uses the Servo and Pitches libraries.*******************************************/// Libs#include "HCSR04.h"//include calls the header / class file#include // calls the servo lib files////MUSIC#include "pitches.h"////Range Sensor#define echoPin 13 // This is the echo pin for range sensor#define triggerPin 12 // This is the trigger pin for range sensorHCSR04ProxSensor distanceSensor(echoPin,triggerPin);//here we call the constructor to instantiate a sensor named "distanceSensor"///Music Arrays int melody[] = { NOTE_A6,NOTE_C6,NOTE_E6,//3 NOTE_E6,NOTE_A6,//2 NOTE_C6,NOTE_E6,//2 NOTE_E6,NOTE_A6,//2 NOTE_C6, NOTE_E6,//2 NOTE_E6,NOTE_A6,NOTE_C6,//3 NOTE_E6,NOTE_G6,NOTE_B6,//3 NOTE_D6,//1 0, NOTE_E6,NOTE_D6,NOTE_C6,NOTE_B6,//4 NOTE_A5, NOTE_A5//1/23 };// note durations: 4 = quarter note, 8 = eighth note, etc.:int noteDurations[] = { 4,4,4, 8,4, 4,8, 4,8, 4,8, 4,4,4, 4,4,4, 1, 2, 8,8,8,8, 4,1, }; //// //FAN int fan1 = 4;//Fan on pin 4 //LEDS 2 Pins - 4 Leds int ledReds = 11;//2 red int ledGreens = 10;//2 green //Servos 3 Servo servoEye, servoM; ///servoEye - has 2 servos to 1 pin (right and left eye) int posEye1 = 140; // variable to store the servo position // int musicPin = 9; int pauseBetweenNotes; float distance; //Distance to activate sensor / loop change/***************************setup function****************************************************/void setup() { Serial.begin(9600);//start serial communication //FAN pinMode(fan1,OUTPUT); //digitalWrite(fan1,LOW); //SERVOs servoEye.attach(5); //eye servoM.attach(3); //mouth //set eye start position servoEye.write(140); //set mouth servoM.write(60); //LEDs pinMode(ledReds, OUTPUT); pinMode(ledGreens, OUTPUT); } /***************************main loop*********************************************************/void loop() {/******************SENSOR***************************************/ Serial.print("The distance is : "); distance = distanceSensor.readSensor();//here we call the 'readSensor' method to determine the distance Serial.print(distance);// send the measurement to the serial monitor Serial.println(" cm"); if (distanceSensor.getLastValue() - distance > 1) { Serial.println("object is approaching"); }//here we call the 'getLastValue' method to determine the direction of motion if (distanceSensor.getLastValue() - distance < -1) { Serial.println("object is retracting"); }/***************Main Condition Statement******************************************/ ////FAN on / off if(distance >= 40.00) { digitalWrite(fan1,LOW); //Leds - Green ON Reds OFF digitalWrite(ledGreens, HIGH); digitalWrite(ledReds, LOW); ///Servo Eyes Look servoEyesBacFor(); ///Servo Mouth Close servoM.write(50); }else{ digitalWrite(fan1,HIGH); //Leds - Green OFF Reds ON digitalWrite(ledGreens, LOW); digitalWrite(ledReds, HIGH); //Servo Stop Straight servoEye.write(140); ///Servo Mouth Open servoM.write(80); //Puttin' on the Ritz playMusic(); } }/*****************EYEs FUNCTION****************************************/ void servoEyesBacFor(){ for(posEye1 = 90; posEye1 <= 180; posEye1 += 1) // goes from 0 degrees to 180 degrees { if(distanceSensor.readSensor() <= 40.00){ break; } // in steps of 1 degree servoEye.write(posEye1); // tell servo to go to position in variable 'pos' delay(5); } for(posEye1 = 180; posEye1 >= 90; posEye1-=1) // goes from 180 degrees to 0 degrees { if(distanceSensor.readSensor() <= 40.00){ break; } servoEye.write(posEye1); // tell servo to go to position in variable 'pos' delay(5); } } /***************************************/ void playMusic(){ for (int thisNote = 0; thisNote < 24; thisNote++) { ///Check distance and break out of loop if out of range if(distanceSensor.readSensor() >= 40.00){ thisNote = 0; break; } int noteDuration = 1000/noteDurations[thisNote]; tone(musicPin, melody[thisNote],noteDuration); pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); noTone(musicPin); } } /***********************The End!*************************/ 

Gerelateerde Artikelen

Steampunk Audio & Chronograph Station

Steampunk Audio & Chronograph Station

dank aan allen voor uw zeer creatieve ontwerpen en projeccts, hebben jullie allemaal inspireerde mij om te bouwen van mijn eigen Steampunk Audio & Chronograph Station.  Dit project kostte me WAAAY langer dan ik verwacht en ging weg over de begroting,
Papier mache Frankenstein masker

Papier mache Frankenstein masker

dus ik had dit idee voor een Halloween kostuum, maar ik heb geen ervaring opbouwen van dit soort dingen. Ik wist dat als dit trachten opwaarts zijnde te tijdrovend, te duur, of gewoon te moeilijk ik zou ziek worden van het en borgtocht, dus ik probee
Frankenstein Halloween Card - DIY ambachten

Frankenstein Halloween Card - DIY ambachten

In dit project ziet u hoe maak je een mooie halloween-kaart.Deze tutorial is het stap voor stap instructies, dus het is zeer eenvoudig te underastand het.Stap 1: Bekijk de video!Stap 2: Verzamelen uw toebehoren. Voor deze kaart moet u de volgende ite
Hoofdtelefoon houders - een leuke en creatieve bovenliggend/onderliggend Project

Hoofdtelefoon houders - een leuke en creatieve bovenliggend/onderliggend Project

Dit is een vader + zoon project dat ik heb met mijn zoon gewerkt. Dit is een vrij snelle en eenvoudige project dat prima als een ouder/kind-project werkt. Mijn zoon had het idee dat hij zou willen bouwen van een paar van de houders van de hoofdtelefo
Frankenstein - Ninjato - 2.0 (Remade)

Frankenstein - Ninjato - 2.0 (Remade)

I got around to making an actual instructable. Dat is een groot ding, ik meestal gewoon post foto's van afgeronde projecten. Deel van de reden waarom die ik ben het maken van een instructable is omdat dit zwaard genereerde, feitelijk plaatsvond toen
Frankenstein stijl boor batterij reparatie

Frankenstein stijl boor batterij reparatie

Dus ik weet, dat technisch dit is niet een reparatie van batterij, oorzaak ik ben ter vervanging van de elementen binnen. En misschien een miljoen mensen iets soortgelijks hebben gedaan. Maar zoals ik het zie, het is een reparatie, oorzaak ik ben nie
Frankenstein nachtlampje

Frankenstein nachtlampje

Frankenstein nachtlampjeDit project duurde ongeveer een uur tijd en kosten $2.95.Ik vond deze LED nacht licht op een lokale W ** m ** t en dacht dat ik kon doen beter dan de saaie ronde stukje plastic ze erin had geschoven.Mijn 1e stap is de illustra
DIY Frankenstein ketting

DIY Frankenstein ketting

goed ik altijd heb liefgehad het vreemde en ongebruikelijke, en met mijn vriendin's verjaardag coming up ik dacht wat is beter dan het overeenkomende Frankenstein kettingen? Ik heb een aantal hier en daar te koop maar zij neigen alle latex en niet ec
Blinky papier Robot - 1e papier Circuit Project

Blinky papier Robot - 1e papier Circuit Project

Deze leuke kleine project is een snelle, goedkope Inleiding tot papier circuits. Het maakt ook gebruik van sturdy zelf permanent papier mensen van mijn vorige ' ible (Blinky is een gelukkige kleine robot met een vrolijke rood licht op zijn hoofd. Het
Pandahall origineel DIY Project - Vintage zwart zaad kralen Choker ketting

Pandahall origineel DIY Project - Vintage zwart zaad kralen Choker ketting

wil je leren chick ketting? Als ja, je nooit hedendaagse Pandahall oorspronkelijke DIY project missen kunt - bead vintage zwart zaad choker ketting.Stap 1: Materialen die nodig zijn voor de choker ketting:IJzeren Jumprings18 x 8.5 ~ 9mm Rood glas pun
DIY Pine Bird Feeder - a CNC Project

DIY Pine Bird Feeder - a CNC Project

Dit was een zeer eenvoudig leuke kleine project. De buiten kat etensbak gehouden getting geplunderd door allerlei interessante vogels, zo duidelijk dat een vogel feeder nodig was.Dit werd ontworpen in Inkscape, zodat ik kon knip uit de delen op mijn
GaussGun / Coil-Gun elektronica en Engineering Project

GaussGun / Coil-Gun elektronica en Engineering Project

Ik besloot om de Gold Award van de Crest aan mijn college, die een grote brevet van de British Science Association, dat studenten de gelegenheid geeft om het uitbreiden van hun kennis van wetenschap, technologie, techniek en wiskunde door de voltooii
Ruben's Tube brand Scythe Engineering Project / Prop

Ruben's Tube brand Scythe Engineering Project / Prop

Een Ruben's tube of gewoon brand buis is een set-up waarin vlammen hogere worden zullen of lagere volgens de frequentie van het geluid voor het invoeren van de buis. In wezen, de vlammen fungeren als een oscilloscoop voor het invoeren van de buis gel
Gerecycled Craft Project: How to Make DIY Bureau Organizer

Gerecycled Craft Project: How to Make DIY Bureau Organizer

Hallo vrienden! Deze tijd terug met nog een ander fantastisch DIY gerecycleerd ambachten Project. Leer hoe maak je een DIY Bureau Organizer met behulp van karton met een stap voor stap tutorial met instructiesen deze fantastische Handige potlood houd