Sommario:
- Fase 1: Criteri
- Passaggio 2: involucro
- Passaggio 3: elettronica
- Passaggio 4: Accettatore di banconote
- Passaggio 5: test
- Passaggio 6: dall'elettronica all'involucro
- Passaggio 7: test finale
- Passaggio 8: codice Arduino + collegamenti
Video: Distributore automatico basato su Arduino da $ 1: 8 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Abbiamo avuto la nostra idea dal nostro insegnante di ingegneria - tutti abbiamo pensato che sarebbe stata una buona idea avere un distributore automatico per la nostra classe e ha detto - "bello, creane uno". Si è scoperto che un distributore automatico sarebbe stato un ottimo progetto per anziani e, una volta completato, avrebbe funzionato come raccolta fondi per il nostro programma di ingegneria.
Si chiama distributore automatico da $ 1 non perché costa $ 1, ma semplicemente perché l'accettatore di banconote è un modello più vecchio che richiede solo banconote da $ 1:)
Fase 1: Criteri
Volevamo un distributore automatico che si adattasse a una scrivania e non fosse troppo alto. Abbiamo preso le dimensioni della larghezza del tavolo per assicurarci di non avere il distributore automatico appeso al tavolo.
Passaggio 2: involucro
Abbiamo realizzato la nostra scatola da 19 pollici di larghezza per 17 pollici di lunghezza per 25 pollici di altezza. Abbiamo usato una macchina CNC per tagliare il nostro legno. Abbiamo utilizzato solidworks per progettare le facce e poi le abbiamo convertite in tipi di file di disegno per il nostro software CNC. Abbiamo levigato i bordi e poi li abbiamo avvitati con 1 ¼”. Abbiamo fissato il pannello frontale con una cerniera e utilizzato viti da , in modo che le viti non passassero dall'altra parte. Abbiamo anche usato il vetro acrilico che abbiamo tagliato per i ripiani e il pannello frontale.
Passaggio 3: elettronica
Arduino
Abbiamo usato una scheda Arduino Mega 2560. Abbiamo anche usato le schede motore Adafruit in modo che possano far funzionare i motori passo-passo. Abbiamo aggiunto dei pin agli adafruit per farli connettere tra loro. Li hanno inseriti uno sopra l'altro. Ognuno può far funzionare 2 motori. Inoltre, tieni presente che il ponticello deve essere collegato.
Alimentatore da tavolo
Alimentatore Bestek ATX che utilizza un adattatore per mantenere acceso l'alimentatore. L'adattatore proviene da sparkfun.com e fornisce vari voltaggi.
Bobine in motori
Abbiamo realizzato modelli solidworks per sostenere il motore, afferrare la bobina e guidare la bobina lungo lo scaffale. Avevamo ottenuto le nostre bobine da ebay e le abbiamo tagliate a misura. Abbiamo anche dovuto piegarne 3 poiché non ne abbiamo ottenuti 6 con le estremità diritte per il collegamento al supporto della bobina. Quindi li abbiamo stampati in 3D e li abbiamo attaccati alla bobina e al motore. I motori passo passo che avevamo, li abbiamo inseriti in un supporto. Manterrebbe il motore e guiderebbe la bobina lungo un percorso rettilineo.
LCD e tastiera
Abbiamo utilizzato una tastiera Arduino e uno schermo LCD collegati a un cavo da 5 V sull'adattatore di alimentazione per l'alimentazione e quindi alla stessa scheda Arduino
Cablaggio
Si consiglia l'uso di cavi di calibro 18. Nel nostro caso, abbiamo dovuto scendere a compromessi utilizzando vari calibri perché avevamo esaurito i 18 calibri
Striscia LED
Abbiamo utilizzato una striscia LED per illuminare la macchina. Lo abbiamo collegato a un cavo da 12 V sull'adattatore di alimentazione. La striscia LED che abbiamo usato per fortuna aveva un + e un - che ha reso più facile il processo di connessione.
Passaggio 4: Accettatore di banconote
Abbiamo usato un Coinco BA30B come nostro lettore di banconote. Doveva essere collegato direttamente al muro come fonte di alimentazione. Lo abbiamo combinato con un adattatore a 24 pin da un alimentatore atx per collegarlo e consentire un cablaggio più semplice. I pinout che abbiamo seguito si trovano nel seguente link:
techvalleyprojects.blogspot.com/2011/07/ard…
Nel nostro caso abbiamo dovuto creare una montatura per alzare l'accettatore di banconote perché altrimenti sarebbe stato troppo basso per il nostro involucro.
Passaggio 5: test
Testare prima l'elettronica all'esterno dell'involucro per assicurarsi che i componenti funzionino. Eventuali problemi che si presentano devono essere risolti prima di posizionarli all'interno dell'involucro.
Passaggio 6: dall'elettronica all'involucro
Una volta che hai testato l'elettronica e sei soddisfatto dei risultati, inizia a inserirli nel tuo involucro. Regola le lunghezze dei cavi in modo che si adattino comodamente all'interno.
Passaggio 7: test finale
Una volta inserito nell'involucro, prova di nuovo tutto. Se tutto funziona come previsto, congratulazioni! Hai fatto un distributore automatico.
Passaggio 8: codice Arduino + collegamenti
Download:
Codice Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Cartella SolidWorks con file di parti e assiemi
drive.google.com/drive/folders/1amZoypiWcZ…
Nel caso in cui sia successo qualcosa al collegamento, ecco il codice arduino completamente visualizzato. Codice Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte RIGHE = 4; //quattro righe const byte COLS = 3; // tre colonne char keys[ROWS][COLS] = { {'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'} }; byte rowPins[RIGHE] = {5, 6, 7, 8}; //connettersi ai pinout di riga della tastiera byte colPins[COLS] = {2, 3, 4}; //connettersi ai piedini delle colonne del tastierino Tastierino tastierino = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); Adafruit_MotorShield AFMS1 = Adafruit_MotorShield(); Adafruit_StepperMotor *myMotor1 = AFMS1.getStepper(-200, 1); Adafruit_StepperMotor *myMotor2 = AFMS1.getStepper(-200, 2); Adafruit_MotorShield AFMS2 = Adafruit_MotorShield(0x61); Adafruit_StepperMotor *myMotor3 = AFMS2.getStepper(-200, 1); Adafruit_StepperMotor *myMotor4 = AFMS2.getStepper(-200, 2); Adafruit_MotorShield AFMS3 = Adafruit_MotorShield(0x62); Adafruit_StepperMotor *myMotor5 = AFMS3.getStepper(-200, 1); Adafruit_StepperMotor *myMotor6 = AFMS3.getStepper(-200, 2); Adafruit_MotorShield AFMS4 = Adafruit_MotorShield(0x63); Adafruit_StepperMotor *myMotor7 = AFMS4.getStepper(-200, 1); Adafruit_StepperMotor *myMotor8 = AFMS4.getStepper(-200, 2); LCD a cristalli liquidi (1, 11, 9, 10, 12, 13); //pin digitali a cui lcd è connesso // costanti // // pin per la linea di credito(-) del lettore di banconote const int billValidator = 22;
// Variabili /
/ registrazione della durata dell'impulso (millisecondi) unsigned long duration;
// tiene il totale dei dollari registrati int dollaroCounter = 0; void setup() { lcd.begin(16, 1); //imposta le coordinate del testo lcd lcd.print("Inserisci solo $1"); //Imposta il testo Serial.begin(9600); // Inizializza le porte seriali per la comunicazione. Serial.println("Prova passo passo!"); //Digitare Stepper Test nel monitor seriale in modo da sapere quale motore passo-passo viene premuto. AFMS1.begin(); AFMS2.begin(); AFMS3.begin(); AFMS4.begin(); myMotor1->setSpeed(100); //Imposta la velocità del motore alla quale verranno eseguiti myMotor2->setSpeed(100); myMotor3->setSpeed(100); myMotor4->setSpeed(100); myMotor5->setSpeed(100); myMotor6->setSpeed(100); myMotor7->setSpeed(100); myMotor8->setSpeed(100); // Configurazioni dei pin per il validatore di banconote e il pulsante pinMode(billValidator, INPUT); //Imposta il billaccepter
// Inizializza le porte seriali per la comunicazione. Serial.begin(9600); Serial.println("In attesa di dollari…"); } void loop () { { duration = pulseIn(billValidator, HIGH); //Inizia a cercare la lunghezza dell'impulso ricevuta dall'accettatore di banconote if (durata > 12000) //Valore che deve superare per essere validato come dollaro processato e autentico { // Conta dollaro dollarCounter++; // Verifica di comprensione Serial.print("Dollaro rilevato.\n Totale: "); // Visualizza il nuovo conteggio dei dollari Serial.println(dollarCounter); //loop per attendere che venga premuto un pulsante while (durata > 12000){ char key = keyboard.getKey(); //collega il keyoad e inizia a vedere quale viene premuto if (key != NO_KEY) { //cercherà il tasto premuto Serial.println(key); //ci fa sapere quale è stato premuto nel monitor seriale } { if (key == '1') { //Se viene premuto il tasto 1, fa quanto segue: int keyPressed = key - '1'; myMotor8->step(580, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. myMotor8->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo }
if (key == '2') { //Se viene premuto il tasto 2, esegue le seguenti operazioni: int keyPressed = key - '2'; myMotor7->step(400, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore7->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '3') { //Se viene premuto il tasto 3, esegue le seguenti operazioni: int keyPressed = key - '3'; myMotor6->step(400, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore6->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '4') { //Se viene premuto il tasto 4, esegue le seguenti operazioni: int keyPressed = key - '4'; myMotor5->step(180, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore5->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '5') { //Se viene premuto il tasto 5, esegue le seguenti operazioni: int keyPressed = key - '5'; mioMotore4->passo(6900, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore4->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '6') { //Se viene premuto il tasto 6, esegue le seguenti operazioni: int keyPressed = key - '6'; mioMotore3->passo(400, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore3->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '7') { //Se viene premuto il tasto 7, esegue le seguenti operazioni: int keyPressed = key - '7'; myMotor7->step(400, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. mioMotore7->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } if (key == '8') { //Se viene premuto il tasto 8, esegue le seguenti operazioni: int keyPressed = key - '8'; myMotor8->step(400, AVANTI, DOPPIO); //Avvia il motore e ruota di 350 gradi in avanti. myMotor8->release(); //Rilascia il motore dallo stato di mantenersi in posizione. Restituzione; //Torna all'inizio del codice del ciclo } } } } } } >>
Consigliato:
Telecomando IR automatico basato su Arduino basato sulla temperatura: 7 passaggi
Telecomando IR automatico basato su Arduino basato sulla temperatura: Ehi, come va, ragazzi! Akarsh qui da CETech. Stanco di svegliarti nel bel mezzo di un sonno profondo solo perché la temperatura della tua stanza è troppo bassa o troppo alta a causa del tuo stupido condizionatore. Allora questo progetto è per te. In questo progetto, faremo il nostro
Mini distributore automatico controllato da Arduino: 9 passaggi
Mini distributore automatico controllato da Arduino: questo è il nostro distributore automatico, distribuisce tre barrette di cioccolato Snickers di dimensioni divertenti. Le dimensioni complessive sono di circa 12" x 6" x 8". Questo distributore automatico è controllato da un arduino, con breadboard e servomotore
Macchina della verità + distributore automatico: con Arduino Leonardo: 6 passaggi
Macchina della verità + distributore automatico: con Arduino Leonardo: questa macchina della verità non è la normale macchina della verità, è una macchina della verità a cui è collegato un distributore automatico. Fondamentalmente, è così che funziona. All'inizio, il giocatore premerà un pulsante che avvierà la macchina, e prima della menzogna
Distributore automatico Servo Arduino: 8 passaggi
Distributore automatico con servo Arduino: questo distributore automatico contiene tre barre snickers di dimensioni divertenti e ne venderà una alla volta utilizzando Arduino Uno e un servomotore
Distributore automatico--Dispenser di caramelle-- Arduino Bluetooth controllato--Fai da te: 11 passaggi (con immagini)
Distributore automatico||Dispenser di caramelle|| Arduino Bluetooth Controlled||Fai da te: in questo tutorial mostro come costruire un distributore automatico usando un Arduino.COMMENTA QUELLO CHE NE PENSI DI QUESTO INSTRUCTABLE, IN MODO CHE POSSO MIGLIORARE NEL MIO ULTERIORE INSTRUCTABLE Dai un'occhiata al video tutorial per una migliore comprensione dell'ente