Design av Humanoid och Drone Hybrid för att neutralisera hot och övervakning (6 / 7 steg)

Steg 6: Kod för robot

Killarna här vi har använt flera Arduino UNO varje för olika delar för att arbeta av robot så vara alert medan du bränner koden in i den.

Höger och vänster hand styr sändarens kod:

int sen0 = A0;

int sen1 = A1;

int sen2 = A2;

int sen3 = A3;

int sen4 = A4;

int sen5 = A5;

void setup()

{

Serial.BEGIN(9600);

}

void loop()

{

int val0 = map(analogRead(sen0), 260, 450, 100, 210);

Serial.Print(val0);

int värde1 = map(analogRead(sen1), 260, 450, 100, 210);

Serial.Print(val1);

int värde2 = map(analogRead(sen2), 260, 450, 100, 210);

Serial.Print(val2);

int val3 = map(analogRead(sen3), 260, 450, 100, 210);

Serial.Print(val3);

int val4 = map(analogRead(sen4), 260, 450, 100, 210);

Serial.Print(val4);

int val5 = map(analogRead(sen5), 260, 450, 100, 210);

Serial.Print(val5);

Delay(50);

}

Finger kontroll genom flex sensor sändaren koden:

int sen0 = A0;

int sen1 = A1;

int sen2 = A2;

int sen3 = A3;

int sen4 = A4;

int sen5 = A5;

void setup()

{

Serial.BEGIN(9600);

}

void loop()

{

int val0 = map(analogRead(sen0), 580, 650,0, 9);

Serial.Print(val0);

int värde1 = map(analogRead(sen1), 580, 650, 0, 9);

Serial.Print(val1);

int värde2 = map(analogRead(sen2), 580, 650, 0, 9);

Serial.Print(val2);

int val3 = map(analogRead(sen3), 580, 650, 0, 9);

Serial.Print(val3);

int val4 = map(analogRead(sen4), 580, 650, 0, 9);

Serial.Print(val4);

int val5 = map(analogRead(sen5), 580, 650, 0, 9);

Serial.Print(val5);

Delay(50);

}

Finger kontroll genom flex sensor mottagare kod:

#include

int servo0Pin = 2;

int servo1Pin = 3;

int servo2Pin = 4;

int servo3Pin = 5;

int servo4Pin = 6;

int servo5Pin = 7.

int val0;

int värde1;

int värde2;

int val3;

int val4;

int val5;

Servo myservo0;

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

void setup()

{

Serial.BEGIN(9600);

myservo0.attach(servo0Pin);

myservo1.attach(servo1Pin);

myservo2.attach(servo2Pin);

myservo3.attach(servo3Pin);

myservo4.attach(servo4Pin);

myservo5.attach(servo5Pin);

}

void loop()

{

While(Serial.available() == 0);

byte en = Serial.read();

byte b = Serial.read(); Sholder vänster

byte c = Serial.read();

byte d = Serial.read();

byte e = Serial.read(); lbow vänster

byte f = Serial.read();

int g = map(a,0,9,0,180);

int h = map(a,0,9,0,180);

int jag = map(a,0,9,0,180);

int j = map(a,0,9,0,180);

int k = map(a,0,9,0,180);

int l = map(a,0,9,0,180);

myservo0.write(g);

myservo0.write(h);

myservo0.write(i);

myservo0.write(j);

myservo0.write(k);

myservo0.write(l);

Delay(50);

}

Höger och vänster hand kontroll mottagare kod:

#include

int ledPin = 13. Välj den PIN-kod för LED

int inPin = 12;

int valinPin = 0;

int servo0Pin = 2;

int servo1Pin = 3;

int servo2Pin = 4;

int servo3Pin = 5;

int servo4Pin = 6;

int servo5Pin = 7.

int servo6Pin = 8;

int servo7Pin = 9;

Servo myservo0;

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

Servo myservo6;

Servo myservo7;

int val0;

int värde1;

int värde2;

int val3;

int val4;

int val5;

int för beräkning av vinklar

int d, i, n, s, o, t;

void setup()

{

setpin läge att förstå driftsform

pinMode (ledPin, produktionen); deklarera LED som utdata

pinMode (inPin, ingång); deklarera tryckknapp som indata

Serial.BEGIN(9600);

fästa servon

myservo0.attach(servo0Pin);

myservo1.attach(servo1Pin);

myservo2.attach(servo2Pin);

myservo3.attach(servo3Pin);

myservo4.attach(servo4Pin);

myservo5.attach(servo5Pin);

myservo6.attach(servo6Pin);

myservo7.attach(servo7Pin);

}

att minska spike effekt

int dlast, nlast, ilast, slast, olast, tlast;

void loop()

{

valinPin = digitalRead(inPin); Läs indatavärde

om (valinPin == hög) {/ / kolla om ingången är hög (knappen släppt)

digitalWrite (ledPin, hög); slå LED

While(Serial.available() == 0);

int data = Serial.read() - '0';

byte en = Serial.read();

byte b = Serial.read(); Sholder vänster

byte c = Serial.read();

byte f = Serial.read();

byte g = Serial.read(); lbow vänster

byte h = Serial.read();

byte k = Serial.read();

byte l = Serial.read(); W kvar spelomgång

byte m = Serial.read();

byte p = Serial.read();

byte q = Serial.read(); W lämnade upp ner

byte r = Serial.read();

extra för sex sensorer

byte u = Serial.read();

byte v = Serial.read(); Huvudet runda

byte w = Serial.read();

byte x = Serial.read();

byte y = Serial.read(); Huvudet upp ner

byte z = Serial.read();

d = (c-48) + (b-48) * 10 + (a-48) * 100;

d = karta (d, 210, 20, 100, 130);

d = begränsa (d, 20, 130);

Jag = (h-48) + (g-48) * 10 + (f-48) * 100;

Jag = karta (i, 210, 20, 100, 130);

jag = begränsa (i, 20, 130);

n = (m-48) + (l-48) * 10 + (k-48) * 100;

n = karta (n, 210, 20, 100, 130);

n = begränsa (n, 20, 130);

s = (r-48) + (q-48) * 10 + (p-48) * 100;

s = karta (s, 210, 20, 100, 130);

s = begränsa (s, 20, 130);

extra för sex sensorer

int o = (w-48) + (v-48) * 10 + (u-48) * 100;

o = karta (o, 210, 20, 100, 130);

o = begränsa (o, 20, 130);

int t = (z-48) + (y-48) * 10 + (x-48) * 100;

t = karta (t, 210, 20, 100, 130);

t = begränsa (t, 20, 130);

Servo 1

om (d < 130 & & d > 20)

{

om (dlast-d < = 20)

{

myservo0.write(d);

int e = 150 - d;

myservo1.write(e);

Serial.Print(d);

Serial.Print ("\t");

}

}

Servo 2

om (jag < 130 & & jag > 20)

{

om (ilast-i < = 20)

{

myservo2.write(i);

int j = 150 - i.

myservo3.write(j);

Serial.Print(i);

Serial.Print ("\t");

}

}

Servo 3

om (n < 130 & & n > 20)

{

om (nlast-n < = 20)

{

myservo4.write(n);

Serial.Print(n);

Serial.Print ("\t");

}

}

Servo 4

om (s < 130 & & s > 20)

{

om (slast-s < = 20)

{

myservo5.write(s);

Serial.Print(s);

Serial.Print ("\t");

}

}

Servo 5

om (o < 130 & & o > 20)

{

om (olast-o < = 20)

{

myservo5.write(o);

Serial.Print(o);

Serial.Print ("\t");

}

}

Servo 6

om (t < 130 & & t > 20)

{

om (tlast-t < = 20)

{

myservo5.write(t);

Serial.Print(t);

}

}

Serial.println();

Serial.flush();

int d = (int) a;

int e = (int) b;

int f = c (int);

DLast = d;

ilast = i.

nlast = n;

slast = s;

olast = o;

tlast = t;

Delay(40);

}

annat

{

digitalWrite (ledPin, låg); Inaktivera LED

int left0 = 90.

myservo0.write(left0);

Serial.println(left0);

int left1 = 90.

myservo1.write(left1);

Serial.println(left1);

int left2 = 90.

myservo2.write(left2);

Serial.println(left2);

int left3 = 90.

myservo3.write(left3);

Serial.println(left3);

int left4 = 90.

myservo4.write(left4);

Serial.println(left4);

int left5 = 90.

myservo5.write(left5);

Serial.println(left5);

}

}

Drone rörlighet kontrollkod sändare:

#include

CONST byte rader = 4; fyra rader

CONST byte COLS = 4; fyra kolumner

char nycklar [rader] [COLS] = {

{"EN","B',"C"HADE"},

{"E", "F", "G", "H"},

{"I", "J", "K", "L"},

{ÄR "," N ","O","P"}

};

byte rowPins [rader] = {3, 2, 1, 0}; ansluta till rad Stifttilldelningar för knappsatsen

byte colPins [COLS] = {7, 6, 5, 4}; ansluta till kolumn Stifttilldelningar för knappsatsen

Tangentbordet knappsatsen = knappsatsen (makeKeymap(keys), rowPins, colPins, rader, kolumner);

int led0 = 8;

int led1 = 9.

int led2 = 10;

int led3 = 11;

void setup() {

Serial.BEGIN(9600);

pinMode (led0, produktionen);

pinMode (led1, produktionen);

pinMode (led2, produktionen);

pinMode (led3, produktionen);

}

void loop() {

char nyckel = keypad.getKey();

om (nyckel! = NO_KEY) {

Serial.println(Key);

Växla (nyckel) {

"A" i mål: / /

digitalWrite (led0, hög);

digitalWrite (led1, låg);

digitalWrite (led2, låg);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

"C" i mål: / /

digitalWrite (led0, låg);

digitalWrite (led1, hög);

digitalWrite (led2, låg);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

fall skulle ": / /

digitalWrite (led3, låg);

digitalWrite (led2, låg);

digitalWrite (led1, hög);

digitalWrite (led0, hög);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

ärende 'F': / /

digitalWrite (led0, låg);

digitalWrite (led1, låg);

digitalWrite (led2, hög);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

"H" i mål: / /

digitalWrite (led0, hög);

digitalWrite (led1, låg);

digitalWrite (led2, hög);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

fallet är ": / /

digitalWrite (led0, låg);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

fallet "o-: / /

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, låg);

Serial.println(Key);

Delay(2000);

digitalWrite (led0, hög);

digitalWrite (led1, hög);

digitalWrite (led2, hög);

digitalWrite (led3, hög);

bryta;

}

}

}

Drone rörlighet kontroll mottagare kod:

int b0;

int b1;

int b2;

int b3;

numrera av tryckknapp PIN-koden

CONST int mo0 = 6;

CONST int mo1 = 7.

CONST int mo2 = 8.

CONST int mo3 = 9.

CONST int mo4 = 10;

CONST int mo5 = 11;

CONST int vänster = 12.

CONST int höger = 13.

antal LED stift

variabler som ändras:

variabel för att läsa tryckknapp status

CONST int ledPin = A0;

void setup() {

initiera LED stift som en utgång:

pinMode (b0, ingång);

pinMode (b1, ingång);

pinMode (b2, ingång);

pinMode (b3, ingång);

pinMode (mo0, produktionen);

pinMode (mo1, produktionen);

pinMode (mo2, produktionen);

pinMode (mo3, produktionen);

pinMode (mo4, produktionen);

pinMode (mo5, produktionen);

pinMode (vänster, utdata).

pinMode (höger, OUTPUT);

pinMode (ledPin, produktionen);

Serial.BEGIN(9600);

initiera tryckknapp PIN-koden som indata:

}

void loop() {

Läs statligt av tryckknapp värdet:

B0 = digitalRead(2);

B1 = digitalRead(3);

B2 = digitalRead(4);

B3 = digitalRead(5);

Kontrollera om tryckknappen trycks.

om det är, är buttonState hög:

om (b0 == hög & & b1 == låg & & b2 == låg & & b3 == låg) {/ / INF

Aktivera LED:

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo4, hög);

digitalWrite (mo5, låg);

Serial.println ("motor doun");

Delay(16000);

digitalWrite (mo4, låg);

digitalWrite (mo5, låg);

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

Serial.println("Done");

}

annars om (b0 == låg & & b1 == hög & & b2 == låg & & b3 == låg) {/ / fwd

Aktivera LED:

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo0, hög);

digitalWrite (mo1, låg);

digitalWrite (mo3, hög);

digitalWrite (mo2, låg);

Serial.println("FWD");

}

annars om (b0 == hög & & b1 == hög & & b2 == låg & & b3 == låg) {/ /

Aktivera LED:

analogWrite (ledPin, hög);

Serial.println("Light");

}

annars om (b0 == låg & & b1 == låg & & b2 == hög & & b3 == låg) {/ / höger

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo0, hög);

digitalWrite (mo1, låg);

digitalWrite (mo2, hög);

digitalWrite (mo3, låg);

Serial.println("Right");

}

annars om (b0 == hög & & b1 == låg & & b2 == hög & & b3 == låg) {/ / vänster

Aktivera LED:

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo1, hög);

digitalWrite (mo0, låg);

digitalWrite (mo3, hög);

digitalWrite (mo2, låg);

Serial.println("left");

}

annars om (b0 == låg & & b1 == hög & & b2 == hög & & b3 == låg) {/ / HUM

Aktivera LED:

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo4, låg);

digitalWrite (mo5, hög);

Serial.println ("motor upp");

Delay(16000);

digitalWrite (mo4, låg);

digitalWrite (mo5, låg);

digitalWrite (vänster, hög).

digitalWrite (höger, hög);

Serial.println("Done"); }

annars om (b0 == hög & & b1 == hög & & b2 == hög & & b3 == låg) {/ / rygg

Aktivera LED:

digitalWrite (vänster, låg).

digitalWrite (höger, låg);

digitalWrite (mo1, hög);

digitalWrite (mo0, låg);

digitalWrite (mo2, hög);

digitalWrite (mo3, låg);

Serial.println("back");

}

annat {

Inaktivera LED:

digitalWrite (vänster, hög).

digitalWrite (höger, hög);

digitalWrite (mo0, låg);

digitalWrite (mo1, låg);

digitalWrite (mo3, låg);

digitalWrite (mo2, låg);

digitalWrite (mo4, låg);

digitalWrite (mo5, låg);

analogWrite (ledPin, låg);

Serial.println("stop");

}

}

Se Steg
Relaterade Ämnen

Grundläggande arbetsflöde för 3D-design i Sketchup och 3D-utskrifter @ home:

jag har haft några folk frågar mig om min process för 3D utskrift och tänkte jag skulle dela en hög gå igenom med hjälp av Sketchup till design och en MakerBot Thing-O-Matic fysiskt skriva ut mina mönster hemma i min lilla lilla kontor, i min lilla l...

T-shirt designer med stenciler och blekmedel (uppdaterad med robot bild för nedladdning)

göra din egen awesome t-shirt design med stenciler och en enkel lösning med blekmedel och vatten.Detta projekt kräver minimal verktyg, och kommer tillsammans ganska lätt.** uppdatering **Stencilen robot visas är nu tillgänglig för nedladdningNog prat...

Designa ditt eget tyg med ikoner för att företräda dina intressen (& gör det till en delad!)

Min partner och jag omvandlar våra civila partnerskap (CP) till äktenskap. När vi hade våra CP 7 år sedan var det en fantastisk dag som vi anser vara vårt bröllop även om lagar i vårt land diktera att för att betraktas som lika nu vi har lagligt konv...

3D-Grafisk Design med Blender och Gimp

Hej alla!I detta Instructable går jag till och hur du använder den fria programvaran mixer för 3d grafisk design. Även om det förefaller formidabla, är grunderna i blender lätt att bemästra. 3D-konst har blivit lite av en mörk konst, men det finns ve...

Web Designing grunderna (HTML och CSS)

jag lära mig HTML och CSS och jag snart kommer för att få certifierad i det också, och jag tänkte att det vore en bra idé att ge ut en handledning om hur man börja designa din egen hemsida med hjälp av HTML och en liten bit av CSS...HTML är en förkor...

Lär dig Verilog: En kort Tutorial serie på Digital elektronik Design med FPGAs och Verilog HDL

Denna korta serie av semi korta lektioner om Verilog är tänkt som en introduktion till språket och förhoppningsvis uppmuntra läsarna att titta närmare på FPGA design.Dessa tutorials antar du är bekant med grundläggande logiska kretsar och logik ekvat...

DIY T-shirt design: Diamond sidor och ärmar - NO SEW

ta en tråkig T-shirt och jazz det upp med en sexig boatneck/av axel krage och diamond cut ut sidorna och ärmar.Jag gjorde detta på TechShop San Jose. De har en justerbar skyltdocka klä form som gör det lätt att arbeta på tröjan och se hur det ser ut...

Rakshak en: en rover för datainsamling och övervakning med drag av dataloggning, röst varningar och distansera mätningen.

I NLEDNINGHär robotsystem kan styras med en GUI byggt med bearbetning. Rover kan styras genom att skicka kommandon genom GUI körs på den bärbara datorn. Den använder xbee serie 2 moduler för trådlös kommunikation. Den har förmågan att korsa ojämn ter...

Arduino robotarm och övervakning med bearbetning

robotarmen tar tag ett objekt när det upptäcker den med rörelsedetektor och sedan det flyttar den på en viss plats.förteckning över delar:1.3 servon2. passiv infraröd rörelsedetektor: http://www.sparkfun.com/products/86303. arduino uno R3 styrelse4....

Drone Design 101 - del 1 CAD

Bygg! Flyga! Tävla!Aerial Sports League Grundare / Chief Designer och Autodesk Expert Elite, Eli DElia, vägleder dig steg för steg igenom de grundläggande principer och tekniker för första Person Video (FPV) drone racer design.Se till att titta på de...

Drone bygga, strandsatta, räddade och kraschade.

Om denna särskilda drone kom till ett tragiskt slut, som ni ser i videon, var idéer testas här en framgång. Detta projekt utforskar användningen av blått skum i ett försök att sänka vikten och kostnaden för en hemma byggd drone ram. Låg vikt i flygan...

Hur design och 3D Skriv ut din egen quadcopter!

Drönare (quadcopters) är stora kul, särskilt FPV och kära! Jag har många av dem och alltid ha kul flyger.Men de kan lätt kosta en massa $$ och går lätt sönder, plus de alla ser likadana ut. Jag ville ha en quadcopter som inte ser ut som andra, något...

Designa och bygga vackra RC flygplan

Hej alla detta är min första Instructable men jag är glad och ivrig att dela med alla bra människor här hur att designa och bygga en fjärrkontroll flygplan. Aviation har varit en passion för mig hela mitt liv, och har lett mig att bedriva min flyg-oc...

Designa för Ponoko laserskärning med SketchUp och Inkscape (en studie i kuber)

detta Instructable kommer att diskutera praktiska frågor av de mönster som presenteras i SketchUp, Inkscape och Ponoko laserskärning. Du kommer att visas framgångar och misslyckanden (det är ingen mening i att göra mitt misstag - jag kan göra tillräc...

Designa och göra en zebra mask med enkla material

I väntan på fjäderben!, en parad som vi kommer att ha i Madison, WI fira kommande tillsammans av gemenskapen och spridning av kunskap, vi ville designa några masker som alla enkelt kan skriva ut och göra. Maskerna var inspirerade av zebror, men vi vi...

Design och skapa en klänning

Designa och skapa en klänning är förvånansvärt enkelt och kan göras av vem som helst. Så länge du har en idé, lite papper, vissa tyg, något att markera det med något att klippa den med och något som man syr det tillsammans, kan du också!Klänningen me...

Utforma och skapa en tabell i en dag: Design

detta är del ett av en två del Instructable beskriver hur att designa och bygga en tabell med hjälp av 123D Design och 123D Make. I denna del kommer jag visa hur man snabbt använda 123D Design (en gratis och jag tror, lätt intro CAD verktyg) för att...

MVIFI xlr8: beslutsfattare - Dine och Design kvällar

Om du försöker hitta sätt att hjälpa människor att lära sig mer om maker-centrerad inlärning, kan inte du bara prata med dem om den... du måste ha dem upplever det! De måste vara att göra något för att verkligen förstå vad det är att de gör. (Förestä...

Förberedande Design och tillverkning för anpassade enheter

Detta Instructable dokumenterar den förberedande processen som jag utförde att designa och tillverka en enhet för snabbt prototyping interaktiva system som innehåller off-the-shelf elektroniska indata och utdata komponenter. Jag kallar den här enhete...