Kazalo:
- 1. korak: Merila
- 2. korak: Ohišje
- 3. korak: Elektronika
- 4. korak: Sprejemnik računov
- 5. korak: Testiranje
- 6. korak: Elektronika do ohišja
- 7. korak: Končno testiranje
- 8. korak: Arduino koda + povezave
Video: Prodajni avtomat na osnovi Arduina: 8 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Idejo smo dobili od učitelja inženiringa - vsi smo mislili, da bi bilo dobro imeti prodajni avtomat za naš razred in rekel je - "kul, naredi enega". Izkazalo se je, da bi bil avtomat odličen projekt za starejše, in ko bi bil dokončan, bi deloval kot zbiranje sredstev za naš inženirski program.
Imenuje se avtomat za prodajo 1 USD ne zato, ker stane 1 USD, ampak preprosto zato, ker je sprejemnik računov starejši model, ki vzame samo 1 USD:)
1. korak: Merila
Želeli smo prodajni avtomat, ki bi se prilegal na mizo in ne bi bil previsok. Vzeli smo dimenzije širine mize, da se prepričamo, da avtomat ne visi z mize.
2. korak: Ohišje
Našo škatlo smo naredili 19 centimetrov v širino in 17 centimetrov v dolžino in 25 centimetrov v višino. Za rezanje lesa smo uporabili CNC stroj. Za oblikovanje obrazov smo uporabili solidworks, nato pa jih pretvorili v risalne vrste datotek za našo programsko opremo CNC. Robove smo brusili in jih nato privili z 1 ¼”. Sprednjo ploščo smo pritrdili s tečaji in uporabili vijake ¼ “, da vijaki ne bi šli na drugo stran. Uporabili smo tudi akrilno steklo, ki smo ga izrezali za police in sprednjo ploščo.
3. korak: Elektronika
Arduino
Uporabili smo ploščo Arduino Mega 2560. Uporabili smo tudi motorne plošče Adafruit, da lahko poganjajo koračne motorje. Adafrutovim smo dodali zatiče, da se lahko povežejo med seboj. Vstavili so jih drug na drugega. Vsak lahko poganja 2 motorja. Upoštevajte tudi, da mora biti mostiček priključen.
Namizni napajalnik
Napajanje Bestek ATX z vmesnikom za vzdrževanje napajanja. Adapter je iz sparkfun.com in zagotavlja različne napetosti.
Tuljave v motorje
Naredili smo modele solidworks, ki držijo motor, zgrabijo tuljavo in tuljavo vodijo po polici. Naše tuljave smo dobili z ebaya in jih razrezali na dimenzije. 3 smo jih morali tudi upogniti, saj jih z ravnimi konci nismo dobili 6, da bi se povezali z nosilcem tuljave. Nato smo jih 3D natisnili in pritrdili na tuljavo in motor. Koračne motorje, ki smo jih imeli, smo postavili v nosilec. Držal bi motor in vodil tuljavo po ravni poti.
LCD in tipkovnica
Za napajanje smo uporabili Arduino tipkovnico in LCD zaslon, priključen v 5V kabel na napajalniku in nato v isto Arduino ploščo
Ožičenje
Priporočamo uporabo žic s premerom 18. V našem primeru smo morali narediti kompromis z uporabo različnih merilnikov, ker nam je zmanjkalo 18 merilnikov
LED trak
Za osvetlitev stroja smo uporabili LED trak. Priključili smo ga na 12V kabel na napajalniku. LED trak, ki smo ga na srečo uporabili, je imel na sebi + in -, kar je olajšalo postopek povezovanja.
4. korak: Sprejemnik računov
Kot sprejemnik računov smo uporabili Coinco BA30B. Moral ga je priključiti neposredno na steno kot vir energije. Združili smo ga s 24-polnim adapterjem iz napajalnika atx, da ga priključimo in omogočimo lažje ožičenje. Odstranitve, ki smo jim sledili, najdete na naslednji povezavi:
techvalleyprojects.blogspot.com/2011/07/ard…
V našem primeru smo morali ustvariti nosilec za dvig sprejemnika računov, ker bi bil sicer prenizek za naše ohišje.
5. korak: Testiranje
Najprej preizkusite elektroniko zunaj ohišja in se prepričajte, da komponente delujejo. Vse nastale težave je treba odpraviti, preden jih postavite v ohišje.
6. korak: Elektronika do ohišja
Ko preizkusite elektroniko in ste zadovoljni z njenimi rezultati, jo začnite vstavljati v ohišje. Dolžine žice prilagodite tako, da se udobno prilegajo notranjosti.
7. korak: Končno testiranje
Ko vstavite v ohišje, vse znova preizkusite. Če vse deluje tako, kot ste pričakovali, čestitam! Naredili ste avtomat.
8. korak: Arduino koda + povezave
Prenosi:
Koda Arduino
drive.google.com/drive/folders/1oC4MhOcMFy…
Mapa SolidWorks z datotekami delov in montažo
drive.google.com/drive/folders/1amZoypiWcZ…
V primeru, da se je s povezavo kaj zgodilo, je tukaj koda arduino v celoti prikazana. Koda Arduino <<
#include #include #include "Arduino.h" #include #include #include "utility/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte ROWS = 4; // štiri vrstice const byte COLS = 3; // znaki za tri stolpce [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [ROWS] = {5, 6, 7, 8}; // povežemo se z odmiki vrstice bajta tipkovnice colPins [COLS] = {2, 3, 4}; // povežemo se z izpisi stolpcev tipkovnice Tipkovnica tipkovnice = Tipkovnica (makeKeymap (tipke), vrstice, 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 tekoči kristal (1, 11, 9, 10, 12, 13); // Digitalni zatiči, na katere je LCD priključen // Konstante // // pin za kreditno potrdilo (-) vrstice const int billValidator = 22;
// spremenljivke /
/ snemanje trajanja impulza (milisekunde) nepodpisanega dolgega trajanja;
// imetnik skupnih dolarjev, zabeleženih v int dollarCounter = 0; void setup () {lcd.begin (16, 1); // nastavi koordinate besedila lcd lcd.print ("Vstavi samo 1 USD"); // Nastavi besedilo Serial.begin (9600); // Inicializirajte serijska vrata za komunikacijo. Serial.println ("Stepper test!"); // V serijski monitor vtipkajte korak koraka, tako da vemo, kateri koračni motor je pritisnjen. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Nastavi hitrost motorja, pri kateri bodo izvajali myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pripnite nastavitve za potrjevalnik računov in gumb pinMode (billValidator, INPUT); // Nastavi billaccepter
// Inicializirajte serijska vrata za komunikacijo. Serial.begin (9600); Serial.println ("Čakanje na dolar …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Začne iskati dolžino impulza, prejeto od akceptanta, če (trajanje> 12000) // Vrednost, ki jo mora preseči, da se potrdi kot predelani in verodostojni dolar {// Count dollar dollarCounter ++; // Preverjanje razumevanja Serial.print ("Zaznan dolar. / N Skupaj:"); // Prikaz novega števila dolarjev Serial.println (dollarCounter); // zanka, da počakamo, da pritisnemo gumb medtem (trajanje> 12000) {char key = keypad.getKey (); // poveže tipkovnico in začne videti, katera je pritisnjena, če (tipka! = NO_KEY) {// bo iskala pritisnjeno tipko Serial.println (tipka); // nam sporoča, kateri je bil pritisnjen v serijskem monitorju} {if (key == '1') {// Če pritisnete tipko 1, naredi naslednje: int keyPressed = key - '1'; myMotor8-> korak (580, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor8-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // se vrne na začetek kode zanke}
if (key == '2') {// Če pritisnete tipko 2, naredite naslednje: int keyPressed = key - '2'; myMotor7-> korak (400, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor7-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '3') {// Če pritisnete tipko 3, naredi naslednje: int keyPressed = key - '3'; myMotor6-> korak (400, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor6-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '4') {// Če pritisnete tipko 4, naredi naslednje: int keyPressed = key - '4'; myMotor5-> korak (180, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor5-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '5') {// Če pritisnete tipko 5, naredi naslednje: int keyPressed = key - '5'; myMotor4-> korak (6900, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor4-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '6') {// Če pritisnete tipko 6, naredi naslednje: int keyPressed = key - '6'; myMotor3-> korak (400, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor3-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '7') {// Če pritisnete tipko 7, naredi naslednje: int keyPressed = key - '7'; myMotor7-> korak (400, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor7-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke} if (key == '8') {// Če pritisnete tipko 8, naredi naslednje: int keyPressed = key - '8'; myMotor8-> korak (400, NAPREJ, DVOJNO); // Zažene motor in se vrti za 350 stopinj v smeri naprej. myMotor8-> release (); // sprosti motor iz stanja, da se drži. vrnitev; // Vrne se na začetek kode zanke}}}}}} >>
Priporočena:
Telefon na osnovi Arduina (prototip): 7 korakov
Telefon na osnovi Arduina (prototip): Pozdravljeni vsi, danes bomo v tem navodilu videli o telefonu, ki temelji na arduinu. Ta telefon je prototip, ki se še razvija. Izvorna koda je odprta koda, ki jo lahko spremeni vsak. Funkcije v telefonu: 1. Glasba 2. Video posnetki 3.
Vrata kokošinjca - na osnovi Arduina: 5 korakov (s slikami)
Vrata kokošinjca - Arduino temelji: Najprej je moj materni jezik nizozemščina, zato se opravičujem za morebitne pravopisne napake. Če kaj ni jasno, pustite sporočilo v komentarjih. To je moj prvi projekt arduino. Ker se je moja žena naveličala vsak dan ročno odpirati prtljažnik
Prodajni avtomat z lestvico za potrditev padca (Raspberry Pi): 5 korakov
Prodajni avtomat z lestvico za potrditev Itemdrop (Raspberry Pi): Dobrodošel kolega izdelovalec, za šolski projekt sem se odločil narediti avtomat za prigrizke. Naša naloga je bila ustvariti napravo za rekreacijo, ki bi uporabljala vsaj 3 senzorje in 1 aktuator. Delno sem šel narediti avtomat, ker sem imel dostop do nekaterih
Brezkontaktni infrardeči termometer na osnovi Arduino - IR termometer na osnovi Arduina: 4 koraki
Brezkontaktni infrardeči termometer na osnovi Arduino | IR -termometer z uporabo Arduina: Pozdravljeni fantje, v tem navodilu bomo naredili brezkontaktni termometer z arduinom. Ker je včasih temperatura tekočine/trdne snovi previsoka ali prenizka, potem pa je težko priti v stik z njo in prebrati temperatura v tem prizorju
Mini prodajni avtomat z nadzorom Arduino: 9 korakov
Mini avtomat z nadzorom Arduino: To je naš avtomat, ki prodaja tri čokoladne bonbone snickers zabavne velikosti. Skupne dimenzije so približno 12 " x 6 " x 8 ". Ta avtomat upravlja arduino, s ploščico in servo motorjem