Automatizado de pintura mármol!!!!!! (4 / 6 paso)

Paso 4: codificación

Nuestro código realiza las siguientes funciones:

  1. La robótica tiene una posición inicial fija. Se mueve de ahí a agarrar una botella de pintura de aceite del soporte (que está al lado de él), se abre a la pinza, capturas asimiento de la botella y se aprieta el mango de la botella.
  2. Desde aquí, se mueve a la posición de la tina del agua, justo debajo de la garra, se mueve hasta el final de la derecha de la piscina de agua, aprieta la botella una vez, se mueve hacia el centro, aprieta, se mueve a la posición más a la izquierda y cae otra gota de pintura.
  3. Luego vuelve a su posición inicial
  4. A continuación vuelve a tomar otra pintura de color
  5. Y (2) otra vez, pero esta vez gotas de sólo 2 gotas de pintura en puntos diferentes de donde había caído la pintura previamente.

/ * Referencias: Adafruit motor ejemplo de Motor de la C.C. de escudo llamado MotorTest
BitVoicer programa de ejemplo para cambiar LED. Utilizamos los objetos de este ejemplo sólo para la creación de instancias * /

#include < Wire.h >

#include < Adafruit_MotorShield.h >

#include "utility/Adafruit_PWMServoDriver.h"

#include < BitVoicer11.h >

Adafruit_MotorShield AFMS = Adafruit_MotorShield();

Adafruit_DCMotor * myMotor1 = AFMS.getMotor(1);

Adafruit_DCMotor * myMotor2 = AFMS.getMotor(2);

Adafruit_DCMotor * myMotor3 = AFMS.getMotor(3);

Adafruit_DCMotor * myMotor4 = AFMS.getMotor(4);

BitVoicerSerial bvSerial = BitVoicerSerial();

sampleTest boolean = false;

tipo de datos byte = 0;

void setup() {}

Serial.Begin(9600);

Serial.println ("Adafruit Motorshield v2 - prueba del DC Motor!");

AFMS.begin();

myMotor4 -> setSpeed(150);

myMotor4 -> run(FORWARD);

encender motor

myMotor4 -> run(RELEASE);

myMotor2 -> setSpeed(150);

myMotor2 -> run(FORWARD);

encender motor

myMotor2 -> run(RELEASE);

bvSerial.setAnalogReference(BV_EXTERNAL);

bvSerial.setAudioInput(0);

Serial.Begin(9600);

}

void loop() {}

Si (sampleTest == true)

{

bvSerial.processAudio(46);

}

Si (bvSerial.engineRunning)

{

bvSerial.processAudio(46);

}

}

void serialEvent()

{

tipo de datos = bvSerial.getData();

Si (dataType == BV_COMMAND)

sampleTest = bvSerial.cmdData;

Si (dataType == BV_STATUS & & bvSerial.engineRunning == true)

bvSerial.startStopListening();

Si (dataType == BV_STR)

FUNC1();

}

void func1 () ///3 gotas

{

Si (bvSerial.strData == "5")

{

myMotor4 -> run(FORWARD); viene a recoger a color

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(380);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (en adelante); //closing la garra

myMotor2 -> setSpeed(150);

Delay(600);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor3 -> run(BACKWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(4000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(200);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(250);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(1000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(1000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(2000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor3 -> run(FORWARD);

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(400);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor4 -> Ejecutar (al revés); //opening la garra

myMotor4 -> setSpeed(150);

Delay(4000);

myMotor4 -> setSpeed(0);

Delay(400);

func2();

}

else if (bvSerial.strData == "dos")

{

two_drops();

}

otra cosa

{

bvSerial.startStopListening();

bvSerial.sendToBV ("ERROR:" + bvSerial.strData);

bvSerial.startStopListening();

}

}

void func2 () ///2 gotas

{

myMotor4 -> run(FORWARD); viene a recoger a color

myMotor4 -> setSpeed(150);

Delay(4000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(380);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (en adelante); //closing la garra

myMotor2 -> setSpeed(150);

Delay(600);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor3 -> run(BACKWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(3500);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(1000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(2000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor3 -> run(FORWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor3 -> run(BACKWARD); se mueve a la pinza por debajo de

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor3 -> run(FORWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor3 -> run(BACKWARD); se mueve a la pinza por debajo de

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor3 -> run(FORWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor3 -> run(BACKWARD); se mueve a la pinza por debajo de

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(1000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(2500);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor3 -> run(FORWARD);

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(400);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(400);

}

void two_drops()

{

myMotor4 -> run(FORWARD); viene a recoger a color

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(380);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (en adelante); //closing la garra

myMotor2 -> setSpeed(150);

Delay(600);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor3 -> run(BACKWARD); mueve a la pinza en la parte superior

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(3500);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(1500);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (en adelante); //squeezing la garra

myMotor2 -> setSpeed(150);

Delay(300);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (al revés); //Unsqueezing

myMotor2 -> setSpeed(150);

Delay(50);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(2000);

myMotor4 -> setSpeed(0);

Delay(300);

myMotor3 -> run(FORWARD);

myMotor3 -> setSpeed(150);

Delay(600);

myMotor3 -> setSpeed(0);

Delay(300);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(400);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(400);

}

void brush()

{

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(380);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor2 -> Ejecutar (en adelante); //closing la garra

myMotor2 -> setSpeed(150);

Delay(600);

myMotor2 -> setSpeed(0);

Delay(400);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor1 -> run(BACKWARD);

myMotor1 -> setSpeed(150);

Delay(600);

myMotor1 -> setSpeed(0);

Delay(400);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(1000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(2000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor1 -> run(FORWARD);

myMotor1 -> setSpeed(150);

Delay(600);

myMotor1 -> setSpeed(0);

Delay(400);

myMotor4 -> run(BACKWARD);

myMotor4 -> setSpeed(150);

Delay(4000);

myMotor4 -> setSpeed(0);

Delay(400);

myMotor2 -> Ejecutar (al revés); //opening la garra

myMotor2 -> setSpeed(150);

Delay(380);

myMotor2 -> setSpeed(0);

Delay(200);

myMotor4 -> run(FORWARD);

myMotor4 -> setSpeed(150);

Delay(3000);

myMotor4 -> setSpeed(0);

Delay(400);

}

Artículos Relacionados

Agua pintura mármol grandes cosas!

Agua pintura mármol grandes cosas!

Estoy seguro que has visto todas esas pinturas de mármol agua fresca de clavos y pequeñas cosas, pero quería hacer este estilo de pintura en objetos más grandes. En algún lugar de internet encontré un blog que menciona utilizando pintura en aerosol e
Carabina de aire comprimido de PVC

Carabina de aire comprimido de PVC

Esta carabina de aire pequeño que hice recientemente es una arma del juguete del gran patio por el hecho de que se puede disparar a cualquier cosa que entra en el barril. El diseño que he hecho es muy versátil porque se puede hacer en cualquier tamañ
BRICOLAJE pintura

BRICOLAJE pintura

hacer tu propia pintura personalizada es fácil y produce algunos resultados interesantes. Tal vez no venden el color exacto que estás buscando, o desea para un uso a todas esas viejas casi vacía las latas de pintura ha ocultado en su garaje. Tiempo p
Cómo hacer un carrusel de herramientas de un bote de pintura

Cómo hacer un carrusel de herramientas de un bote de pintura

Este proyecto fue inspirado al ver centros de maquinado Haas cambiar las herramientas. Es esencialmente un rotativa tablero de clavija de que montar en el techo o la parte inferior de un armario (que es lo que voy a mostrar cómo hacerlo). En este ins
Reparación de vórtice de mármol / actualizar

Reparación de vórtice de mármol / actualizar

Nuestros fabricantes de Maui MakerSpace (sí en la isla de Maui, HI) tiene este vórtice de mármol (realmente una demostración de cómo una gravedad funciona bien). Mármoles se ruedan alrededor y luego caer en la gravedad bien. Esto demuestra cómo plane
Esmalte de uñas de mármol macetas

Esmalte de uñas de mármol macetas

Estas macetas de esmalte de uñas de mármol haría una adición única y colorida a su patio trasero, jardín o casa!Puesto que el esmalte de uñas se seca rápidamente, obtendrá resultados satisfyingly rápidamente uno-de-uno-bueno.También puede utilizar es
Pintar un falso acabado mármol

Pintar un falso acabado mármol

Hace muchos años, compré un kit de marbleize para pintar un cuadro, y los resultados fueron sorprendentemente buenos. Igualmente sorprendente fue simple el juego, así que reproduzco aquí los pasos.Los elementos que necesitas son:4 colores de pintura:
Placas de escritorio/de la joyería de imitación mármol

Placas de escritorio/de la joyería de imitación mármol

estas placas elegante parecer mármol real e iba perfectamente en un escritorio o tocador para organizar objetos pequeños o como decoración por sí mismo. Estos para mi mamá hice estas Navidades y son bastante rápidos y fáciles de hacer en un día.Paso
Zapatos de mármol

Zapatos de mármol

Probar esta manera impresionante ciclo ascendente y sus zapatos de color. La técnica puede utilizarse en todo tipo de materiales y formas. El único criterio es que la pintura se pegue a él. Fuimos para los zapatos porque le dieron un buen reto con su
Super Simple había automatizado armario LED luces.

Super Simple había automatizado armario LED luces.

Mi armario es como un abismo oscuro en el día o la noche. Tuve que buscar mi ropa con una antorcha. Tuve que encontrar una solución a este problema que me parece podría ante muchos otros también...Así que se ocurrió la idea de hacer un Armario automa
Cómo hacer "La raíz" (sistema de riego hidropónico automatizado)

Cómo hacer "La raíz" (sistema de riego hidropónico automatizado)

Este sistema hidropónico, compuesta principalmente de un bote de pintura de 5 galones comúnmente encontrado, está diseñado para ser un método rentable, flexible y eficiente para el cultivo de una variedad de plantas en un espacio confinado (es decir,
Rube Goldberg mármol inspirado Roll - 1er grado jugando - semana 8

Rube Goldberg mármol inspirado Roll - 1er grado jugando - semana 8

"Rube Goldberg inspirada mármol Roll" es la octava lección en una semana 10 manitas serie ofrecido a estudiantes de primer grado. Utilizando materiales cotidianos en proyectos abiertos, transformamos lo ordinario a lo extraordinario y enriqueced
Prácticos de Costa del espacio de mármol

Prácticos de Costa del espacio de mármol

Estamos haciendo posavasos impresionante espacio de grabado del laser nuestros iconos en el mármol y luego pintarlo.Paso 1: Enrollar tus posavasos en cinta adhesivaUtilizamos un rollo de cinta adhesiva extra anchas que se puede encontrar en más tiend
Pote de flor de pintura de goteo

Pote de flor de pintura de goteo

Estos potes de flor de pintura de goteo están fácil y divertido (y un poco sucio) para hacer. Dejó a la do de pintura de cosa, no pinceles necesarios!Echale mi esmalte de uñas mármol flor macetas Instructable para más ideas de diseño de pote de flor.