ROBOT EN CARTON---DANSER, DANSER, DANSER ! (48 / 54 étapes)

Etape 48 : MoveHead() ajouté au reste du code d’essai de série

Je suppose que nous avons assez se déplace pour commencer à travailler sur autre chose.

commandes série ajoutés :
« h » - pour déplacer la tête - traverse de balayage complet
de '-frayez un chemin (fonction existait déjà, mais n’a pas eu un cas)
a '-tourner l’autre sens (fonction existait déjà, mais n’a pas eu un cas)

Ce code devrait être rendu plus court, mais c’est ici :

vidéo
[allMoves

////////////////////////////////  ARDUINO CODE//////////////////////////////////

Robot de test avec des routines peu transformés en fonctions / / /
ajouté tête mobile / / /

moteur VARIABLES / / /
Direction basses = vers le corps ou Foward
Direction = haut du corps ou vers l’arrière
int RightArmDir = 2 ;
int RightArmSpeed = 3 ;
int LeftArmDir = 4 ;
int LeftArmSpeed = 5 ;
int WaistDir = 7 ;
int WaistSpeed = 6 ;
int RightWheelDir = 8 ;
int RightWheelSpeed = 9 ;
int LeftWheelDir = 12 ;
int LeftWheelSpeed = 10 ;

int Slow = 100 ;
int Fast = 200 ;
int t1 = 200 ;     temps au ralenti
int t2 = 1000 ;    temps à vive allure
int tBreak = 100 ; temps d’arrêter le moteur en inversant dir
int WheelSpeed = 75 ;
int breakSpeed = 10 ;
int bendSpeed = 255 ;
int incomingByte ;

variables de tête
#include < Servo.h >
Servo myservo ;  Créez l’objet servo pour contrôler un servo
int pos = 80 ;
int posFront = 80 ;
///////// SETUP  /////////

void setup() {}
pinMode (RightArmDir, sortie) ;
pinMode (RightArmSpeed, sortie) ;
pinMode (LeftArmDir, sortie) ;
pinMode (LeftArmSpeed, sortie) ;
pinMode (WaistDir, sortie) ;
pinMode (WaistSpeed, sortie) ;
pinMode (RightWheelDir, sortie) ;
pinMode (RightWheelSpeed, sortie) ;
pinMode (LeftWheelDir, sortie) ;
pinMode (LeftWheelSpeed, sortie) ;

myservo.Attach(11) ;  attache le servo sur la broche 11 à l’objet de servo

Serial.Begin(9600) ;
}

GRANDE BOUCLE / / /
void loop() {}
Serial.println("...") ;
Delay(400) ;
if(Serial.available() > 0) {}
incomingByte = Serial.read() ;
{Switch(incomingByte)}
case « f » :
Foward() ;
rupture ;
case « b » :
Backward() ;
rupture ;
case « r » :
RightArmUp() ;
rupture ;
affaire ' t » :
RightArmDown() ;
rupture ;
case « w » :
LeftArmUp() ;
rupture ;
Case « e » :
LeftArmDown() ;
rupture ;
case « z » :
WaistBendDown() ;
rupture ;
case « x » :
WaistBendUp() ;
rupture ;
case « h » :
MoveHead() ;
rupture ;
de l’affaire ":
Spin() ;
rupture ;
affaire aurait ":
Spin2() ;
rupture ;
}
}
}

///////////////////////////////////////////////
FONCTIONS DE BASE / / /
///////////////////////////////////////////////

void RightArmUp() {}
Bras droit de test
Serial.println (« bras droit ») ;
Bras droit vers le haut
Serial.println("up") ;
digitalWrite (RightArmDir, élevé) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite(RightArmSpeed,Fast) ;
retard (1.8 * t2) ;
analogWrite(RightArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(T1) ;
}

void RightArmDown() {}
Bras droit vers le bas
Serial.println (« bras droit vers le bas") ;
digitalWrite (RightArmDir, basse) ;
analogWrite (RightArmSpeed, lent) ;
retard (t1) ;
analogWrite (RightArmSpeed, Fast) ;
retard (1.8 * t2) ;
analogWrite (RightArmSpeed, lent) ;
Delay(T1) ;
analogWrite (RightArmSpeed, 0) ;
Delay(2*T1) ;
}

void LeftArmUp() {}
Test de bras gauche
Serial.println ("bras gauche vers le haut") ;
Bras gauche vers le haut
digitalWrite (LeftArmDir, élevé) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (2 * t2) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(T1) ;
}

void LeftArmDown() {}
Bras gauche vers le bas
Serial.println ("bras gauche vers le bas") ;
digitalWrite (LeftArmDir, basse) ;
analogWrite (LeftArmSpeed, lent) ;
retard (t1) ;
analogWrite (LeftArmSpeed, Fast) ;
retard (2 * t2) ;
analogWrite(LeftArmSpeed,Slow) ;
Delay(T1) ;
analogWrite (LeftArmSpeed, 0) ;
Delay(2*T1) ;
}

void WaistBendDown() {}
Test de taille
Serial.println ("Bend taille vers le bas") ;
digitalWrite (WaistDir, élevé) ;
analogWrite (WaistSpeed, lent) ;
retard (t1) ;
analogWrite (WaistSpeed, bendSpeed) ;
retard (2 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(T1) ;
}

void WaistBendUp() {}
Plier vers le haut
Serial.println("up") ;
digitalWrite (WaistDir, basse) ;
analogWrite (WaistSpeed, lent) ;
retard (t1) ;
analogWrite (WaistSpeed, bendSpeed) ;
retard (2 * t2) ;
analogWrite (WaistSpeed, lent) ;
Delay(T1) ;
analogWrite (WaistSpeed, 0) ;
Delay(2*T1) ;
}

void Spin() {}
Serial.println("Spin") ;
digitalWrite (LeftWheelDir, basse) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,LOW) ;
analogWrite (LeftWheelSpeed, breakSpeed) ;
analogWrite (RightWheelSpeed, breakSpeed) ;
Delay(tBreak) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite(RightWheelSpeed,0) ;
}

void Spin2() {}
Serial.println("SPIN2") ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,LOW) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
digitalWrite (LeftWheelDir, basse) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (LeftWheelSpeed, breakSpeed) ;
analogWrite(RightWheelSpeed,breakSpeed) ;
Delay(tBreak) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite(RightWheelSpeed,0) ;
}


void Foward() {}
Serial.println ("allez Foward") ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
digitalWrite (LeftWheelDir, basse) ;
digitalWrite(RightWheelDir,LOW) ;
analogWrite (LeftWheelSpeed, breakSpeed) ;
analogWrite(RightWheelSpeed,breakSpeed) ;
Delay(tBreak) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite(RightWheelSpeed,0) ;
}

void Backward() {}
Serial.println ("aller vers l’arrière") ;
digitalWrite (LeftWheelDir, basse) ;
digitalWrite(RightWheelDir,LOW) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
retard (t1) ;
analogWrite (RightWheelSpeed, WheelSpeed) ;
analogWrite (LeftWheelSpeed, WheelSpeed) ;
retard (t2) ;
analogWrite (RightWheelSpeed, WheelSpeed/2) ;
analogWrite (LeftWheelSpeed, WheelSpeed/2) ;
Delay(T1) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite (RightWheelSpeed, 0) ;
Delay(T1) ;
digitalWrite (LeftWheelDir, élevé) ;
digitalWrite(RightWheelDir,HIGH) ;
analogWrite (LeftWheelSpeed, breakSpeed) ;
analogWrite(RightWheelSpeed,breakSpeed) ;
Delay(tBreak) ;
analogWrite (LeftWheelSpeed, 0) ;
analogWrite(RightWheelSpeed,0) ;
}
aller tête / / /
void MoveHead() {//create fonction déplacer tête / / tête aller en arrière
pour (pos = 5; pos < 145; pos += 1) //goes de 5 à 145degrees
{/ / par incréments de 1 degré
myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »
Serial.println(POS) ;
Delay(15) ;                       attend 15 ms pour le servo atteindre la position
if(pos == posFront) {}
Delay(600) ;
}
}
pour (pos = 145; pos > = posFront; pos-= 1) / / va de 145 degrés vers l’avant
{
myservo.Write(POS) ;              dire de servo pour aller à positionner dans la variable « pos »
Delay(15) ;     attend 15 ms pour le servo atteindre la position
if(pos == posFront) {}
Delay(600) ;
}
}
}

Articles Liés

Bras de Robot en carton pour les Robots bon marchés

Bras de Robot en carton pour les Robots bon marchés

C'est probablement l'Instructable j'ai hâte du meilleur parti de ma série "Pour les Robots bon marché". Il est le plus cool que j'ai fait jusqu'ici et par là même les plus difficiles.Robotique ne commence vraiment à se refroidir jusqu'à ce que v
Tête de Robot en carton

Tête de Robot en carton

vous avez voulu faire un casque de robot simple pour le plaisir ? Eh bien, vous aimerez ce tutoriel sur comment faire un casque de robot en carton facile, pas cher et amusant !Étape 1: Corps de tête Vous avez besoin d'une boîte en carton environ 1 1/
Robot en carton bricolage

Robot en carton bricolage

Créez votre propre robot en carton à utiliser pour afficher, sous forme d'une décoration de flotteur, ou juste pour un amusement artisanat créatifÉtape 1: Étape 1: recueillir les documents 2 différentes taille des cases (1 pour la tête) et 1 pour le
Dossier de Robot en carton de lessive !

Dossier de Robot en carton de lessive !

Ce robot est capable de plier les chemises et pantalons en moins de 2 secondes ! Tout le corps de ce robot est issu de cardboard.making, que ce bot se composait de découpe de carton et en ajoutant des servos à pousser vers le haut de chaque morceau d
Comment faire un bon marché, mini robot en carton

Comment faire un bon marché, mini robot en carton

Eh bien, c'est mon dernier projet, une fois de plus fait purement d'ennui. Mais, sur une note différente, je vais essayer de faire quelque chose, même plus grand, plus méchant et mieux pour le concours de colle Gorilla. Déplacement !Étape 1: fournitu
Le Robot en carton sans colle, articulé.

Le Robot en carton sans colle, articulé.

OK, peut-être pas une bonne idée pour un concours organisé par un fabricant de colle , mais je me suis inspiré.L'ensemble du modèle soit retenu avec frottement, mais est (assez) articulé... .et il a griffes !Étape 1: Matériaux et outils La plupart de
Robot en carton pour petits enfants

Robot en carton pour petits enfants

j'ai fait 12 robot « kits » pour mes filles bday party.Pour en faire un, vous aurez besoin :2 boîtes (un plus petit que l'autre), des feuilles de papier d'aluminium, adhésif en aérosol, couteau xacto, ruban adhésif en toile (argent et rouge), conduit
Robot en carton

Robot en carton

Ce robot est issu de plusieurs « walker-robots » trouvés sur le web, et c'est l'une des nombreuses versions d'un robot marche 2-servo. Notre idée de ce robot était d'essayer de construire un bon marché comme kit robot possible pour les enfants dans l
Robot en carton base sur Danboard

Robot en carton base sur Danboard

N'originaire du Japon Danboard, ce projet est pour le bricolage uniquement, aucun utilisation commerciale. Si vous aimez cela, acheter un Danboard pour soutenir le développeur. Vous pouvez télécharger et imprimer avec 2 format A4. Profitez !Etape 1:
La danse de Shufflebot ?

La danse de Shufflebot ?

Avez-vous jamais voir le clip de Party Rock Anthem et me demande comment le robot, que la danse ? Eh bien, je vais vous montrer comment avec cette vidéo j'ai trouvé sur Youtube puisque mon caméscope a éclaté.C'est sans frais pour vous. tout ce dont v
Châssis en carton pour les Robots bon marchés 3: Boardbot

Châssis en carton pour les Robots bon marchés 3: Boardbot

Bonjour à tous ceux qui ont suivi me jusqu'ici et Bonjour à tous ceux qui n'a pas lu un de mes précédents Instructables trop ! Il s'agit de ma troisième et dernière Instructable dans cette série, que j'ai fait tout sur des châssis en carton pas chers
Géant Computer-Controlled Robotic Arm fait de vieux cartons

Géant Computer-Controlled Robotic Arm fait de vieux cartons

le Robot en carton est un énorme ordinateur contrôlé Robot Arm avec A atteindre juste timide de 6 pieds.  Il a deux configurations :1. la griffe – trois griffe digitée qui vous permet de ramasser les animaux empaillés et sale chaussettes du sol sans
Châssis en carton pour les Robots bon marchés 2: Bugbot

Châssis en carton pour les Robots bon marchés 2: Bugbot

Qui suit chaud sur la queue de mon précédent Instructable pour Boxbot, j'ai un autre châssis robot en carton pour vous que j'ai nommé Bugbot !Bienvenue à tous ceux qui ont lu mon précédent Instructables, et howdy à ceux d'entre vous qui sont trébucha
Châssis en carton pour les Robots bon marchés 1: Boxbot

Châssis en carton pour les Robots bon marchés 1: Boxbot

Auparavant, j'ai fait une Instructable sur roues pour robots et moteurs à bas prix, mais les roues seules ne font pas un robot. Si vous souhaitez que votre robot de croisières dans le style, it's Gonna besoin d'un corps robuste et élégant .Il est fac