Angoltudás nélkül kínosan nehéz lesz, az irodalom nagyjából 99,8 százaléka angolul van, a használható forumok is angolok. Egy sima soros porti logger kell (asszem a putty tud logolni, de ezt meg kell nézni). A Soros monitor "Küldés" gombja a (virtuális) soros porton küld ki adatokat, az neked nem jó. Magyar irodalom: Ruzsinszki Gábor Programozható elektronikák című e-könyve, ami nem csak Arduino, hanem lényegében minden (Arduino, PIC, PoC stb.), nem tökéletes, de elég jó. On-line tanfolyamra: tavir.hu. Ingyenes. Én sok szakmai hibát látok benne, de ettől még tök kezdő szintről, ha nem egy Kuka-szintű robot tervezése a cél, elmegy.
Az UNO-n (igazából lényegében majdnem minden Arduino panelen) van egy UART-USB csatoló. Ezzel megoldható, hogy te "soros" adatot küldesz az Arduino felé USB-n. Az Arduino Serial Monitor-a például ilyen, de én MatLab környezetből küldök sorosan képi információkat Arduinora egy projektben, úgyszintén USB porton. Sok CNC terv van, egyszerűbbek és bonyolultabbak is, a legtöbbnek nem UNO, hanem MEGA az alapja (nem véletlenül). A nehézséget inkább a léptetőmotorok meghajtóelektronikája, tápellátása, illetve a mechanika fogja jelenteni.
Ha rákeresel a neten az "USB to serial converter"-re, találsz egy egész csomót 10$ körüli áron. Ha szeretsz egy kicsit bütykölni, akkor az FTDI kiváló konverter IC-ket gyárt (pl. FT230X), minimális egyéb alkatrésszel működik, és letölthető a drivere - a kapható konverterek is többnyire valamelyik FTDI csippel működnek.
Ekezdtem agyalni egy UNO alapü CNC kütyün. Végül rájöttem, az a Com porton kommunikálna a gépemmel az meg nincs. Abszulút járatlan vagyok az Aurdinó témába ezért segíytséget kérek olyan eszköz kiválasztásához ami USB-n keresztül kommunikálna (abból van sok). A Leonardóra gondoltam de nemtudom jó e? Leonardo, CNC shileld X,Y,Z motor, végálláskapcsolók, DC motor Be/Ki. Kb ennyi lenne. A motrok Szkenner vagy tintasugaras motorjai. Ezek vannak meg DVD motrok.
A 3-as menübe lépve a Knight Rider_2 egyszer lefut, aztán a Kinght Rider_3 ismétlődik.
Hogyan legyen a kód, hogy ebben a menüben kilépésig ismétlődjön a kettes?
[code]
/* Knight Rider 3 * -------------- * * This example concentrates on making the visuals fluid. * * * (cleft) 2005 K3, Malmo University * @author: David Cuartielles * @hardware: David Cuartielles, Aaron Hallborg */
// Declare which fonts we will be using extern uint8_t SmallFont[]; extern uint8_t BigFont[]; extern uint8_t SevenSegNumFont[]; extern uint8_t SevenSeg_XXXL_Num[];
int x, y,g,menu;
UTFT myGLCD(ITDB32S,38,39,40,41); UTouch myTouch(6,5,4,3,2); void(* resetFunc) (void) = 0; //declare reset function @ address 0 void setup(){ for (count=0;count<8;count++) { pinMode(pinArray[count], OUTPUT); sensors.begin(); myGLCD.InitLCD(LANDSCAPE); // Initialize the display myGLCD.clrScr(); // Clear the screen (black) myTouch.InitTouch(LANDSCAPE); myTouch.setPrecision(PREC_MEDIUM); myGLCD.setFont(BigFont); myGLCD.fillScr(255,255,255); // Clear the screen (White) delay(600); //Delay to draw the image myGLCD.clrScr(); // Clear the screen (black) Menu1(); menu=1; } } void readtemp() { //Call sensors.requestTemperatures() to issure a global temperature //request to all devices on the bus sensors.requestTemperatures(); //Send the command to get temperatures HLTtemp = (sensors.getTempC(HLT)); Mashtemp = (sensors.getTempC(Mash)); Boilertemp = (sensors.getTempC(Boiler)); }
//Buttons coordinates //Menu 1 //Button HLT int x11=20; int y11=20; int x12=100; int y12=80; //Button Mash int x21=180; int y21=20; int x22=300; int y22=100; //Button Boiler int x31=20; int y31=120; int x32=150; int y32=200; //Button Menu int x41=180; int y41=120; int x42=300; int y42=200; //Button G int x51=10; int y51=10; int x52=160; int y52=220; //Button Back int x61=220; int y61=190; int x62=310; int y62=230; //Front led int x71=20; int y71=40; int x72=170; int y72=100; //Back led int x81=20; int y81=130; int x82=170; int y82=190; //Button Reset int x91=110; int y91=90; int x92=150; int y92=110;
while (1) { Knight_Rider_3 (); if (myTouch.dataAvailable()) { myTouch.read(); x=myTouch.getX(); y=myTouch.getY();
if (menu ==1) { if ((y>=y11) && (y<=y12)) // Upper row { if ((x>=x11) && (x<=x12)) // Button: Gpro { waitForIt(x11,y11,x12,y12); menu =2; Menu2(); } if ((x>=x21) && (x<=x22)) // Button: Leds { waitForIt(x21,y21,x22,y22); menu =3; Menu3(); } } if ((y>=y31) && (y<=y32)) // Lower row { if ((x>=x31) && (x<=x32)) // Button: Volto { waitForIt(x31,y31,x32,y32); menu =4; Menu4(); } if ((x>=x41) && (x<=x42)) // Button: Spare { waitForIt(x41,y41,x42,y42); menu =5; Menu5();
} } }
if (menu==2) {
myGLCD.setFont(BigFont); delay(300); if ((y>=y61) && (y<=y62)) // Button: Back { if ((x>=x61) && (x<=x62)) // Button: Back { waitForIt(x61,y61,x62,y62); menu =1; Menu1(); }
} } if (menu==3) {
delay(300); if ((y>=y61) && (y<=y62)) // Button: Back { if ((x>=x61) && (x<=x62)) // Button: Back { waitForIt(x61,y61,x62,y62); menu =1; Menu1(); }
} Knight_Rider_2 (); } if (menu==4) { if ((y>=y61) && (y<=y62)) // Button: Back { if ((x>=x61) && (x<=x62)) // Button: Back { waitForIt(x61,y61,x62,y62); menu =1; Menu1(); }
} } if (menu==5) { if ((y>=y61) && (y<=y62)) // Button: Back { if ((x>=x61) && (x<=x62)) // Button: Back { waitForIt(x61,y61,x62,y62); menu =1; Menu1(); }
} }
} while (myTouch.dataAvailable()) ; // wait here until they've lifted their finger } } void button(int x1, int y1, int x2, int y2) { myGLCD.setColor(0, 0, 255); myGLCD.fillRoundRect (x1,y1,x2,y2); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (x1,y1,x2,y2); }
// Draw a red frame while a button is touched void waitForIt(int x1, int y1, int x2, int y2) { myGLCD.setColor(255, 0, 0); myGLCD.drawRoundRect (x1, y1, x2, y2); //while (myTouch.dataAvailable()) //myTouch.read(); delay(300); myGLCD.setColor(255, 255, 255); myGLCD.drawRoundRect (x1, y1, x2, y2); } [/code]
Fiuk ! Nagyon kezdő vagyok az ARDIUNO-ban . Az lenne a kérdésem : a soros monitoron látható adatsort el tudom e menteni TXT fájlba. Sajnos angolul nem tudok, de turbopascalt több évig dögönyöztem. Hőmérséklet adatokat szeretnék beolvasni , idáig megy is . Csak szeretném eltárolni és ha kell visszaolvasni. Van is a képernyő sarkában egy kis küldés nyomógomb , csak nem jöttem rá a funkciójára. Sajnos valami olyant olvastam ,hogy ennek az USB működéséhez valami segédprogram kell .
Második kérdésem : tudtok e ajánlani valami jóvágású , magyar nyelvű irodalmat , ahol elboldogulok . Turbopascalban voltak nagyon jó könyvek : pl Programozzunk turbopascal nyelven - kezdő , középhaladó .
a triacot csak bekapcsolni lehet, kikapcsolni nem. viszont ha nem folyik rajta áram, akkor magától kikapcsol. persze az 50Hz miatt másodpercenként 100szor kikapcsol, neked százszor be kell kapcsolni.
ha azonnal bekapcsolod a nullátmenet után, akkor full ég a lámpa. ha vársz, akkor a félperiódusnak csak a hátralevő részében. így lesz fényerőszabályzós.
tehát igen pontosan kell tudnod mikor van a nullátmenet. az áramkörödön van a fekete optocsatoló, az való erre. az egy bemenet az arduinónak, abból tudod kiolvasni hogy mikor van a nullátmenet, ahhoz képest kell időzítsd a bekapcsolást.
Sötét. Rá kapcsolom a 230v és nem történik semmi. Töbször ki be kapcsolom akkor el indul és működik rendesen. Ha le kapcsolom a 230v majd vissza megint nem indul. Nem a mega fagy valamiért nem akar a modul működni rendesen.
Köszi a választ. Sikerült szóra bírnom igaz még csak egy izzóval teszteltem. Olyan gondom lenne még vele, hogy nem minden esetben működik amikor a hálózatra kapcsolom. Vagy ha aúj programot töltök a megára. Töbször ki be kell kapcsolni a bemenő 230v. Ez vajon mitől lehet?
a cucchoz amit vettél, van progy. próbáld ki azzal.
- írja is az eladó, hogy induktív terheléshez kell hozzá snubber. ami egy RC tag. tényleg kell.
- a hőtárolós kályha motorja egy aszinkron motor. a fordulatszáma csak szűk tartományban változtatható, és nem kizárt hogy hangos lesz tőle. ki kell próbálni. ha 70%-ig le tudsz menni vele, már örülhetsz.
A ventillátor egy hőtárolós kályháé. Igazából nem az érdekel hogy jó-e a venti hozzá hanem a kódot hogy írjam meg hozzá. Eddig 12v motort használtam pwmmel de le akarom cserélni erre.
Olvass wikiket! Gépleírásokat, minél többet. Teljes építési leírást is, és gépteszteket, hogy minek mi a baja. Ebből össze tudod gyúrni, hogy melyik megoldás vált be és melyikkel vannak gondok. A NEMA csak méret, van mégé néhány egyéb (sőt, sokkal fontosabb) tulajdonság is, bár ebben a legszélesebb a választék, ez igaz.
Ha nem is az a "tényleg " multi, de mindenképp osszetettebb gepet szeretnek. Az elsodleges feladata a rajzolas es a vagas lenne, (papir, EVA foam, karton, esetleg vekonyabb cell fajta)
A motoroknak NEMA17 vagy NEMA23-at neztem, hogy azok a legelterjedtebbek. Es hozza talaltam "specialis" MACH3 ra fejlesztett vezerloket is 10-20 GBP ert.
A mechanika teren a gondot a mozgatas okozza, nem tudom melyik a jobb. CNC eseten : A talca elore-hatra es a fej csak jobbra-balra, vagy jobb ha a fej vegzi az osszes mozgast, kesobb 3d eseten a fel-le is beleretve?
Viszont a fej elore-hatra, fel-le mozgatasahoz, nem talalok megfelelo profilt.
30x30 mm-est gondoltam, az nem tul eros de nem is gyenge, viszont nincs belole " V " slot tipus. Ellenben gorgot, csak ahhoz talaltam. Amcsiba talaltam, egy nagyon profi kis guide rollert, linear shaft-hoz de hiaba irok nekik, nem valaszolnak.
Amugy az alapotletet, egy hobby craft gep adta, ami ezt az EVA foam-ot vagja mesefigurakkal. De sajnos tul kicsi, csupan 100x100 a vago felulete es a kes mar eletlen, es nem lehet kapni alkatreszt mar hozza. Eloszor arra gondoltam, szetszedem valahogy megnezem, mit tud az vezerlo, milyen szoftver van rajta, de volt fonokom azt mondta egyszerubb ujat epiteni, mint azt tuningolni. Eros a gyanum, hogy abban is Arduino board van gyarilag. Meg usb is van rajta, de nem funkcional. A gyarto szerint azert tettek ra, hogy kesobb fejlesszek, de nem tortent meg.
A mechanikai kivitelezhetőség az első szűk keresztmetszet. Egy lézer hűtéssel, mindennel együtt 30-40 deka. Egy megfelelő motor, amivel nyákot tudsz marni (a késes dolog a kettő között van) meg 2-4 kiló a rettenetes méretű fej miatt. Ez alatt nincs értelme foglalkozni vele, mert nem fogsz tudni normális nyákot csinálni (túl nagy lesz a bizonytalanság). Ha ennyire multifunkciós eszközt akarsz, nagyon rögös és hosszú út áll előtted, egyáltalán nem véletlen, hogy kínai cuccok sincsenek ilyen tudással, komoly gyártó meg hozzá sem kezd.
Az a felvetésed, hogy "ha ez megy, a nagyobb is menne" eleve nem áll meg. Ahány léptetőmotor (ahogy írtam), nagyjából annyi megoldás (ez túlzás, mert valamennyi sztenderdizáltság van, de jelentős eltérések lehetnek). Én azt javaslom, hogy DIY 3D nyomtatós és CNC-s oldalak wikijeit olvasd végig (konkrétan), ebből rengeteg hasznos információt leszűrhetsz. Persze pokoli unalmas, de ezt nem lehet megspórolni.
Ami a vezérlést illeti. Az elv a következő. Van 1-2-3-4 tengelyed (szabadságfokként vagy DOF-ként is hivatkozhatnak rá), ez határozza meg, hogy hány irányban tud mozogni az, aminek mozognia kell. 2 a minimum (lézergravír, bár itt +1 lehet a lézer ki/bekapcsolása), a 3D nyomtatók jellemzően 3 tengelyesek (x, y, z), ahogy a cnc-k is. De azzal is számolni kell, hogy a 3D nyomtatón a fejhőmérsékletet, az alap hőmérsékletét, a filament előtolását is vezérelned kell (ezért sokkal komplikáltabb egy 3D nyomtatóvezérlő szoftver, mint egy cnc szoftver -- legalábbis DIY körülmények között, mert van 8-9 és talán már 10 tengelyes ipari CNC is). Igazából az, hogy egy bármilyen szoftver milyen kódsort tol ki magából, amivel a gépet vezérli, nagyjából irreleváns, mert bármilyen következetes (akár nem szabványos) kódsorból lehet szabványosat csinálni (jó esetben adatvesztés nélkül). Nyilván sokkal jobb, ha egyből az jön ki, aminek ki kell jönnie. Sőt, jó hír, hogy egyes 3D nyomtatóvezérlő protokollok konkrétan kibővített CNC protokollok. Erről (is) tudsz a wikikben olvasni. A kommunikáció meg megint egy olyan kérdés, hogy olyan, amilyenre alakítod. Bármi bármivel tud kommunikálni -- kis barokkos túlzással.
Én azt javaslom, előbb csinálj egy tök egyszerű tollas plottert. A korábban említett instructables.com oldalon van egy rahedli ilyen leírás, alkatrészlistával, részletes összeszerelési utasítással. Felejtsd el a bontott alkatrészeket (hacsak nem tudod tuti biztosan, hogy miről van szó), mert a kész cuccba, pláne ha azt olyanra akarod, amilyet írtál, nem fogsz tudni sima DVD fejmozgató léptetőkkel megoldani (felbontása talán meglenne, de a nyomatéka tutira nem). Drágább és talán körülményesebb lesz, de biztosabb a siker.
Azt tudom még tanácsolni, hogy kicsiben haladj. Előbb csinálj csak egy sima kamera slidert. Mozgasd időre, csinálj time-lapse-vezérlőt, aztán tedd át 2D-be, hogy ide-oda menjen vagy forogjon stb. Sok sikert!
A ket dvd motoros dolgot csupan azert forsziroztam mert lattam egy videot ket ilyen mechanikabol osszerakot rajzolo geprol. Es kivancsisagbol gondoltam megepiteni. Azzal a cellel ha az megy akkor a nagyobb cnc is menne. De hiaba csak 4 vezetekes, tobbszori probalkozasra sem sikerult mukodesbe hozni. Igy a korabban leirt nagyobb disco lampa motorokkal kiserletezem tovabb. A cel egy multi cnc lenne, vagyis ami tud rajzolni, vagni( kessel es akar lezerrel is), gravirozni, nyakot rajzolni es maro fejjel kimarni tovabba 3d nyomtatokent is tud mukodni. Elkepzelesem szerint mechanikailag tokeletesen kivitelezheto, cserelheto fejekkel. A gondot a programozas okozza hogy, mukodjon azzal mach3 nevu programmal. Alapvetoen arra meg nem talaltam infot hogy az arduino tud e kommunikalni vele, vagy ehhez mas tipusu elektronika szuksegeltetik?!
A léptetőmotorok lelkivilága elég, hogy úgy mondjam, szofisztikált. Míg egy átlagos DC (egyenáramú) motor műszaki adatlapja (datasheet) 1, maximum 2 oldal, addig egy komplexebb stepperé 6-8 oldal, és még messze nem az ipari felhasználásra gyártott speciális vezérlést igénylű, nagy nyomatékú motorokról beszélek.
Az, hogy egy DVD-ből bontott motor milyen időzítést, a léptetési ütemek között milyen kivárást, eleve milyen frekvenciát (vagy frekvenciatartományt) visel el, milyen kitöltési tényezővel kell hajtani, kizárólag az adatlapból derül ki. Az is, hogy ha lehet, milyen üzemmódokkal mehet (egész/eltolt/fél lépés). Jobb esetben, kellő kitartással ezt próba-szerencse alapon be lehet játszani. Ha valaki már egyszer egy pont ugyanolyan motorhoz írt egy működő szoftvert (vagy könyvtárat), akkor ugyanazzal a felállással egy biztos alapról (működőről) el lehet indulni. Ilyenből van sok pl. az instructables.com oldalon, részletes leírással. Namost, ha nulláról csinálnám, a következő lenne a protokoll: 0. Kell minden eszköz, amit be akarsz építeni, ezeket át kell vennem, lehetőleg állapotfelméréssel, hogy később ne verhesd rám, hogy tönkre tettem az x ezer forintos (valójában jogilag veszélyes ipari hulladék) dvd léptetőmotorodat, továbbá pontról pontra tisztáznunk kell, hogy pontosan mit akarsz és mit nem akarsz megvalósíttatni. 1. A kapott hóbelevanc minden elemére egy alapos adatgyűjtés következik, hogy ne vak sötétben kelljen tapogatóznom a fejlesztéshez. Ez szerencsés esetben 15 perc, de van olyan alkatrész (javításra váró mikroelektronikai eszközön), ami után 5 hónapja kajtatok az összes kis-, közép- és nagykereskedésben, barátoknál, fiókokban, bontókban, egyelőre eredménytelenül. 2. Gyön a hardveres illesztés, amikor minden alkatrész, modulonként a végső helyére kerül, ezzel párhuzamosan...
3. ...folyik a projekt szoftveres részének -- szintén moduláris -- fejlesztése. Ha minden rendben halad és nagy mák alapján mondjuk a léptetőmotorhoz valaki már írt elfogadható könyvtárat, esetleg a megvalósítandó eszközhöz hasonló kódot, akkor -- bár nem szeretem -- nem nulláról kell kezdeni, hanem mondjuk 2-ről. Szerencsés esetben semmit nem baltáztak el benne. (Bár most például kiderült, hogy egy kínai gyártású, Wifi fejlesztőeszközhöz készült könyvtár folyamatosan küld egy porton adatokat egy halom IP címre direktben.) Így mondjuk 2 nap alatt, teszteléssel, mindennel együtt kész a projekt. És akkor vegyük le belőle, hogy a feltételezett pozitív "ha"-k jelentős része nem teljesül, mert akkor simán lehet ennek az ötszöröse is, és akkor még nincs nagy megcsúszás sem szoftverben, sem hardverben.
Vegyünk egy arany középutat, mondjuk 5 napot, napi tisztes 8 órával (ami fejlesztésnél úgy repül, hogy néha éjjel 11-kor jövök rá, hogy nem ebédeltem), ez mondjuk 40 óra. Mivel házi projekt, megszámítom a felével, az is nettó 160 000 forint.
Mi van ennek a túloldalán? Az, hogy ha szerencséd van, te 5 nap alatt "ingyen", egészen precízen fogalmazva a saját időd felhasználásával meg tudod csinálni. Ha tényleg minden klappol és elsőre-másodikra belenyúlsz a tutiba és semmit nem teszel tönkre útközben. Ha kevésbé vagy kitartó/szerencsés, akkor ez lehet 1 vagy akár 2 hónap is, a szabadidőd terhére. Kijön a végére mondjuk 187 óra. Vagy 542. Ennyi idővel "szegényebb" leszel, viszont gazdagabb leszel az alkotás örömével, elképesztően sok tapasztalattal, továbbá lesz -- valamennyi -- fogalmad a mikrokontrollerek programozásáról, gyakorlod az angol nyelvet és a legcifrább magyar káromkodásokat.
Az én egyik első, a fent hivatkozott oldalon is publikált (sőt, a szerkesztők által kiemelt és fél év "prémium" tagsággal jutalmazott) projektem nagyon nem nulláról, elég sok tapasztalattal kb. 3 nap szöszölés volt. Ha a korábbi tapasztalatszerzések összességét is beleveszem, akkor nagyjából 7-8 nap. És bár ma, így 3,5 év és a jó ég tudja hány ezer fejlesztési óra után néhány részt máshogy csinálnék meg, még mindig vállalható. És még így sem biztos, hogy egy nap alatt (7-8 óra) össze tudnám rittyenteni (nyilván nulláról, nem a minta alapján).
Összefoglalva: arra a kérdésre, hogy hogyan tovább, nem tudok releváns választ mondani, mert a téma egy fél éves BME tárgy kb. 120 órában. Csináld, és előbb-utóbb sikerülni fog. Hajrá!
Vegulis nem lehetetlen. De ahhoz elobb ossze kell raknom a gepet, es akkor megirod ra a szoftvert. Illetve code-ot. Feltetelezem ertesz hozza, es 2-3 oranal tovabb nem tart.
Diszkont nettó 8000 forintos óradíjban megcsinálom neked, úgy úgy forogjon, ahogy fütyülsz (a szó szoros értelmében). A DIY prototipizálás (amit most csinálsz), egyedül, szakértelem nélkül ordas nagy és folyamatos szívás. Néha még nem DIY, nem egyedül és kellő szaktudással is az. Van piros (vagy kék, már a fene sem tudja) pirula, de, ahogy fentebb is írtam, nem olcsó mulatság.
Szóval kaptál egy kódot, ami szerinted jó, csak sehogy nem tudod bevarázsolni a fejlesztőkörnyezetbe. Tanulni nem akarsz, mert a fő szempont, hogy a motor forogjon. Hát így nehéz lesz.