Sentriduino! Zijn het alle nieuwe Sentry torentje gemaakt van gerecycled dingen zou je rond uw huis! (8 / 9 stap)

Stap 8: Stap 7: het programma.


Er zijn twee verschillende codes, ik persoonlijk houd algoritme 2 beter. algoritme die 1 soort-van werkt, kunt u aanpassen voor uw eigen gebruik.

algoritme 1
#include < Servo.h >

int map_table [140] [14];
int tablex = 0;
int tabley = 0;
int cm2 = 1; ingesteld op 1 als de gewenste maten in cm, 0 als duim.
Servo myservo;  servo-object om te bepalen van een servo (as) maken
Servo myservo2; servo-object om te bepalen van een servo (squirt gun) maken
maximaal acht servo-objecten kan worden gemaakt
Const int MeasureOutput = 6; Pin Ping)))
int bereik = 80; bereik
int pos = 0;    variabele op te slaan van de servo positie
int sweep = 1;
VOID Setup
{
Serial.begin(9600);
myservo.attach(9);  de servo op pin 9 hecht aan de servo-object
myservo2.attach(10);  de servo op pin 10 hecht aan de servo-object
}

void loop
{
Als (sweep == 1)
{
voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden
{/ / in stappen van 1 graad

map(POS);
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}
voor (pos = 180; pos > 1; pos-= 1) / / gaat van 180 graden tot 0 graden
{
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen
map();
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}
sweep = 2;

}
Als (sweep == 2) {}
voor (pos = 0; pos < 180; pos += 1) / / gaat van 0 graden tot 180 graden
{/ / in stappen van 1 graad

Measure(POS);
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}
voor (pos = 180; pos > = 1; pos-= 1) / / gaat van 180 graden tot 0 graden
{

Measure(POS);
myservo.write(POS);              servo naar positie in de variabele 'pos' vertellen
delay(15);                       wacht 15ms voor de servo te bereiken de positie
}

}
}

VOID maatregel (int-nummer)
{
lange duur, inch, cm;
pinMode (MeasureOutput, uitvoer);
digitalWrite (MeasureOutput, laag);
delayMicroseconds(2);
digitalWrite (MeasureOutput, hoge);
delayMicroseconds(5);
digitalWrite (MeasureOutput, laag);
pinMode (MeasureOutput, INPUT);
duur = pulseIn (MeasureOutput, hoge);
cm = microsecondsToCentimeters(duration);
duim = microsecondsToInches(duration);
convert_to_1D_number(Number);
Als (cm2 == 1)
{
Als (cm < map_table [tablex] [tabley] - 10 & & bereik < cm) {}
sweep = 3;
Attack(cm);
}
Als (cm > map_table[tablex][tabley]) {}
map_table [tablex] [tabley] = cm;
}
}
else {}

}

}

VOID aanval (int org)
{
myservo.attach(9);
int pos2;
voor (pos2 = pos pos < 180; pos += 1)
{
Serial.println("Attack!");
POS ++;

delay(15);
doel (pos, org);
myservo.write(POS);
myservo2.write(100);
}
voor (pos2 = pos pos > 1; pos-= 1)
{
Serial.println("Attack!");
POS ++;

delay(15);
doel (pos, org);
myservo.write(POS);
myservo2.write(100);
}
sweep = 2;
}

void (int org) links
{
Serial.println("attackL!");
POS--;

delay(15);
myservo.attach(9);

doel (pos, org);
myservo.write(POS);
}
void (int org) recht
{
Serial.println("attackR!");
POS ++;

delay(15);
myservo.attach(9);
doel (pos, org);
myservo.write(POS);
myservo2.write(100);

}
Ongeldig doelwit (int-nummer, int org)
{
lange duur, inch, cm;
pinMode (MeasureOutput, uitvoer);
digitalWrite (MeasureOutput, laag);
delayMicroseconds(2);
digitalWrite (MeasureOutput, hoge);
delayMicroseconds(5);
digitalWrite (MeasureOutput, laag);
pinMode (MeasureOutput, INPUT);
duur = pulseIn (MeasureOutput, hoge);
cm = microsecondsToCentimeters(duration);
duim = microsecondsToInches(duration);
convert_to_1D_number(Number);
Als (cm2 == 1)
{
Als (map_table [tablex] [tabley] < bereik) {}
Als (cm < map_table[tablex][tabley]/2) {}
Right(org);
}
Als (cm < map_table[tablex][tabley]) {}
Left(org);
}

}
else {}
Als (cm < map_table [tablex] [tabley] -10 & & bereik < cm) {}
Right(org);
}
Als (cm < map_table [tablex] [tabley] -10 & & bereik > cm) {}
Left(org);
}
}
Als (cm > map_table[tablex][tabley]) {}
map_table [tablex] [tabley] = cm;
}
}
else {}

}

}

ongeldig kaart (int-nummer)
{
lange duur, inch, cm;
pinMode (MeasureOutput, uitvoer);
digitalWrite (MeasureOutput, laag);
delayMicroseconds(2);
digitalWrite (MeasureOutput, hoge);
delayMicroseconds(5);
digitalWrite (MeasureOutput, laag);
pinMode (MeasureOutput, INPUT);
duur = pulseIn (MeasureOutput, hoge);
duim = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
convert_to_1D_number(Number);
Als (cm2 == 1)
{
map_table [tablex] [tabley] = cm;
}
else {}
map_table [tablex] [tabley] = inch;
}
Serial.println(map_table[tablex][Tabley]);
Serial.Print (",");
Serial.Print(Number);
}

VOID convert_to_1D_number(int number)
{
tablex = ((number % 14) + 1);
Tabley = nummer / 14;
}

lange microsecondsToInches(long microseconds)
{
Volgens de Parallax gegevensblad voor de PING))), er zijn
73.746 microseconden per inch (dwz geluid reist aan 1130 voeten per
seconde).  Dit geeft de afstand die is afgelegd door de ping, uitgaande
en terug te keren, zodat wij door 2 delen te krijgen van de afstand van het obstakel.
Zie: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
retourneren van microseconden / 74 / 2;
}

lange microsecondsToCentimeters(long microseconds)
{
De snelheid van het geluid is 340 m/s of 29 microseconden per vierkante centimeter.
De ping reist uit en terug, zo vind je de afstand van de
we de helft van de afgelegde afstand nemen-object.
retourneren van microseconden / 29 / 2;
}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

algoritme 2
#include < Servo.h >

Servo myservo;  maken van servo-object om te bepalen van een servo
Servo myservo2;                maximaal acht servo-objecten kan worden gemaakt
int dist = 80;
int richting = 1;
Variabelen zal veranderen:
int ledState = laag;             ledState gebruikt voor het instellen van de LED
lange previousMillis = 0;        laatste keer LED werd bijgewerkt zal slaan

de follow-variabelen is een Long-waarde, omdat de tijd, in miliseconden, gemeten
snel zal uitgegroeid tot een groter aantal dan kan worden opgeslagen in een int.
lange interval = 1000;           interval waartegen knipperen (milliseconden)
int squirt = 0;
int pos = 0;    variabele op te slaan van de servo positie
Const int MeasureOutput = 6;
int currentMillis = 0;
VOID Setup
{
Serial.begin(9600);
myservo.attach(9);  de servo op pin 9 hecht aan de servo-object
myservo2.attach(10);
myservo2.write(147);
}

void loop
{
Serial.println(Squirt);
Serial.println(currentMillis);
Als (currentMillis - previousMillis > interval) {}
de laatste tijd u de LED knipperde besparen

previousMillis = currentMillis;
Als (ledState == LOW & & spuiten == 1) {}
ledState = hoog;
myservo2.attach(10);
myservo2.write(155);
delay(120);
spuiten = 0;
}
Als (ledState == HIGH & & spuiten == 0) {}
ledState = laag;
myservo2.Detach(); }

}
digitalWrite (13, ledState);
delay(1);
Scan();
delay(14);
currentMillis = currentMillis + 15;
digitalWrite (10, laag);
}

VOID scan()
{
lange duur, inch, cm;
pinMode (MeasureOutput, uitvoer);
digitalWrite (MeasureOutput, laag);
delayMicroseconds(2);
digitalWrite (MeasureOutput, hoge);
delayMicroseconds(5);
digitalWrite (MeasureOutput, laag);
pinMode (MeasureOutput, INPUT);
duur = pulseIn (MeasureOutput, hoge);
cm = microsecondsToCentimeters(duration);
duim = microsecondsToInches(duration);
Als (dist > cm =) {}

datumwaarde;

}
Als (dist < cm) {}

rechts();

}
Als (dist > cm) {}
myservo2.attach(10);
spuiten = 1;

myservo2.Detach();
}
}

VOID datumwaarde {}
Als (richting == 1)
{
POS--;
myservo.write(POS);
Als (pos < 1) {}
richting = 0;
}
}
Als (richting == 0)
{
POS ++;
myservo.write(POS);
Als (pos > 150) {}
richting = 1;
}
}

}
VOID rechts() {}
Als (richting == 1)
{
POS ++;
myservo2.attach(10);
myservo.write(POS);
myservo.write(POS);
Als (pos > 150) {}
richting = 0;
}
}
Als (richting == 0)
{
POS--;
myservo2.attach(10);
myservo.write(POS);
myservo2.write(155);  set servo naar halverwege
delay(15);
myservo2.Detach();
myservo.write(POS);
Als (pos < 1) {}
richting = 1;
}
}
}

lange microsecondsToInches(long microseconds)
{
Volgens de Parallax gegevensblad voor de PING))), er zijn
73.746 microseconden per inch (dwz geluid reist aan 1130 voeten per
seconde).  Dit geeft de afstand die is afgelegd door de ping, uitgaande
en terug te keren, zodat wij door 2 delen te krijgen van de afstand van het obstakel.
Zie: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
retourneren van microseconden / 74 / 2;
}

lange microsecondsToCentimeters(long microseconds)
{
De snelheid van het geluid is 340 m/s of 29 microseconden per vierkante centimeter.
De ping reist uit en terug, zo vind je de afstand van de
we de helft van de afgelegde afstand nemen-object.
retourneren van microseconden / 29 / 2;
}

Gerelateerde Artikelen

Traag beanie muts gemaakt van gerecycled T-Shirts

Traag beanie muts gemaakt van gerecycled T-Shirts

Kan niet breien? Kan niet haken? Geen probleem. Als ik dit doen kunt, kunt u dit doen.Als iemand die eigenaar is van een kleine bibliotheek met alles wat men nodig heeft om te leren hoe om te haken, moet ik toegeven, ik gewoon niet kan krijgen door m
Draagbare BBQ, gemaakt van gerecycled Junk!

Draagbare BBQ, gemaakt van gerecycled Junk!

It's finally BBQ-weer in het Verenigd Koninkrijk en om het meeste van, veel mensen hebben BBQ's op het strand. Winkel bracht BBQ's zijn echter te duur voor wat ze werkelijk zijn; een pot met gaten in en een metalen rooster.Dus waarom geen gebruik mak
Hoe maak je een duurzaam oogst mand gemaakt van gerecycled materialen

Hoe maak je een duurzaam oogst mand gemaakt van gerecycled materialen

hebt u een stapel van boodschappenzakken wachten om te worden gerecycleerd, zet ze aan het werken in de tuin als een duurzame Harvest Basket. Het kan jaren worden gebruikt nadat u maken en als er iets gebeurt aan uw mandje oogst enkel een ander zijn
Leuke en goedkope Pot gemaakt van gerecycled PVC

Leuke en goedkope Pot gemaakt van gerecycled PVC

Hoi, is dit een snelle manier te recyclen een 4ft PVC pijp (overgebleven uit een home reparatie), in een pot van de plant.We moeten:Een 4ft PVC pijp.6 schroeven - 5/16 in breed x 3/8 in lange2 klemmen 4, met dubbele vaststelling punt.1 PVC fitting -
Wat als u een Bierpul gemaakt van gerecycled Coasters

Wat als u een Bierpul gemaakt van gerecycled Coasters

Toen ik voor het eerst benaderd met dit idee leek het alsof het zou een eenvoudig project. Dat moet een waarschuwing teken daar geweest, maar mijn hersenen net dacht dat, "Maak het glas van een functionele pint van afgedankte bierviltjes? Ik vraag me
Poppentheater gemaakt van gerecycled pallet

Poppentheater gemaakt van gerecycled pallet

op onze kleuterschool de 4 jarigen wilden maken een poppenkast.  Zij hadden ontworpen en gemaakt van verschillende andere projecten met gerecyclede pallets, dus het was ook hun hout van keuze voor de poppenkast.  De kinderen ontmanteld de pallet (hie
Hoe maak je een efficiënte veelzijdige energielamp gemaakt van gerecycled glas

Hoe maak je een efficiënte veelzijdige energielamp gemaakt van gerecycled glas

als u één van die rare mensen zoals ik die heb een heleboel kladjes van glas over het huis bent, dan is dit een groot project om iets mooi en op zijn minst semi-nuttig te maken.(Door de manier waarop dit project is een LED (Light Emitting Diode) Thee
Eenvoudige LED torch - gemaakt van gerecycled batterij

Eenvoudige LED torch - gemaakt van gerecycled batterij

ik gebruikte een rode LED voor dit instructable, want het is makkelijker om te zien dan een duidelijk en ik heb niet een kleine Schakel een bij de hand. Als u een van deze met behulp van de instructies, het zal veel helderder dan in de foto, het is g
Geurende Gift boog gemaakt van gerecycled parfum advertenties

Geurende Gift boog gemaakt van gerecycled parfum advertenties

maken voor de topping uit de verpakking van een bijzonder cadeau, een one-of-a-kind boog met de toegevoegde verrassing voor de uitvoering van een exotische ontwerper geur!  Uw ontvanger moet nooit weten dat deze mooie en feestelijke cadeau boog werd
CHICKEN RUN gemaakt van gerecycled scheepvaart PALLETS

CHICKEN RUN gemaakt van gerecycled scheepvaart PALLETS

bescherming voor kuikens voordat RUNNING vrije UITLOOP. GEMAAKT VAN OUDE SCHEEPVAART PALLETS EN GEGOLFDE KUNSTSTOF.Als u wilt dat het langer gebruiken meer PALLETS,,,
USB gemaakt van gerecycled hout

USB gemaakt van gerecycled hout

dit instructable laat zien hoe een gemeenschappelijk usb omzetten in een mooie one. De metalen of plastic cover omzetten in hout.Stap 1: Materialen1.-rotary tool met accessoires voor schuren en snijden.Lijm van 2-Wit3.-USB4.-silicone, te vullen het l
Geheim compartiment muur plank (gemaakt van gerecycled hout!)

Geheim compartiment muur plank (gemaakt van gerecycled hout!)

Dit is een kleine plank maakte ik van geregenereerde pallets (ik heb een ton van hen in mijn achtertuin!). Het is gemaakt met zelfs niet één hele pallet, op het gebied van 1/2 tot 3/4 van een pallet en sommige brad nagels die ik zeker dat er een bete
Geweven mand gemaakt van gerecycled papier / troeppost

Geweven mand gemaakt van gerecycled papier / troeppost

als je net als mij, ziek na ontvangst van ongewenste mails die kwam in de mail elke dag, probeer gebruikend weeftechniek vergelijkbaar met de manier waarop Indonesisch weven plastic koffie zakjes.Stap 1: Links die nodig zijn voor het weven De verhoud
Sculptuur Robot (onderdeel 1 van 9): robotarm gemaakt van gerecycled rijwielen

Sculptuur Robot (onderdeel 1 van 9): robotarm gemaakt van gerecycled rijwielen

Ik heb het opbouwen beeld voor meer dan tien jaar en ik zag de evolutie van machinale bewerking technologie gaan van CNC frezen tot 3D desktop object afdrukken. Deze 'making machines' hebben gevormd een fysieke kloof tussen mijn handen en de material