Conception d’humanoïde et Drone hybride pour la neutralisation des menaces et la Surveillance (6 / 7 étapes)

Étape 6: Code pour robot

Les gars ici, nous avons utilisé plusieurs Arduino UNO chacune pour les différentes parties pour le travail du robot alors soyez alerte tout en brûlant le code dedans.

Droite et gauche émetteur code de contrôle :

int sen0 = A0 ;

sen1 int = A1 ;

sen2 int = A2 ;

sen3 int = 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 val1 = map(analogRead(sen1), 260, 450, 100, 210) ;

Serial.Print(val1) ;

int val2 = map(analogRead(sen2), 260, 450, 100, 210) ;

Serial.Print(val2) ;

val3 int = 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) ;

}

Contrôle de doigt grâce à flex code capteur de l’émetteur :

int sen0 = A0 ;

sen1 int = A1 ;

sen2 int = A2 ;

sen3 int = 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 val1 = map(analogRead(sen1), 580, 650, 0, 9) ;

Serial.Print(val1) ;

int val2 = map(analogRead(sen2), 580, 650, 0, 9) ;

Serial.Print(val2) ;

val3 int = 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) ;

}

Contrôle de doigt grâce à flex code récepteur capteur :

#include

int servo0Pin = 2 ;

int servo1Pin = 3 ;

int servo2Pin = 4 ;

int servo3Pin = 5 ;

int servo4Pin = 6 ;

int servo5Pin = 7 ;

val0 int ;

int val1 ;

val2 int ;

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) ;

octet un = Serial.read() ;

b octets = Serial.read() ; Sholder gauche

c octets = Serial.read() ;

octet d = Serial.read() ;

e octets = Serial.read() ; lbow gauche

octet f = Serial.read() ;

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

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

int i = 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) ;

}

Droite et gauche récepteur code de contrôle :

#include

int ledPin = 13 ; choisir l’axe de la 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 ;

val0 int ;

int val1 ;

val2 int ;

int val3 ;

int val4 ;

int val5 ;

int pour le calcul des angles

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

void setup()

{

setpin mode de comprendre le mode de fonctionnement

pinMode (ledPin, sortie) ; déclarer les LED en sortie

pinMode (inPin, entrée) ; déclarer les touche comme entrée

Serial.Begin(9600) ;

fixation des servos

myservo0.Attach(servo0Pin) ;

myservo1.Attach(servo1Pin) ;

myservo2.Attach(servo2Pin) ;

myservo3.Attach(servo3Pin) ;

myservo4.Attach(servo4Pin) ;

myservo5.Attach(servo5Pin) ;

myservo6.Attach(servo6Pin) ;

myservo7.Attach(servo7Pin) ;

}

pour réduire l’effet de pointe

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

void loop()

{

valinPin = digitalRead(inPin) ; lire la valeur d’entrée

Si (valinPin == HIGH) {/ / vérifier si l’entrée est haute (relâchez le bouton)

digitalWrite (ledPin, HIGH) ; allumer la LED

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

données int = Serial.read() - « 0 » ;

octet un = Serial.read() ;

b octets = Serial.read() ; Sholder gauche

c octets = Serial.read() ;

octet f = Serial.read() ;

g octet = Serial.read() ; lbow gauche

h octets = Serial.read() ;

k octets = Serial.read() ;

l octets = Serial.read() ; W à gauche rond

m octets = Serial.read() ;

octet p = Serial.read() ;

octet q = Serial.read() ; W a laissé vers le bas jusqu'à

octet r = Serial.read() ;

extra pour six capteurs

u octet = Serial.read() ;

octet v = Serial.read() ; Tête ronde

octet w = Serial.read() ;

octet x = Serial.read() ;

octet y = Serial.read() ; Tête vers le haut vers le bas

octet z = Serial.read() ;

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

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

d = contraindre (d, 20, 130) ;

J’ai = (h-48) + (g-48) * 10 + (f-48) * 100 ;

J’ai = carte (i, 210, 20, 100, 130) ;

J’ai = contraindre (i, 20, 130) ;

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

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

n = contraindre (n, 20, 130) ;

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

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

s = contrainte (s, 20, 130) ;

extra pour six capteurs

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

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

o = contraindre (o, 20, 130) ;

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

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

t = contraindre (t, 20, 130) ;

Servo 1

Si (d < 130 & & d > 20)

{

Si (dlast-d < = 20)

{

myservo0.Write(d) ;

int e = 150 - d ;

myservo1.Write(e) ;

Serial.Print(d) ;

Serial.Print ("\t") ;

}

}

Servo 2

Si (j’ai < 130 & & j’ai > 20)

{

Si (ilast-i < = 20)

{

myservo2.Write(i) ;

int j = 150 - i ;

myservo3.Write(j) ;

Serial.Print(i) ;

Serial.Print ("\t") ;

}

}

Servo 3

Si (n < 130 & & n > 20)

{

Si (nlast-n < = 20)

{

myservo4.Write(n) ;

Serial.Print(n) ;

Serial.Print ("\t") ;

}

}

Servo 4

Si (s < 130 & & s > 20)

{

Si (slast-s < = 20)

{

myservo5.Write(s) ;

Serial.Print(s) ;

Serial.Print ("\t") ;

}

}

Servo 5

Si (o < 130 & & o > 20)

{

Si (olast-o < = 20)

{

myservo5.Write(o) ;

Serial.Print(o) ;

Serial.Print ("\t") ;

}

}

Servo 6

Si (t < 130 & & t > 20)

{

Si (DAU-t < = 20)

{

myservo5.Write(t) ;

Serial.Print(t) ;

}

}

Serial.println() ;

Serial.Flush() ;

int d = (int) ;

int e = (int) b ;

int f = (int) c ;

DLast = d ;

ilast = i ;

nlast = n ;

slast = s ;

olast = o ;

DAU = t ;

Delay(40) ;

}

d’autre

{

digitalWrite (ledPin, basse) ; éteindre la 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) ;

}

}

Code de l’émetteur de contrôle de drone mobilité :

#include

const byte rangs = 4 ; quatre rangées

const byte COLS = 4 ; quatre colonnes

touches de char [lignes] [colonnes] = {}

{"UN","B', « C », AVAIT"},

{« E », « F », « G », « H »},

{« I », « J », « K », « L »},

{ME », « N », « O', 'P'}

};

rowPins Byte [rangs] = {2, 3, 0, 1} ; se connecter à la ligne de brochage du clavier

colPins Byte [CDL] = {6, 7, 4, 5} ; se connecter à la liste des broches colonne du clavier

Clavier clavier = clavier (makeKeymap(keys), rowPins, colPins, lignes, colonnes) ;

led0 int = 8 ;

led1 int = 9 ;

led2 int = 10 ;

led3 int = 11 ;

void setup() {}

Serial.Begin(9600) ;

pinMode (led0, sortie) ;

pinMode (led1, sortie) ;

pinMode (led2, sortie) ;

pinMode (DEL3, sortie) ;

}

void loop() {}

clé char = keypad.getKey() ;

Si (touche! = NO_KEY) {}

Serial.println(Key) ;

commutateur (clé) {}

affaire « A »: / /

digitalWrite (led0, HIGH) ;

digitalWrite (led1, faible) ;

digitalWrite (led2, faible) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

case « C »: / /

digitalWrite (led0, faible) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, faible) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

affaire aurait ": / /

digitalWrite (DEL3, faible) ;

digitalWrite (led2, faible) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led0, HIGH) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

case « F »: / /

digitalWrite (led0, faible) ;

digitalWrite (led1, faible) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

case « H »: / /

digitalWrite (led0, HIGH) ;

digitalWrite (led1, faible) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

cas suis ': / /

digitalWrite (led0, faible) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

cas ' o ': / /

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, faible) ;

Serial.println(Key) ;

Delay(2000) ;

digitalWrite (led0, HIGH) ;

digitalWrite (led1, HIGH) ;

digitalWrite (led2, HIGH) ;

digitalWrite (DEL3, HIGH) ;

rupture ;

}

}

}

Code de récepteur de contrôle de mobilité de drone :

int b0 ;

int b1 ;

int b2 ;

int b3 ;

le nombre de la tige poussoir

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 gauche = 12 ;

const int droite = 13 ;

le nombre de l’axe de la LED

variables vont changer :

variable pour la lecture de l’état de bouton poussoir

const int ledPin = A0 ;

void setup() {}

initialiser les broches de la LED en tant que sortie :

pinMode (b0, entrée) ;

pinMode (b1, entrée) ;

pinMode (b2, entrée) ;

pinMode (b3, entrée) ;

pinMode (mo0, sortie) ;

pinMode (mo1, sortie) ;

pinMode (mo2, sortie) ;

pinMode (mo3, sortie) ;

pinMode (mo4, sortie) ;

pinMode (mo5, sortie) ;

pinMode (à gauche, sortie) ;

pinMode (à droite, sortie) ;

pinMode (ledPin, sortie) ;

Serial.Begin(9600) ;

initialiser la tige poussoir comme entrée :

}

void loop() {}

lire l’état de la valeur du bouton poussoir :

B0 = digitalRead(2) ;

B1 = digitalRead(3) ;

B2 = digitalRead(4) ;

B3 = digitalRead(5) ;

Vérifiez si le bouton est appuyé.

Si c’est le cas, le buttonState est haute :

Si (b0 == HIGH & & b1 == LOW & & b2 == LOW & & b3 == faible) {/ / INF

allumer la LED :

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo4, HIGH) ;

digitalWrite (mo5, faible) ;

Serial.println ("moteur doun ») ;

Delay(16000) ;

digitalWrite (mo4, faible) ;

digitalWrite (mo5, faible) ;

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

Serial.println("Done") ;

}

ElseIf (b0 == LOW & & b1 == HIGH & & b2 == LOW & & b3 == faible) {/ / fwd

allumer la LED :

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo0, HIGH) ;

digitalWrite (mo1, faible) ;

digitalWrite (mo3, HIGH) ;

digitalWrite (mo2, faible) ;

Serial.println("FWD") ;

}

ElseIf (b0 == HIGH & & b1 == HIGH & & b2 == LOW & & b3 == faible) {/ /

allumer la LED :

analogWrite (ledPin, HIGH) ;

Serial.println("Light") ;

}

ElseIf (b0 == LOW & & b1 == LOW & & b2 == HIGH & & b3 == faible) {/ / droite

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo0, HIGH) ;

digitalWrite (mo1, faible) ;

digitalWrite (mo2, HIGH) ;

digitalWrite (mo3, faible) ;

Serial.println("Right") ;

}

ElseIf (b0 == HIGH & & b1 == LOW & & b2 == HIGH & & b3 == faible) {/ / gauche

allumer la LED :

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo1, HIGH) ;

digitalWrite (mo0, faible) ;

digitalWrite (mo3, HIGH) ;

digitalWrite (mo2, faible) ;

Serial.println("left") ;

}

ElseIf (b0 == LOW & & b1 == HIGH & & b2 == HIGH & & b3 == faible) {/ / HUM

allumer la LED :

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo4, faible) ;

digitalWrite (mo5, HIGH) ;

Serial.println ("moteur vers le haut") ;

Delay(16000) ;

digitalWrite (mo4, faible) ;

digitalWrite (mo5, faible) ;

digitalWrite (gauche, haut) ;

digitalWrite (à droite, haut) ;

Serial.println("Done") ; }

ElseIf (b0 == HIGH & & b1 == HIGH & & b2 == HIGH & & b3 == faible) {/ / retour

allumer la LED :

digitalWrite (gauche, en bas) ;

digitalWrite (à droite, bas) ;

digitalWrite (mo1, HIGH) ;

digitalWrite (mo0, faible) ;

digitalWrite (mo2, HIGH) ;

digitalWrite (mo3, faible) ;

Serial.println("Back") ;

}

else {}

désactiver la LED :

digitalWrite (gauche, haut) ;

digitalWrite (à droite, haut) ;

digitalWrite (mo0, faible) ;

digitalWrite (mo1, faible) ;

digitalWrite (mo3, faible) ;

digitalWrite (mo2, faible) ;

digitalWrite (mo4, faible) ;

digitalWrite (mo5, faible) ;

analogWrite (ledPin, basse) ;

Serial.println("Stop") ;

}

}

Articles Liés

Le Guide ultime pour créer des Chiptunes sur la GameBoy !

Le Guide ultime pour créer des Chiptunes sur la GameBoy !

Nouveaux sur la scène de « Chiptune » Gameboy ?  Ou peut-être votre tente toujours d'aller au fond de ce que toute cette affaire de Chiptune ?  Quelle que soit votre situation, à la fin de ce Instructable, je peux vous promettre, vous serez un pro !R
Un cadre pour créer des contrôleurs modulaires abordables & élégants (USB vers MIDI, caché, ou série)

Un cadre pour créer des contrôleurs modulaires abordables & élégants (USB vers MIDI, caché, ou série)

***J'AI CRÉÉ UN NOUVEAU POUR INSTRUCTABLE CONTRÔLEURS DE BRICOLAGE :**************************************************************************************************************************************************************************************
Comment faire pour créer des masques Maya

Comment faire pour créer des masques Maya

avant de commencer vous devez maintenant un peu sur les masques Mayas.Le masque a tous les profondes significations liées à la dichotomie homme / cosmos dans lequel le premier est une figure active de la création de la seconde, est alors une extensio
Gray-B-Gon éolienne Évapotron pour l’élimination des eaux grises

Gray-B-Gon éolienne Évapotron pour l’élimination des eaux grises

Voici un appareil d'évaporation des eaux grises éolienne pour votre camp de Burning Man. Il éliminera, légalement et de manière responsable, toutes les eaux usées produites dans un camp de taille moyenne, ou plusieurs petits camps. (À l'exception de
Comment faire pour créer des Custom CSS3 Dropdown Menus : menu déroulant CSS tutoriel pour les débutants

Comment faire pour créer des Custom CSS3 Dropdown Menus : menu déroulant CSS tutoriel pour les débutants

êtes-vous fatigué de votre dépendance sur JavaScript ? Ou si vous êtes un nouveau développeur web qui ne veut pas s'attaquer à un troisième langage HTML et CSS ? Alors inutile de s'inquiéter plus parce que depuis le lancement de CSS3 vous pouvez main
À l’aide d’un formulaire pour créer des formes creuses & intéressant en argile polymère

À l’aide d’un formulaire pour créer des formes creuses & intéressant en argile polymère

dans ce instructable je vais vous montrer comment intégrer formant sur papier pour créer des éléments de forme uniques d'argile polymère. Je suis venu avec cela lorsque j'ai voulu faire une méduse, et il est sorti très bien, puis j'ai réalisé cela su
Comment faire pour créer des Sculptures articulés imprimables 3d

Comment faire pour créer des Sculptures articulés imprimables 3d

La disponibilité des imprimantes 3D et services d'impression rend plus facile pour les amateurs qui aspirent à s'impliquer dans la création de sculptures, jouets et gadgets. Ayant accès à ces outils, les créateurs et les inventeurs peuvent rapidement
Proclipsing: À l’aide de l’IDE Eclipse pour le traitement des projets

Proclipsing: À l’aide de l’IDE Eclipse pour le traitement des projets

traitement est un outil fantastique pour obtenir les non-programmeurs à l'aise avec la programmation. Avec elle, vous pouvez facilement créer des applications de dessin interactives et beaucoup, beaucoup plus. Sa force est qu'il peut être utilisé mul
Comment faire pour créer des disques de phenakistoscope

Comment faire pour créer des disques de phenakistoscope

Bonjour à tousNous avons parlé dans un précédent Instructable, la phenakistoscope et comment construire et utiliser ces disques animation incroyables.J'ai donné quelques modèles de disque et des conseils sur la façon de les trouver, mais dans ce Inst
Laser gravé papier pour le pliage des formes complexes

Laser gravé papier pour le pliage des formes complexes

Pliant est un outil puissant pour l'esthétique et de génie. Plusieurs formes sont possibles en utilisant des techniques de pliage, mais il devient de plus en plus difficile d'atteindre ces formes comme les chemins de pli développent de plus en plus d
Résine de coulée pour créer des matériaux uniques

Résine de coulée pour créer des matériaux uniques

Résine est un matériau de plasticité (la qualité d'être facilement façonné ou moulé) et peut être manipulé pour créer des formes et des effets visuels différents. Dans ce instructable je vous présenterai à certaines techniques de coulée, que vous pou
Conseils pour créer des couches avec de l’acrylique

Conseils pour créer des couches avec de l’acrylique

Création vivante et évocatrices peintures avec une touche de réalité est un grand défi pour la plupart des artistes. Voici quelques-uns des conseils que vous devez suivre pour créer ces types d'images suivants:-Rendre plus foncée en créant contraste
Comment faire pour prévenir des blessures tout en participant aux Sports

Comment faire pour prévenir des blessures tout en participant aux Sports

Sports et activités physiques sont censées être amusant, mais si vous n'êtes pas attentif vous risque de blessures graves. Si vous suivez seulement quelques principes simples tout en étant actif, vous pouvez éviter de nombreux types de blessures.Rema
Faire béton Rocks pour parois rocheuses, des foyers, manières à pied, fontaines d’eau et plus !

Faire béton Rocks pour parois rocheuses, des foyers, manières à pied, fontaines d’eau et plus !

Apprenez à créer votre propre rochers béton pour la construction de parois rocheuses, feu fosses, pièce décorative et plus encore !Étape 1: Préparation de mouleLa boîte de moule a été construite à l'aide de carton et plastique de contreplaqué. Les ro