Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Dispensador de caramelos

Componentes y suministros

Arduino UNO
× 1
servo (giro de 180 grados)
× 1
LCD estándar Adafruit - 16x2 blanco sobre azul
× 1
Interruptor de botón SparkFun de 12 mm
× 1
PHPoC Shield para Arduino
× 1
Sensor de distancia IR
× 1
Cambiar el botón de encendido
× 1
Breadboard (genérico)
× 1

Herramientas y máquinas necesarias

Soldador (genérico)

Aplicaciones y servicios en línea

Arduino IDE

Acerca de este proyecto

El Proyecto

Esta es una manera fácil de crear un dispensador de dulces usando solo:sensor de infrarrojos, servo y pulsador. Se puede dividir en estos pasos:

  • Creación y uso de Arduino Uno R3
  • Codificar y configurar Arduino
  • Creación de la carcasa y las piezas mecánicas
  • Instalación de la electrónica
  • Pruebas y uso

Aquí hay un breve video de demostración:

Escribir la codificación fue la parte más difícil para mí porque todavía soy nuevo en la escritura del lenguaje de codificación, pero lo logro después de múltiples errores y la ayuda del Sr. Google y amigos. Escribir códigos es el tiempo más largo en esta parte del proyecto.

¡Gracias por el hombre que ME INSPIRÓ para hacer este dispensador de caramelos! Esta es la versión simplificada de: https://www.hackster.io/gatoninja236/candy-dispenser-with-google-assistant-564724

Creación de la caja y las piezas mecánicas

Esta es la parte divertida del proyecto para crear. Me tomó al menos 1 día completo completarlo por completo después de múltiples errores y partes que no encajan.

Paso 1

Diseño de componentes

Esto puede parecer muy complicado, pero esta es la forma más fácil de clasificar cada componente y probar la ejecución de cada parte para ver si hay algún error. Coloqué cables de diferentes colores para que sea más fácil de ver. Coloqué todos los componentes en un trozo de cartón y clasifiqué cuál va primero.

Paso 2

Creación de la caja

Hice un dibujo técnico de cómo debería verse la caja. La mayoría de las piezas están hechas de cartón y algunas están hechas de acrílico. Luego mido cada parte.

  • Parte delantera y trasera =20 cm x 16 cm (la parte trasera es acrílica)
  • Lado - Lado =12 cm x 16 cm
  • Superior e inferior =20 cm x 12 cm

Paso 3

Así es como se verá después de unirlos todos (usando primero cinta adhesiva).

Luego recorté lugares para los componentes:

  • LCD =7,2 cm x 2,5 cm
  • Botones =1,2 cm x 1,2 cm

Para la copa:

  • Largo x Alto =9cm x 12cm
  • Ancho x profundidad =9 cm x 9 cm

No olvide cortar también los sensores:

Hice el dispensador en pasos para que los dulces no se caigan de inmediato:

Paso 4

Coloqué la placa de pruebas y Arduino uno detrás del otro. Utilizo acrílicos para pegarlos. De esta forma se ahorrará mucho espacio.

Paso 5

Comience a colocar los componentes en la placa. Empiezo con LCD y botones.

A continuación, después de conectar todos los cables de los componentes, los conecté en el medio de la caja.

Colocación del servo:

Así es como se ve desde atrás. También agregué un botón de encendido para encender el Dispensador usando la batería.

Paso 6

El look terminado.

Código

  • Dispensador de caramelos
Dispensador de caramelos Arduino
 // ------ BIBLIOTECAS ----- # incluye  #include  #include  // ------ BIBLIOTECAS --- - // Establezca la dirección de la pantalla LCD en 0x27 para una pantalla de 16 caracteres y 2 líneasLiquidCrystal_I2C lcd (0x27, 16, 2); Servo myservo; int pos =90; // posición de inicio del servoint buttonCLK =7; // buttonAntiCLK =6; // pin buttonAntiClockwise // int sensorPin =2; // sensor de infrarrojos para conectar al pin digital NO.2 // int sensorState =0; // variable sensorState para almacenar estadísticas sobre el estado del sensorint set =0; const int evitarPin =5; // el sensor de obstáculos de infrarrojos se conecta al pin 5void setup () {lcd.begin (); // inicializar la pantalla LCD lcd.clear (); myservo.attach (9); // Servo Digital 9 pinMode (buttonCLK, INPUT); pinMode (buttonAntiCLK, INPUT); pinMode (evitarPin, ENTRADA); // establece el preventPin como INPUT Serial.begin (9600); LCD luz de fondo(); // Enciende la luz negra lcd.setCursor (3,0); lcd.print ("Bienvenido a"); lcd.setCursor (3,1); lcd.print ("Tierra de dulces"); retraso (2000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("¿Cuántos dulces?"); lcd.setCursor (0,1); lcd.print ("Un poco mucho"); delay (5000);} void loop () {// ---------- ESTA ES LAS FUNCIONES IF PARA LOS BOTONES ----------- if (digitalRead (buttonCLK) ==HIGH ) // se presiona buttonClockwise {// TurnClockwise (); // SensorDetection (); lcd.clear (); lcd.print ("Coloque la taza"); retraso (2000); lcd.clear (); conjunto =conjunto + 1; } if (digitalRead (buttonAntiCLK) ==HIGH) // se presiona buttonAntiClockwise {// TurnAntiClockwise (); // SensorDetection (); lcd.clear (); lcd.print ("Coloque la taza"); retraso (2000); lcd.clear (); conjunto =conjunto + 2; } if (set ==1) {IRCLK (); } si (conjunto ==2) {IRAntiCLK (); } // ---------- ESTA SON LAS FUNCIONES IF DE LOS BOTONES -----------} void TurnClockwise () {Serial.println ("Candy 1 being dispensed"); CandyText1 (); // muestra el texto tipo caramelo para (pos =90; pos <180; pos + =1) // va de 0 grados a 180 grados {myservo.write (pos); // le dice al servo que vaya a la posición en la variable 'pos' delay (15); // espera 15ms a que el servo alcance la posición} if (pos ==180) {delay (2000); ThankYouText (); // muestra el texto de agradecimiento}} void TurnAntiClockwise () {Serial.println ("Caramelo 2 siendo dispensado"); CandyText2 (); // muestra el texto tipo caramelo para (pos =90; pos <180; pos + =1) // va de 0 grados a 180 grados {myservo.write (pos); // le dice al servo que vaya a la posición en la variable 'pos' delay (20); // espera 15ms a que el servo alcance la posición} if (pos ==180) {delay (3000); ThankYouText (); // muestra el texto de agradecimiento}} void IRCLK () {retraso (1000); // crea un retardo de 1 s boolean preventVal =digitalRead (evitarPin); // lee el valor de pin4 lcd.setCursor (0,0); lcd.print ("Taza de detección"); lcd.setCursor (0,14); lcd.print ("..."); if (preventVal ==LOW) // si el valor es LOW level {lcd.clear (); lcd.print ("Copa colocada"); retraso (2000); Gira en el sentido de las manecillas del reloj(); }} void IRAntiCLK () {retraso (1000); // crea un retardo de 1 s boolean preventVal =digitalRead (evitarPin); // lee el valor de pin4 lcd.setCursor (0,0); lcd.print ("Taza de detección"); lcd.setCursor (0,14); lcd.print ("..."); if (preventVal ==LOW) // si el valor es LOW level {lcd.clear (); lcd.print ("Copa colocada"); retraso (2000); Girar en sentido antihorario(); }} void CandyText1 () {lcd.clear (); lcd.setCursor (4,0); lcd.print ("Vertido"); lcd.setCursor (1,1); lcd.print ("Caramelo");} void CandyText2 () {lcd.clear (); lcd.setCursor (4,0); lcd.print ("Vertido"); lcd.setCursor (3,1); lcd.print ("Lot Candy");} void ThankYouText () {lcd.clear (); lcd.setCursor (5,0); lcd.print ("Gracias"); lcd.setCursor (6,1); lcd.print ("Usted"); retraso (15); software_Reset ();} void software_Reset () // Reinicia el programa desde el principio pero no reinicia los periféricos y registra {asm volatile ("jmp 0"); } 

Esquemas

Parece un poco complicado, pero sigue el color del cableado.

Proceso de manufactura

  1. Bastón de caramelo
  2. Maíz de caramelo
  3. Jawbreaker
  4. Algodón de azúcar
  5. Caramelo gomoso
  6. M &M® Candy
  7. Panel de interruptores / LED con Arduino para FS2020
  8. Arduino Spybot
  9. FlickMote
  10. Televisión casera B-Gone
  11. Reloj maestro