Բովանդակություն:
- Քայլ 1: Չափանիշներ
- Քայլ 2: պատյան
- Քայլ 3: Էլեկտրոնիկա
- Քայլ 4: Bill Acceptor
- Քայլ 5: Փորձարկում
- Քայլ 6: Էլեկտրոնիկա պատյանին
- Քայլ 7: Վերջնական փորձարկում
- Քայլ 8: Arduino կոդ + հղումներ
Video: $ 1 Arduino- ի վրա հիմնված ավտոմատ `8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Մենք մեր գաղափարը ստացել ենք մեր ինժեներական ուսուցչից. Մենք բոլորս կարծում էինք, որ լավ գաղափար կլիներ մեր դասի համար վաճառող մեքենա ունենալ, և նա ասաց. «Լավ, պատրաստիր»: Պարզվեց, որ վաճառող մեքենան կլինի հիանալի ավագ նախագիծ, և երբ ավարտվի, այն կգործի որպես դրամահավաք մեր ինժեներական ծրագրի համար:
Այն կոչվում է $ 1 ավտոմատ ոչ թե այն պատճառով, որ դրա պատրաստումն արժե $ 1, այլ պարզապես այն պատճառով, որ հաշիվ ընդունողն ավելի հին մոդել է, որը վերցնում է ընդամենը 1 ԱՄՆ դոլարի հաշիվներ:)
Քայլ 1: Չափանիշներ
Մենք ցանկանում էինք վաճառքի մեքենա, որը տեղավորվելու էր գրասեղանի վերևում և չափազանց բարձր չէր: Մենք վերցրեցինք սեղանի լայնության չափերը `համոզվելու համար, որ սեղանից կախված ավտոմատը չունենք:
Քայլ 2: պատյան
Մենք պատրաստեցինք մեր տուփը 19 դյույմ լայնությամբ 17 դյույմ երկարությամբ և 25 դյույմ բարձրությամբ: Մենք օգտագործեցինք CNC մեքենա `մեր փայտը կտրելու համար: Մենք օգտագործեցինք solidworks ՝ դեմքերը ձևավորելու համար, այնուհետև դրանք փոխակերպեցինք մեր CNC ծրագրաշարի գծագրման ֆայլերի տեսակների: Մենք եզրերը հղկեցինք, այնուհետև դրանք պտուտակեցինք 1 ¼ »-ով: Մենք ամրացրեցինք առջևի վահանակը ծխնով և օգտագործեցինք «պտուտակներ», որպեսզի պտուտակները մյուս կողմից չանցնեն: Մենք նաև օգտագործեցինք ակրիլային ապակի, որը մենք կտրեցինք դարակների և առջևի վահանակի համար:
Քայլ 3: Էլեկտրոնիկա
Արդուինո
Մենք օգտագործեցինք Arduino Mega 2560 տախտակ: Մենք նաև օգտագործեցինք Adafruit Motor Boards- ը, որպեսզի նրանք կարողանան գործարկել քայլող շարժիչները: Մենք ադաֆրուտի մեջ ավելացրեցինք քորոցներ, որպեսզի նրանք իրար միանան: Դրանք տեղադրվեցին մեկը մյուսի վրա: Յուրաքանչյուրը կարող է աշխատել 2 շարժիչով: Բացի այդ, նշեք, որ թռիչքը պետք է միացված լինի:
Սեղանի սնուցման աղբյուր
Bestek ATX էլեկտրամատակարարում ՝ ադապտորի միջոցով, էներգիան միացնելու համար: Ադապտորը sparkfun.com- ից է և ապահովում է տարբեր լարման:
Coils մեջ Motors
Մենք պատրաստեցինք solidworks մոդելներ `շարժիչը պահելու, կծիկը բռնելու և պարույրը դարակի երկայնքով ուղղորդելու համար: Մենք ebay- ից հասել էինք մեր կծիկներին և դրանք կտրում էինք չափերի: Մենք նաև ստիպված եղանք թեքել դրանցից 3 -ը, քանի որ ուղիղ ծայրերով 6 -ը չստացանք կծիկի ամրացմանը միանալու համար: Հետո մենք դրանք 3D տպեցինք և ամրացրեցինք դրանք կծիկին և շարժիչին: Այն stepper շարժիչները, որոնք մենք ունեինք, տեղադրեցինք լեռան մեջ: Այն կպահեր շարժիչը և կծիկը կառաջնորդեր ուղիղ ճանապարհով:
LCD և ստեղնաշար
Մենք օգտագործել ենք Arduino ստեղնաշար և LCD էկրան, որոնք միացված են հոսանքի աղբյուրի էներգիայի մատակարարման ադապտերի 5 Վ լարման և այնուհետև նույն Arduino տախտակին:
Հաղորդալարեր
Խորհուրդ ենք տալիս օգտագործել 18 չափիչ լարեր: Մեր դեպքում մենք ստիպված էինք փոխզիջման գնալ ՝ օգտագործելով տարբեր չափիչներ, քանի որ 18 չափիչ սարքը մեզ սպառեց
LED ժապավեն
Մեքենան լուսավորելու համար մենք օգտագործեցինք LED շերտ: Մենք այն միացրեցինք հոսանքի աղբյուրի ադապտերի 12 Վ լարման: Մեր կողմից օգտագործված LED շերտը բարեբախտաբար ուներ + և - որը հեշտացրեց այն միացնելու գործընթացը:
Քայլ 4: Bill Acceptor
Մենք որպես օրինագիծ ընդունող օգտագործեցինք Coinco BA30B: Այն պետք է ուղղակիորեն միացված լիներ պատին ՝ որպես էներգիայի աղբյուր: Մենք այն համակցեցինք atx էլեկտրամատակարարման 24 պինային ադապտերի հետ `միացնելու և ավելի հեշտ լարերը թույլ տալու համար: Մեր հետևած պինետները գտնվում են հետևյալ հղման մեջ.
techvalleyprojects.blogspot.com/2011/07/ard…
Մեր դեպքում, մենք պետք է սար ստեղծեինք, որպեսզի բարձրացնեինք հաշիվների ընդունիչը, քանի որ հակառակ դեպքում այն շատ ցածր կլիներ մեր պատյանների համար:
Քայլ 5: Փորձարկում
Փորձարկեք պատյանից դուրս գտնվող էլեկտրոնիկան ՝ ապահովելու համար, որ բաղադրիչներն աշխատում են: Ariseանկացած խնդիր, որը ծագում է, պետք է լուծվի նախքան պատյանում դրանք տեղադրելը:
Քայլ 6: Էլեկտրոնիկա պատյանին
Երբ ստուգեք էլեկտրոնիկան և գոհ կլինեք դրանց արդյունքներից, սկսեք դրանք տեղադրել ձեր պատյանում: Կարգավորեք մետաղալարերի երկարությունները այնպես, որ դրանք հարմարավետ տեղավորվեն ներսում:
Քայլ 7: Վերջնական փորձարկում
Պատյանում դնելուց հետո ամեն ինչ նորից փորձարկեք: Եթե ամեն ինչ աշխատում է այնպես, ինչպես սպասում էիք, շնորհավորում ենք: Դուք վաճառքի մեքենա եք պատրաստել:
Քայլ 8: Arduino կոդ + հղումներ
Ներլցումներ:
Arduino կոդ
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks թղթապանակ `մաս ֆայլերով և հավաքով
drive.google.com/drive/folders/1amZoypiWcZ…
Եթե հղման հետ ինչ -որ բան պատահի, ահա arduino կոդը ամբողջությամբ ցուցադրված է: Arduino կոդ <<
#ներառել #ներառել #ներառել "Arduino.h" #ներառել #ներառել #ներառել "օգտակար/Adafruit_MS_PWMServoDriver.h" #ներառել
const int stepsPerRevolution = 200; const բայթ ROWS = 4; // չորս տող const բայթ COLS = 3; // երեք սյունակ նշելու ստեղներ [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; բայթ rowPins [ROWS] = {5, 6, 7, 8}; // միանալ ստեղնաշարի բայթ colPins- ի տողերի pinouts- ին [COLS] = {2, 3, 4}; // միանալ ստեղնաշարի սյունակի ստեղնաշարերին Ստեղնաշարի ստեղնաշար = Ստեղնախումբ (makeKeymap (ստեղներ), 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); LiquidCrystal LCD (1, 11, 9, 10, 12, 13); // Թվային կապում, որը lcd- ն միացված է // հաստատուններ // // քորոց օրինագծի վավերացնողի վարկի համար (-) տող const int billValidator = 22;
// փոփոխականներ /
/ զարկերակի տևողության գրանցում (միլիվայրկյաններ) չստորագրված երկար տևողություն;
// պահելով ընդհանուր դոլարները, որոնք գրանցված են int dollarCounter = 0; void setup () {lcd.begin (16, 1); // սահմանել lcd տեքստի կոորդինատները lcd.print («Տեղադրեք միայն $ 1»); // Սահմանել տեքստը Serial.begin (9600); // Նախնականացնել սերիական նավահանգիստները հաղորդակցության համար: Serial.println («Stepper test!»); // Սերիական մոնիտորի մեջ մուտքագրեք Stepper Test, որպեսզի իմանանք, թե որ stepper շարժիչը սեղմված է: AFMS1. սկսել (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Սահմանել շարժիչի արագությունը, որով նրանք կաշխատեն myMotor2-> setSpeed (100); myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Պին կարգավորումներ հաշիվների վավերացման և կոճակի pinMode- ի համար (billValidator, INPUT); // Կարգավորում է կիսագլուխը
// Նախնականացնել հաղորդակցման սերիական նավահանգիստները: Serial.begin (9600); Serial.println («Սպասում է դոլարին…»); } void loop () {{duration = pulseIn (billValidator, HIGH); // Սկսում է փնտրել օրինագծի ընդունիչից ստացված զարկերակի երկարությունը, եթե (տևողությունը> 12000) // որի արժեքը պետք է գերազանցի, որպեսզի հաստատվի որպես վերամշակված և իսկական դոլար {// Count dollar dollarCounter ++; // Ստուգում է Serial.print ըմբռնման համար («Դոլարը հայտնաբերվեց: / n Ընդամենը ՝»); // dollarուցադրել դոլարի նոր հաշվարկ Serial.println (dollarCounter); // հանգույց ՝ սպասելու համար, մինչև որ կոճակը սեղմվի (տևողությունը> 12000) {char key = keypad.getKey (); // միանում է ստեղնաշարը և սկսում տեսնել, թե որն է սեղմված, եթե (key! = NO_KEY) {// որոնելու է սեղմված բանալին Serial.println (key); // մեզ տեղեկացնում է, թե որն է սեղմված սերիական մոնիտորի վրա} {if (key == '1') {// Եթե Key 1 սեղմված է, անում է հետևյալը. int keyPressed = key - '1'; myMotor8-> քայլ (580, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor8-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է հանգույցի սկզբի սկզբին}
if (key == '2') {// Եթե Key 2 սեղմված է, անում է հետևյալը. int keyPressed = key - '2'; myMotor7-> քայլ (400, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor7-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկզբին} if (key == '3') {// Եթե Key 3 -ը սեղմված է, անում է հետևյալը. Int keyPressed = key - '3'; myMotor6-> քայլ (400, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor6-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկիզբ} if (key == '4') {// Եթե Key 4 սեղմված է, անում է հետևյալը. Int keyPressed = key - '4'; myMotor5-> քայլ (180, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor5-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկզբին} if (key == '5') {// Եթե Key 5 սեղմված է, անում է հետևյալը. Int keyPressed = key - '5'; myMotor4-> քայլ (6900, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor4-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է հանգույցի սկզբին} if (key == '6') {// Եթե Key 6 -ը սեղմված է, անում է հետևյալը. Int keyPressed = key - '6'; myMotor3-> քայլ (400, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor3-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկզբին} if (key == '7') {// Եթե 7 -րդ բանալին սեղմված է, անում է հետևյալը. Int keyPressed = key - '7'; myMotor7-> քայլ (400, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor7-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկզբին} if (key == '8') {// Եթե ստեղնը 8 սեղմված է, անում է հետևյալը. Int keyPressed = key - '8'; myMotor8-> քայլ (400, ԱՌԱARD, ԿՐԿՆԱԿ); // Սկսում է Շարժիչը և պտտվում 350 աստիճանով դեպի առաջ: myMotor8-> թողարկում (); // Ազատում է շարժիչը ինքն իրեն տեղում պահելու վիճակից: վերադարձ; // Վերադառնում է օղակի կոդի սկզբին}}}}}} >>
Խորհուրդ ենք տալիս:
Ավտոմատ Arduino- ի վրա հիմնված IR հեռակառավարման ջերմաստիճան `7 քայլ
Ավտոմատ Arduino- ի վրա հիմնված IR հեռակառավարման ջերմաստիճան, որը հիմնված է. Աքարշ այստեղ ՝ CETech- ից: Հոգնել եք ձայնի քնի արթնանալուց միայն այն պատճառով, որ սենյակի ջերմաստիճանը չափազանց ցածր է կամ չափազանց բարձր `ձեր բութ AC- ի պատճառով: Ապա այս նախագիծը ձեզ համար է: Այս նախագծում մենք պատրաստվում ենք մեր
UWaiPi - Timeամանակի վրա հիմնված ավտոմատ բույսերի ջրման համակարգ. 11 քայլ (նկարներով)
UWaiPi - Timeամանակի վրա հիմնված ավտոմատ բույսերի ջրման համակարգ. Բարև ձեզ: Մոռացե՞լ եք այսօր առավոտյան ձեր բույսերը ջրել: Դուք պլանավորու՞մ եք արձակուրդ անցկացնել, բայց մտածում եք, թե ով է ջրելու բույսերը: Դե, եթե ձեր պատասխանները Այո են, ապա ես ձեր խնդրի լուծում ունեմ: Ես իսկապես ուրախ եմ ներկայացնել uWaiPi
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ - IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. 4 քայլ
Arduino- ի վրա հիմնված ոչ կոնտակտային ինֆրակարմիր ջերմաչափ | IR- ով հիմնված ջերմաչափ Arduino- ի միջոցով. Բարև ձեզ, այս հրահանգների մեջ մենք կդարձնենք ոչ կոնտակտային ջերմաչափ arduino- ով: Քանի որ երբեմն հեղուկի/պինդի ջերմաստիճանը չափազանց բարձր է կամ ցածր, ապա դժվար է դրա հետ կապ հաստատել և կարդալ այդ դեպքում ջերմաստիճանը
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
Երկաթուղային ավտոմատ հատման համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. 9 քայլ
Երկաթուղու հատման ավտոմատ համակարգ ՝ օգտագործելով Arduino- ի վրա հիմնված ներկառուցված հարթակ. Սուրբ Christmasննդին մնաց ընդամենը մեկ շաբաթ: Բոլորը զբաղված են տոնակատարություններով և նվերներով, որոնք, ի դեպ, ավելի դժվար է դառնում մեր շուրջը գտնվող անվերջ հնարավորություններով: Ի՞նչ կասեք դասական նվերի մասին և ավելացրեք DIY հպում