Tartalomjegyzék:
- Kellékek
- 1. lépés: Tervezzen nagy keretrendszert
- 2. lépés: Hardver készítése
- 3. lépés: Rács készítése
- 4. lépés:
- 5. lépés: Kód
- 6. lépés: A kódolás előtt…
- 7. lépés: Soros kommunikáció
Videó: Rács mozgatása végtelen tükörrel: 7 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
ezek a videók videót és mozgó videót készítenek.
Meg akartuk mutatni a lengő teret mozgó rácsokon és az Infinity Mirroron keresztül, hogy hatékonyabban mutassuk meg a térérzetet.
Munkánk két akrillemezből áll, az elülsőből és a hátlapokból, amelyek megmutatják az embereknek a közvetlen keverés módját, és a hátlapok 25 lépésmotorral rendelkeznek, amelyek ténylegesen mozognak.
A munka egy előlapból áll, amely a tér csillogását fogja mutatni, egy fapálcikából, amely a középső mozgást hajtja végre, a rudak vezetőjéből és egy palánkból, amely 25 lépcsős motoron keresztül hoz létre mozgást.
A 25 lépcsős motorokhoz csatlakoztatott rács 25 csúcsa különböző mintákat hoz létre a beállított kódolási értékeknek megfelelően. Ezenkívül a vállalat ki akarta maximalizálni a teret az átlátszó akril és az első féltükör-fólia, a hátsó és a fekete világítású Infinity tükör kombinálásával. Különböző animációs minták készülnek a hullámok és a hullámok alapján, amelyek a víz hullámai alapján készülnek.
Kellékek
Kellékek
1. UV LED 12V 840cm
2. Gumi fehér 12mm 750cm
3. Arduino mega 2560 x2
4. Motor meghajtó x25
5. Léptetőmotor x25
6. Bipoláris kábel x25 léptetőmotorhoz
7. Fa henger x25
8. PVC (9 mm) x25
9. Tavasz x 25
10. akril 700mm*700mm
11. Féltükör film 1524mm * 1M
12. Horgászzsinór
13. Tápellátás 12V 12,5A, 12V 75A
14. vezérműtárcsa (3D nyomtatás) x 25
1. lépés: Tervezzen nagy keretrendszert
Amikor elkezdjük, meg kell terveznünk és meg kell rajzolnunk egy nagy keretet. így elkészítettünk egy pdf fájlt az akril általános kerethez és az időzítő tárcsa stl fájljához (amit a lépcsőmotor elé helyeztünk a szélfonalhoz, amely képes egy közepes fa rudat húzni).
az akril általános kerettel és az időzítő tárcsával először stl fájlt és 3D nyomtatást kell készítenünk.
2. lépés: Hardver készítése
1. doboz
1. Helyezzen 2T akril feketét (1. sz.) A padlóra, és rögzítse 5T akril fekete oldalát (2. sz.) A tetejére. Adjon hozzá 5T akril fekete rácsot (3. sz.), És rögzítse akril kötéssel.
doboz2
2. Permetezzen vizet az akril átlátszó lemezre, és tegye félig tükörfóliára. A fél tükör tekercsel egy kártyát, hogy ne bugyborékoljon. Rögzítse az oldalt (2) és az akril fóliát (1). Ne rögzítse oldalirányban a kombinált akril kiemelkedést és az akril tükröket (1. sz.). Ideiglenesen rögzítse szalaggal (a horgászzsinór javításához vagy a belső tér felújításához).
3. lépés: Rács készítése
1. Egy faoszlop mérete 12 mm. Fúrjon lyukat a végén, hogy a horgászzsinór beléphessen.
2. Rögzítse az akrillemezeket a perforált faoszlop másik oldalához ragasztóval.
3. Tegyen egy gumiszalagot egy faoszlop hátsó részébe, és tegyen bele egy rugót.
4. Általános forma
4. lépés:
1. Arduino Mega 2560 tűs csatlakozási szám
2. ossza az áramot két részre
3. Léptető motor és motor meghajtó áramkör
4. Két Arduino mega2560 csatlakozik a TX és RX keresztezésével a soros kommunikációhoz.
5. lépés: Kód
#befoglalni
StepperMulti léptető (200, 2, 3, 4, 5); // léptetőmotorok számozása StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = millis (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); uint32_t set_timer5 = millis (); uint32_t set_timer6 = millis (); uint32_t set_timer7 = millis (); uint32_t set_timer8 = millis (); uint32_t set_timer9 = millis (); uint32_t set_timer10 = millis (); int count = 0; int init_set_speed
üres beállítás ()
Sorozat1.kezdet (115200); // soros kommunikáció Serial.begin (9600); stepper.setSpeed (init_set_speed); stepper2.setSpeed (init_set_speed); stepper3.setSpeed (init_set_speed); stepper4.setSpeed (init_set_speed); stepper5.setSpeed (init_set_speed); stepper6.setSpeed (init_set_speed); stepper7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); stepper11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SEBESSÉG = 200; // motor speed void loop () {//////////////////////////////////////////////////////////////////////////////-) - set_timer1 <6000) {// A 13 léptetőmotor 1500 és 6000 másodperc között mozog. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // ((SPEED) fordított forgást jelent} else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); szám = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (SEBESSÉG); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } ////////////////////////////////////////////////////////////////// vagy millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } else if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } else if (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } else if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } else if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } else if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); } ///////////////////////////////////////////////// stepper.moveStep (); stepper2.moveStep (); stepper3.moveStep (); stepper4.moveStep (); stepper5.moveStep (); stepper6.moveStep (); stepper7.moveStep (); stepper8.moveStep (); stepper9.moveStep (); stepper10.moveStep (); stepper11.moveStep (); stepper12.moveStep (); stepper13.moveStep (); }
frist kódolás
és..
#befoglalni
StepperMulti léptető (200, 2, 3, 4, 5); StepperMulti stepper2 (200, 6, 7, 8, 9); StepperMulti stepper3 (200, 10, 11, 12, 13); StepperMulti stepper4 (200, A0, A1, A2, A3); StepperMulti stepper5 (200, A4, A5, A6, A7); StepperMulti stepper6 (200, 22, 23, 24, 25); StepperMulti stepper7 (200, 26, 27, 28, 29); StepperMulti stepper8 (200, 30, 31, 32, 33); StepperMulti stepper9 (200, 34, 35, 36, 37); StepperMulti stepper10 (200, 38, 39, 40, 41); StepperMulti stepper11 (200, 42, 43, 44, 45); StepperMulti stepper12 (200, 46, 47, 48, 49); StepperMulti stepper13 (200, 50, 51, 52, 53); uint32_t on_timer = millis (); uint32_t set_timer1 = millis (); uint32_t set_timer2 = millis (); uint32_t set_timer3 = millis (); uint32_t set_timer4 = millis (); uint32_t set_timer5 = millis (); uint32_t set_timer6 = millis (); uint32_t set_timer7 = millis (); uint32_t set_timer8 = millis (); uint32_t set_timer9 = millis (); uint32_t set_timer10 = millis (); int count = 0; int init_set_speed = 10; void setup () Serial1.begin (115200); Sorozat.kezdet (9600); stepper.setSpeed (init_set_speed); stepper2.setSpeed (init_set_speed); stepper3.setSpeed (init_set_speed); stepper4.setSpeed (init_set_speed); stepper5.setSpeed (init_set_speed); stepper6.setSpeed (init_set_speed); stepper7.setSpeed (init_set_speed); stepper8.setSpeed (init_set_speed); stepper9.setSpeed (init_set_speed); stepper10.setSpeed (init_set_speed); stepper11.setSpeed (init_set_speed); stepper12.setSpeed (init_set_speed); stepper13.setSpeed (init_set_speed); } int SEBESSÉG = 200; void loop () {
/////////////////////////////////////
if (millis () - set_timer1 <6000) {if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); } else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); szám = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (SEBESSÉG); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper12.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper12.setStep (-SPEED); } else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); }} else {stepper7.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper12.setStep (0); } if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-SPEED); stepper6.setStep (SPEED); stepper7.setStep (SPEED); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (SPEED); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); }} else {stepper2.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper7.setStep (0); } ////////////////////////////////////////////////////////////////// vagy millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } else if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (SPEED); stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper5.setStep (SPEED); stepper6.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); } else if (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-SPEED); stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper5.setStep (-SPEED); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); } else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); }} else {stepper.setStep (0); stepper2.setStep (0); stepper3.setStep (0); stepper4.setStep (0); stepper5.setStep (0); stepper6.setStep (0); stepper10.setStep (0); stepper11.setStep (0); } if (millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } else if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } else if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (SPEED); stepper8.setStep (SPEED); stepper9.setStep (SPEED); stepper10.setStep (SPEED); stepper11.setStep (SPEED); stepper12.setStep (SPEED); stepper13.setStep (SPEED); } else if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-SPEED); stepper12.setStep (-SPEED); stepper13.setStep (-SPEED); } else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); }} else {stepper3.setStep (0); stepper4.setStep (0); stepper8.setStep (0); stepper9.setStep (0); stepper10.setStep (0); stepper11.setStep (0); stepper12.setStep (0); stepper13.setStep (0); } ///////////////////////////////////////////////// stepper.moveStep (); stepper2.moveStep (); stepper3.moveStep (); stepper4.moveStep (); stepper5.moveStep (); stepper6.moveStep (); stepper7.moveStep (); stepper8.moveStep (); stepper9.moveStep (); stepper10.moveStep (); stepper11.moveStep (); stepper12.moveStep (); stepper13.moveStep (); }
második kódolás
6. lépés: A kódolás előtt…
Hozzá kell adnia egy új könyvtárat a lépésmotorokhoz.
Tehát bemegy erre az oldalra, és letölt egy új könyvtárat.
blog.danggun.net/2092
7. lépés: Soros kommunikáció
Két arduino mega-távközlést kell létrehoznia.
if (start_count == 0) {
int Data = Sorozat1.olvasás (); Serial.println (Adatok); if (Adatok == 0x01) {start_count = 1; }
Először is szükségünk van erre a kódolásra a Maine Arduino Mega -n.
if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); szám = 1; }
Arduino Mega, aki soros kommunikációt fogad, szüksége van erre a kódolásra.
Az első kódolás ott van elhelyezve, ahol a második aduino -nak mozognia kell.
Ajánlott:
Készítsen végtelen tükör órát: 15 lépés (képekkel)
Készíts egy végtelen tükör órát: Egy korábbi projektemben építettem egy végtelen tükröt, ahol a végső célom az volt, hogy órává váljon. (Készíts egy színes végtelen tükröt) Az építés után nem folytattam ezt, mert bár jól nézett ki, volt néhány dolog a
Könnyű végtelen tükör Arduino Gemma és Neo Pixelekkel: 8 lépés (képekkel)
Könnyű végtelen tükör Arduino Gemma & NeoPixels -el: Íme! Nézzen mélyen a varázslatos és megtévesztően egyszerű végtelen tükörbe! A LED -ek egyetlen csíkja befelé ragyog a tükör szendvicsen, hogy a végtelen tükröződés hatását keltse. Ez a projekt az Arduin bevezetőm készségeit és technikáit fogja alkalmazni
Végtelen tükör LCD és IR érzékelővel: 5 lépés
Végtelen tükör LCD és IR érzékelővel: Ez a projekt megmutatja, hogyan készíthet végtelen tükröt. Az alapkoncepció az, hogy a tükrön lévő LED -ek olyan fényt hoznak létre, amely visszapattan a hátsó tükörről az első tükörre, ahol némi fény kiszökik, hogy beláthassuk a belsőt és így tovább
Motor mozgatása szemkövetéssel: 8 lépés
Mozgó motor szemkövetéssel: Jelenleg a szemkövető érzékelők gyakoribbak különböző területeken, de kereskedelmi szempontból inkább az interaktív játékokról ismertek. Ez az oktatóanyag nem állítja, hogy kifejlesztené az érzékelőket, mivel nagyon bonyolult, és egyre gyakoribb használata miatt a
LED hang reaktív végtelen kocka vég táblázat: 6 lépés (képekkel)
LED hang reaktív végtelen kocka vég táblázat: Wow! Hú! Milyen klassz hatás! - Ezek azok a dolgok, amelyeket az útmutató kitöltésekor hallhat. Egy teljesen elgondolkodtató, gyönyörű, hipnotikus, hangreaktív végtelen kocka. Ez egy szerényen fejlett forrasztási projekt, körülbelül 12 emberre volt szükségem