Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Distributeur de bonbons

Composants et fournitures

Arduino UNO
× 1
servo (tour à 180 degrés)
× 1
Adafruit Standard LCD - 16x2 Blanc sur Bleu
× 1
Interrupteur à bouton-poussoir SparkFun 12mm
× 1
PHPoC Shield pour Arduino
× 1
Capteur de distance IR
× 1
Commuter le bouton d'alimentation
× 1
Planche à pain (générique)
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

Le projet

C'est un moyen facile de créer un distributeur de bonbons en utilisant uniquement :un capteur infrarouge, un servo et un bouton-poussoir. Il peut être divisé en ces étapes :

  • Créer et utiliser Arduino Uno R3
  • Codage et configuration de l'Arduino
  • Création du carter et des pièces mécaniques
  • Installation de l'électronique
  • Test et utilisation

Voici une courte vidéo de démonstration :

Écrire le codage a été la partie la plus difficile pour moi car je suis encore novice dans l'écriture d'un langage de codage, mais j'y parviens après plusieurs erreurs et l'aide de M. Google et de ses amis. L'écriture de codes est le temps le plus long sur cette partie du projet.

Crédit à l'homme qui m'a INSPIRÉ pour faire ce distributeur de bonbons ! Ceci est la version simplifiée de : https://www.hackster.io/gatoninja236/candy-dispenser-with-google-assistant-564724

Création de la boîte et des pièces mécaniques

C'est la partie amusante du projet à créer. Il m'a fallu au moins 1 journée entière pour le terminer complètement après plusieurs erreurs et pièces qui ne correspondent pas.

Étape 1

Mettre en place les composants

Cela peut sembler très compliqué, mais c'est le moyen le plus simple de trier chaque composant et de tester chaque partie pour voir s'il y a une erreur. J'ai disposé différentes couleurs de fils pour que ce soit plus facile à regarder. J'ai disposé tous les composants sur un morceau de carton et j'ai choisi celui qui va en premier.

Étape 2

Créer la boîte

J'ai dessiné un dessin technique de l'apparence de la boîte. La plupart des pièces sont en carton et certaines sont en acrylique. Ensuite, je mesure chaque partie.

  • Avant et arrière =20 cm x 16 cm (le dos est en acrylique)
  • Côté - Côté =12cm x 16cm
  • Haut et bas =20 cm x 12 cm

Étape 3

Voici à quoi cela ressemblera après les avoir tous attachés ensemble (en utilisant d'abord du ruban adhésif).

Ensuite, j'ai découpé des emplacements pour les composants :

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

Pour la tasse :

  • Longueur x Hauteur =9cm x 12cm
  • Largeur x Profondeur =9cm x 9cm

N'oubliez pas de découper aussi pour les capteurs :

J'ai fait le distributeur en étapes pour que les bonbons ne tombent pas tout de suite :

Étape 4

J'ai disposé la maquette et l'Arduino l'un derrière l'autre. J'utilise de l'acrylique pour les coller ensemble. De cette façon, il économisera beaucoup d'espace.

Étape 5

Commencez à fixer les composants sur la carte. Je commence avec l'écran LCD et les boutons.

Ensuite, après avoir câblé tous les câbles sur les composants, je les ai attachés au milieu de la boîte.

Fixation du servo :

Voilà à quoi ça ressemble vu de dos. J'ai également ajouté un bouton d'alimentation pour allumer le distributeur à l'aide de la batterie.

Étape 6

L'aspect fini.

Code

  • Distributeur de bonbons
Distributeur de bonbonsArduino
//------BIBLIOTHÈQUES-----#include  #include #include //------BIBLIOTHÈQUES--- --// Réglez l'adresse LCD sur 0x27 pour un affichage de 16 caractères et 2 lignesLiquidCrystal_I2C lcd(0x27, 16, 2);Servo myservo;int pos =90; // bouton de position de démarrage du servomoteur CLK =7; //boutonClockwise pinint buttonAntiCLK =6; //boutonAntiClockwise pin//int sensorPin =2; // Capteur IR à attacher à la broche numérique NO.2//int sensorState =0; // variable sensorState pour stocker des statistiques sur l'état du sensorint set =0;const int AvoidPin =5; //le capteur d'obstacle ir se connecte à la broche 5void setup(){ lcd.begin(); // initialise l'écran LCD lcd.clear(); monservo.attach(9) ; // Servo Digital 9 pinMode (boutonCLK, INPUT); pinMode(boutonAntiCLK, INPUT); pinMode(éviterPin, INPUT); //définir le AvoidPin comme INPUT Serial.begin(9600); LCD rétro-éclairage(); // Allume la lumière noire lcd.setCursor(3,0); lcd.print("Bienvenue sur"); lcd.setCursor(3,1) ; lcd.print("Candy Land"); retard (2000); lcd.clear(); lcd.setCursor(0,0); lcd.print("Combien de bonbons ?"); lcd.setCursor(0,1) ; lcd.print("Un peu beaucoup"); delay(5000);}boucle vide(){ //----------C'EST LES FONCTIONS IF POUR LES BOUTONS----------- if(digitalRead(buttonCLK) ==HIGH ) // boutonClockwise est pressé { //TurnClockwise(); //Détection Capteur(); lcd.clear(); lcd.print("Veuillez placer la tasse"); retard (2000); lcd.clear(); ensemble =ensemble + 1 ; } if(digitalRead(buttonAntiCLK) ==HIGH) // buttonAntiClockwise est pressé { //TurnAntiClockwise(); //Détection Capteur(); lcd.clear(); lcd.print("Veuillez placer la tasse"); retard (2000); lcd.clear(); ensemble =ensemble + 2 ; } if(set ==1) { IRCLK(); } if(set ==2) { IRAntiCLK(); } //----------C'EST LA FONCTION SI POUR LES BOUTONS----------- }void TurnClockwise(){ Serial.println("Candy 1 Being Dispensed"); CandyText1(); // affiche Candy Type Text for(pos =90; pos <180; pos +=1) // va de 0 degrés à 180 degrés { myservo.write(pos); // dit au servo de se positionner dans la variable 'pos' delay(15); // attend 15ms que le servo atteigne la position } if(pos ==180) { delay(2000); MerciTexte(); // affiche le texte de remerciement }}void TurnAntiClockwise(){ Serial.println("Candy 2 Being Dispensed"); CandyText2(); // affiche Candy Type Text for(pos =90; pos <180; pos +=1) // va de 0 degrés à 180 degrés { myservo.write(pos); // dit au servo de se positionner dans la variable 'pos' delay(20); // attend 15ms que le servo atteigne la position } if(pos ==180) { delay(3000); MerciTexte(); // affiche le texte de remerciement } }void IRCLK(){ delay(1000); //créer un délai de 1s booléenevival =digitalRead(evoidPin); //lire la valeur de pin4 lcd.setCursor(0,0); lcd.print("Détection de tasse"); lcd.setCursor(0,14); lcd.print("..."); if(avoidVal ==LOW) //si la valeur est LOW level { lcd.clear(); lcd.print("Tasse placée"); retard (2000); Tourne dans le sens des aiguilles d'une montre(); }}void IRAntiCLK(){ delay(1000); //créer un délai de 1s booléenevival =digitalRead(evoidPin); //lire la valeur de pin4 lcd.setCursor(0,0); lcd.print("Détection de tasse"); lcd.setCursor(0,14); lcd.print("..."); if(avoidVal ==LOW) //si la valeur est LOW level { lcd.clear(); lcd.print("Tasse placée"); retard (2000); Tourner dans le sens inverse des aiguilles d'une montre(); } }void CandyText1(){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Verser"); lcd.setCursor(1,1) ; lcd.print("Petit Bonbon");}void CandyText2(){ lcd.clear(); lcd.setCursor(4,0); lcd.print("Verser"); lcd.setCursor(3,1) ; lcd.print("Lot Candy");}void ThankYouText(){ lcd.clear(); lcd.setCursor(5,0); lcd.print("Merci"); lcd.setCursor(6,1) ; lcd.print("Vous"); retard (15); software_Reset();}void software_Reset() // Redémarre le programme depuis le début mais ne réinitialise pas les périphériques et les registres{ asm volatile ("jmp 0"); } 

Schémas

Cela a l'air un peu compliqué, mais suivez la couleur du câblage.

Processus de fabrication

  1. Canne en bonbon
  2. Bonbon au maïs
  3. Jawbreaker
  4. Barbe à papa
  5. Bonbon gommeux
  6. Bonbons M &M®
  7. Switch/Panneau LED avec Arduino pour FS2020
  8. Arduino Spybot
  9. FlickMote