Tartalomjegyzék:
- 1. lépés: Feltételek
- 2. lépés: Burkolat
- 3. lépés: Elektronika
- 4. lépés: Számlafogadó
- 5. lépés: Tesztelés
- 6. lépés: Elektronika a burkolathoz
- 7. lépés: Végső tesztelés
- 8. lépés: Arduino kód + linkek
Videó: $ 1 Arduino-alapú automaták: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Az ötletet a mérnöktanárunktól kaptuk - mindannyian úgy gondoltuk, hogy jó ötlet lenne, ha van egy automata az osztályunkhoz, és azt mondta: "menő, készíts egyet". Kiderült, hogy az automaták nagyszerű projektnek számítanak, és ha elkészültek, adománygyűjtőként működnek a mérnöki programunkban.
1 dolláros automatának nevezik, nem azért, mert 1 dollárba kerül az elkészítése, hanem egyszerűen azért, mert a számlafogadó egy régebbi modell, amely csak 1 dolláros számlákat fogad el:)
1. lépés: Feltételek
Olyan automatát akartunk, amely elfér az asztal tetején, és nem túl magas. Megvettük az asztal szélességének méreteit, hogy megbizonyosodjunk arról, hogy nem állunk le az automatáról az asztalról.
2. lépés: Burkolat
A dobozunkat 19 hüvelyk széles, 17 hüvelyk hosszú és 25 hüvelyk magas volt. CNC gépet használtunk a fánk vágásához. A solidworks segítségével terveztük az arcokat, majd rajzfájltípusokká alakítottuk őket a CNC szoftverünkhöz. A széleket csiszoltuk, majd 1 ¼”csavarral becsavartuk. Az elülső panelt csuklópánttal rögzítettük, és screws “csavarokat használtunk, hogy a csavarok ne menjenek át a másik oldalra. Akrilüveget is használtunk, amelyet a polcokhoz és az előlaphoz vágtunk.
3. lépés: Elektronika
Arduino
Arduino Mega 2560 táblát használtunk. Az Adafruit motorlapokat is használtuk a léptetőmotorok működtetéséhez. Tűket adtunk az adafruithoz, hogy összekapcsolódhassanak egymással. Egymásra helyezték őket. Mindegyik 2 motort működtethet. Ezenkívül vegye figyelembe, hogy a jumpert csatlakoztatni kell.
Asztali tápegység
Bestek ATX Tápellátás adapter segítségével a tápellátás bekapcsolásához. Az adapter a sparkfun.com webhelyről származik, és különböző feszültségeket biztosít.
Motorokba tekercsel
Solidworks modelleket készítettünk a motor tartására, a tekercs megragadására és a tekercs vezetésére a polcon. A tekercseket az ebayről szereztük be, és méretre vágtuk őket. Hármat is meg kellett hajlítanunk, mivel nem kaptunk 6 egyenes végű csatlakozást a tekercstartóhoz. Ezután 3D -ben kinyomtattuk őket, és rögzítettük a tekercshez és a motorhoz. A léptetőmotorokat, amelyeket megvoltunk, egy tartóba helyeztük. Tartaná a motort, és egyenes úton vezetné a tekercset.
LCD és billentyűzet
Egy Arduino billentyűzetet és LCD képernyőt használtunk a tápegység adapterének 5V -os vezetékéhez csatlakoztatva, majd ugyanahhoz az Arduino Boardhoz
Vezeték
Javasoljuk, hogy 18 -as vezetékeket használjon. Esetünkben kompromisszumot kellett kötnünk különféle mérőeszközök használatával, mert elfogyott a 18 mérőeszközünk
LED-csík
A gép megvilágítására LED -szalagot használtunk. A tápegység 12V -os vezetékéhez kötöttük. Az általunk használt LED szalagon szerencsére volt egy + és -, ami megkönnyítette a csatlakoztatást.
4. lépés: Számlafogadó
Coinco BA30B -t használtunk számlaelfogadónak. Áramforrásként közvetlenül a falhoz kellett csatlakoztatni. Kombináltuk egy 24 tűs adapterrel az atx tápegységtől a csatlakoztatáshoz és a könnyebb bekötéshez. Az általunk követett pinoutok az alábbi linken találhatók:
techvalleyprojects.blogspot.com/2011/07/ard…
Esetünkben egy rögzítőt kellett létrehoznunk a számlafogadó megemeléséhez, mert különben túl alacsony lenne a burkolatunkhoz.
5. lépés: Tesztelés
Először ellenőrizze a házon kívüli elektronikát, hogy megbizonyosodjon arról, hogy az alkatrészek működnek. A felmerülő problémákat ki kell javítani, mielőtt azokat a burkolatba helyezi.
6. lépés: Elektronika a burkolathoz
Miután tesztelte az elektronikát, és elégedett az eredményeikkel, kezdje el a burkolatba helyezését. Állítsa be a huzalok hosszát úgy, hogy kényelmesen illeszkedjenek a belsejébe.
7. lépés: Végső tesztelés
Miután behelyezte a burkolatba, teszteljen mindent újra. Ha minden a várt módon működik, gratulálok! Készítettél egy automatát.
8. lépés: Arduino kód + linkek
Letöltések:
Arduino kód
drive.google.com/drive/folders/1oC4MhOcMFy…
SolidWorks mappa alkatrészfájlokkal és összeszereléssel
drive.google.com/drive/folders/1amZoypiWcZ…
Abban az esetben, ha valami történt a linkkel, itt van az arduino kód teljesen megjelenítve. Arduino kód <<
#include #include #include "Arduino.h" #include #include #include "segédprogram/Adafruit_MS_PWMServoDriver.h" #include
const int stepsPerRevolution = 200; const byte ROWS = 4; // négy sor const byte COLS = 3; // három oszlop char billentyű [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}}; byte rowPins [SOROK] = {5, 6, 7, 8}; // csatlakozás a billentyűzet sorkapcsaihoz bájt colPins [COLS] = {2, 3, 4}; // csatlakozás a billentyűzet oszloppisztolyaihoz Billentyűzet billentyűzet = billentyűzet (makeKeymap (kulcsok), 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); // Digitális Pins Az LCD-hez kapcsolódik // Constants // // pin a számla validátor hitelhez (-) line const int billValidator = 22;
// Változók /
/ az impulzus időtartamának rögzítése (ezredmásodperc) előjel nélküli hosszú időtartam;
// a rögzített összes dollár tartása int dollarCounter = 0; void setup () {lcd.begin (16, 1); // lcd szövegkoordináták beállítása lcd.print ("Csak $ 1 beszúrása"); // Szöveg beállítása Serial.begin (9600); // Inicializálja a soros portokat a kommunikációhoz. Serial.println ("Léptető teszt!"); // Írja be a léptető tesztet a soros monitorba, hogy tudjuk, melyik léptetőmotort nyomja meg. AFMS1.begin (); AFMS2.begin (); AFMS3.begin (); AFMS4.begin (); myMotor1-> setSpeed (100); // Állítsa be a motor fordulatszámát, amelyen a myMotor2-> setSpeed (100) futni fog; myMotor3-> setSpeed (100); myMotor4-> setSpeed (100); myMotor5-> setSpeed (100); myMotor6-> setSpeed (100); myMotor7-> setSpeed (100); myMotor8-> setSpeed (100); // Pin beállítások a számla validátorhoz és a pinMode gombhoz (billValidator, INPUT); // Beállítja a billacceptert
// Inicializálja a soros portokat a kommunikációhoz. Sorozat.kezdet (9600); Serial.println ("Várakozás a dollárra …"); } void loop () {{duration = pulseIn (billValidator, HIGH); // Elkezdi keresni a számlaelfogadótól kapott impulzushosszat, ha (időtartam> 12000) // Érték, amelyet felül kell múlnia ahhoz, hogy feldolgozott és hiteles dollárként érvényesítse {// Count dollar dollarCounter ++; // A Serial.print megértésének ellenőrzése ("Dollár észlelve. / N Összesen:"); // Új dollárszám megjelenítése Serial.println (dollarCounter); // ciklus annak érdekében, hogy megvárja, amíg megnyom egy gombot, miközben (időtartam> 12000) {char key = keypad.getKey (); // összekapcsolja a kulcsterhelést, és elkezdi látni, hogy melyik gombot kell megnyomni, ha (kulcs! = NO_KEY) {// a billentyű lenyomását fogja keresni Serial.println (key); // tudatja velünk, hogy melyiket nyomták le a soros monitoron} {{if (key == '1') {// Ha lenyomja az 1 -es billentyűt, akkor a következőket teszi: int keyPressed = key - '1'; myMotor8-> lépés (580, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor8-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}
if (key == '2') {// Ha megnyomja a 2 -es billentyűt, akkor a következőket teszi: int keyPressed = gomb - '2'; myMotor7-> lépés (400, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor7-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}, ha (key == '3') {// Ha megnyomja a 3 -as billentyűt, akkor a következőket teszi: int keyPressed = key - '3'; myMotor6-> lépés (400, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor6-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}, ha (key == '4') {// Ha megnyomja a 4 -es billentyűt, akkor a következőket teszi: int keyPressed = key - '4'; myMotor5-> lépés (180, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor5-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}, ha (key == '5') {// Ha megnyomja az 5 -ös billentyűt, akkor a következőket teszi: int keyPressed = key - '5'; myMotor4-> lépés (6900, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor4-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}, ha (key == '6') {// Ha megnyomja a 6 -os billentyűt, akkor a következőket teszi: int keyPressed = key - '6'; myMotor3-> lépés (400, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor3-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a ciklus elejére}, ha (key == '7') {// Ha megnyomja a 7 -es billentyűt, akkor a következőket teszi: int keyPressed = key - '7'; myMotor7-> lépés (400, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor7-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}, ha (key == '8') {// Ha megnyomja a 8 -as billentyűt, akkor a következőket teszi: int keyPressed = key - '8'; myMotor8-> lépés (400, ELŐRE, DUPLA); // Elindítja a motort, és 350 fokban forog előre. myMotor8-> release (); // Elengedi a motort a helyén tartás állapotából. Visszatérés; // Visszatér a cikluskód elejére}}}}}} >>
Ajánlott:
Akusztikus levitáció az Arduino Uno-val Lépésről lépésre (8 lépés): 8 lépés
Akusztikus lebegés az Arduino Uno-val Lépésről lépésre (8 lépés): ultrahangos hangátvivők L298N Dc női adapter tápegység egy egyenáramú tűvel Arduino UNOBreadboard és analóg portok a kód konvertálásához (C ++)
Hajléktalan automaták: 3 lépés
Hajléktalan automaták: Megpróbálom megakadályozni az éhséget a közösségünkben. Oklahomában közel 3000 ember él hajléktalanságot. Úgy döntöttünk, hogy megoldást találunk erre a problémára, hogy javítsuk és növeljük közösségünket. Nagy számú ember a
Arduino vezérelt mini automaták: 9 lépés
Arduino vezérelt mini automaták: Ez a mi automatánk, három szórakoztató méretű snickers cukorkát kínál. A teljes méretek körülbelül 12 " x 6 " x 8 ". Ezt az automatát egy arduino vezérli, kenyérpaddal és szervomotorral
Hazugságérzékelő+automaták: Arduino Leonardo -val: 6 lépés
Hazugságérzékelő+automaták: Arduino Leonardo esetén: Ez a hazugságérzékelő nem a szokásos átlagos hazugságérzékelő, hanem egy hazugságérzékelő, amelyhez automata van csatlakoztatva. Alapvetően ez így működik. Kezdetben a játékos megnyom egy gombot, amely elindítja a gépet, és a hazugság előtt
Automaták -- édességek adagoló -- Arduino Bluetooth vezérelt -- DIY: 11 lépés (képekkel)
Automaták || cukorkaadagoló || Arduino Bluetooth -vezérelt || DIY: Ebben az oktatóanyagban megmutatom, hogyan lehet automata építeni egy Arduino használatával. ÍRJON MEG, HOGYAN HOGYAN GONDOLJA EZT AZ UTASÍTÁST, HOGY TOVÁBBI JÓVÁBAN JELENTHETEM, nézze meg a videó bemutatót a jobb megértés érdekében az egészből