Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Distribuidor de doces

Componentes e suprimentos

Arduino UNO
× 1
servo (giro de 180 graus)
× 1
Adafruit LCD padrão - 16x2 branco em azul
× 1
SparkFun Botão de pressão 12 mm
× 1
PHPoC Shield para Arduino
× 1
Sensor de distância infravermelho
× 1
Botão liga / desliga do interruptor
× 1
Breadboard (genérico)
× 1

Ferramentas e máquinas necessárias

Ferro de soldar (genérico)

Aplicativos e serviços online

Arduino IDE

Sobre este projeto





O Projeto


Esta é uma maneira fácil de criar um distribuidor de doces usando apenas:sensor IR, servo e botão de pressão. Ele pode ser dividido nas seguintes etapas:
  • Criação e uso do Arduino Uno R3
  • Codificando e configurando o Arduino
  • Criação do revestimento e das peças mecânicas
  • Instalando a eletrônica
  • Teste e uso

Aqui está um breve vídeo de demonstração:

Escrever a codificação foi a parte mais difícil para mim porque ainda sou novo na escrita da linguagem de codificação, mas consigo fazer isso depois de vários erros e da ajuda do Sr. Google e amigos. Escrever códigos é o mais demorado nesta parte do projeto.

Crédito para o homem que me INSPIROU para fazer este distribuidor de doces! Esta é a versão simplificada de: https://www.hackster.io/gatoninja236/candy-dispenser-with-google-assistant-564724





Criando a caixa e as peças mecânicas


Esta é a parte divertida de criar do projeto. Levei pelo menos 1 dia inteiro para concluí-lo totalmente após vários erros e peças que não cabem.





Etapa 1


Dispor componentes

Isso pode parecer muito confuso, mas é a maneira mais fácil de classificar cada componente e testar cada parte para ver se há algum erro. Eu coloquei diferentes cores de fios para que seja mais fácil de olhar. Eu coloquei todos os componentes em um pedaço de papelão e escolhi qual deles vai primeiro.





Etapa 2


Criando a caixa

Fiz um desenho técnico de como a caixa deveria ficar. A maioria das peças são feitas de papelão e algumas são feitas de acrílico. Então, eu meço cada parte.
  • Frente e verso =20 cm x 16 cm (o verso é acrílico)
  • Lado - Lado =12 cm x 16 cm
  • Superior e inferior =20 cm x 12 cm





Etapa 3


É assim que vai ficar depois de prendê-los todos juntos (usando primeiro a fita adesiva).





Então eu recortei lugares para os componentes:
  • LCD =7,2 cm x 2,5 cm
  • Botões =1,2 cm x 1,2 cm

Para a taça:
  • Comprimento x altura =9 cm x 12 cm
  • Largura x profundidade =9 cm x 9 cm

Não se esqueça de cortar também para os sensores:

Eu fiz o dispensador em etapas para que o doce não caísse imediatamente:





Etapa 4


Coloquei a placa de ensaio e o Arduino um atrás do outro. Eu uso acrílico para colá-los. Assim, economizará muito espaço.






Etapa 5


Comece a anexar os componentes à placa. Eu começo com LCD e botões.



Em seguida, depois de conectar todos os cabos aos componentes, coloquei-os no meio da caixa.

Anexando o servo:

É assim que parece visto de trás. Também adicionei um botão liga / desliga para ligar o Dispenser usando a bateria.






Etapa 6


O look acabado.


Código

  • Distribuidor de doces
Distribuidor de doces Arduino
 // ------ BIBLIOTECAS ----- # include  #include  #include  // ------ BIBLIOTECAS --- - // Defina o endereço LCD para 0x27 para um displayLiquidCrystal_I2C lcd de 16 caracteres e 2 linhas (0x27, 16, 2); Servo myservo; int pos =90; // posição inicial do servoint buttonCLK =7; // buttonClockwise pinint buttonAntiCLK =6; // pino buttonAntiClockwise // int sensorPin =2; // Sensor IR a ser conectado ao pino digital NO.2 // int sensorState =0; // variável sensorState para armazenar estatísticas sobre o status do sensorint set =0; const int AvoidPin =5; // o sensor de obstáculo ir anexado ao pino 5void setup () {lcd.begin (); // inicializa o LCD lcd.clear (); myservo.attach (9); // Servo Digital 9 pinMode (buttonCLK, INPUT); pinMode (buttonAntiCLK, INPUT); pinMode (AvoidPin, INPUT); // definir o AvoidPin como INPUT Serial.begin (9600); lcd.backlight (); // Liga a luz negra lcd.setCursor (3,0); lcd.print ("Bem-vindo a"); lcd.setCursor (3,1); lcd.print ("Candy Land"); atraso (2000); lcd.clear (); lcd.setCursor (0,0); lcd.print ("Quantos doces?"); lcd.setCursor (0,1); lcd.print ("A Little A Lot"); delay (5000);} void loop () {// ---------- ESSAS FUNÇÕES IF PARA BOTÕES ----------- if (digitalRead (buttonCLK) ==HIGH ) // buttonClockwise é pressionado {// TurnClockwise (); // SensorDetection (); lcd.clear (); lcd.print ("Coloque o copo"); atraso (2000); lcd.clear (); set =set + 1; } if (digitalRead (buttonAntiCLK) ==HIGH) // buttonAntiClockwise é pressionado {// TurnAntiClockwise (); // SensorDetection (); lcd.clear (); lcd.print ("Coloque o copo"); atraso (2000); lcd.clear (); set =set + 2; } if (set ==1) {IRCLK (); } if (definir ==2) {IRAntiCLK (); } // ---------- ESSAS SÃO AS FUNÇÕES IF PARA OS BOTÕES -----------} void TurnClockwise () {Serial.println ("Candy 1 Being Dispensed"); CandyText1 (); // exibe o texto do tipo Candy para (pos =90; pos <180; pos + =1) // vai de 0 graus a 180 graus {myservo.write (pos); // diz ao servo para ir para a posição na variável 'pos' delay (15); // espera 15ms para o servo atingir a posição} if (pos ==180) {delay (2000); ThankYouText (); // exibe o texto de agradecimento}} void TurnAntiClockwise () {Serial.println ("Candy 2 Being Dispensed"); CandyText2 (); // exibe o texto do tipo Candy para (pos =90; pos <180; pos + =1) // vai de 0 graus a 180 graus {myservo.write (pos); // diz ao servo para ir para a posição na variável 'pos' delay (20); // espera 15ms para que o servo alcance a posição} if (pos ==180) {delay (3000); ThankYouText (); // exibe o texto de agradecimento}} void IRCLK () {delay (1000); // cria um atraso de 1s boolean AvoidVal =digitalRead (AvoidPin); // lê o valor de pin4 lcd.setCursor (0,0); lcd.print ("Detecção de Copa"); lcd.setCursor (0,14); lcd.print ("..."); if (AvoidVal ==LOW) // se o valor é LOW level {lcd.clear (); lcd.print ("Copo colocado"); atraso (2000); TurnClockwise (); }} void IRAntiCLK () {atraso (1000); // cria um atraso de 1s boolean AvoidVal =digitalRead (AvoidPin); // lê o valor de pin4 lcd.setCursor (0,0); lcd.print ("Detecção de Copa"); lcd.setCursor (0,14); lcd.print ("..."); if (AvoidVal ==LOW) // se o valor é LOW level {lcd.clear (); lcd.print ("Copo colocado"); atraso (2000); Vire no sentido anti-horário(); }} void CandyText1 () {lcd.clear (); lcd.setCursor (4,0); lcd.print ("Verter"); lcd.setCursor (1,1); lcd.print ("Little Candy");} void CandyText2 () {lcd.clear (); lcd.setCursor (4,0); lcd.print ("Verter"); lcd.setCursor (3,1); lcd.print ("Lot Candy");} void ThankYouText () {lcd.clear (); lcd.setCursor (5,0); lcd.print ("Obrigado"); lcd.setCursor (6,1); lcd.print ("Você"); atraso (15); software_Reset ();} void software_Reset () // Reinicia o programa desde o início, mas não reinicia os periféricos e registra {asm volatile ("jmp 0"); } 

Esquemas

Parece um pouco complicado, mas veja como está a cor do cabeamento.

Processo de manufatura

  1. Candy Cane
  2. Doce de milho
  3. Jawbreaker
  4. Algodão doce
  5. Bombom de goma
  6. M &M® Candy
  7. Switch / Painel de LED com Arduino para FS2020
  8. Arduino Spybot
  9. FlickMote
  10. TV B-Gone caseiro