Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
need videod teevad videot ja liigutavad videot.
Tahtsime kõikuvat ruumi näidata liikuva võre ja lõpmatuspeegli kaudu, et näidata ruumitunnet tõhusamalt.
Meie töö koosneb kahest akrüülplaadist, esiosast ja tagaplaatidest, mis näitavad inimestele, kuidas nad otseselt segavad, ja tagaplaatidel on 25 astmelist mootorit, mis tegelikult toodavad liikumist.
Teos koosneb esipaneelist, mis näitab ruumi sära, puidust pulgast, mis sooritab keskmist liikumist, juhtvarraste juhendist ja tagaplaadist, mis loob liikumise läbi 25 astmelise mootori.
25 sammuga mootoriga ühendatud võrgu 25 piiki tekitavad vastavalt määratud kodeerimisväärtustele erinevaid mustreid. Lisaks soovis ettevõte ruumi maksimeerida, ühendades läbipaistva akrüüli esipoolpeeglikile, tagapeegli ja musta valgusega Infinity peegliga. Erinevad animatsioonimustrid on tehtud lainete ja drabside põhjal, mis on tehtud veelainete põhjal.
Tarvikud
Tarvikud
1. UV LED 12V 840cm
2. Kumm valge 12mm 750cm
3. Arduino mega 2560 x2
4. Mootori juht x25
5. samm -mootor x25
6. Bipolaarne kaabel samm -mootorile x25
7. Puidust silinder x25
8. tk (9 mm) x25
9. Kevad x 25
10. akrüül 700mm*700mm
11. Poolpeegelkile 1524mm * 1M
12. Õngenöör
13. Toide 12V 12,5A, 12V 75A
14. hammasrihm (3D print) x 25
Samm: planeerige suur raamistik
Alustades peame planeerima ja joonistama suure raamistiku. Niisiis, me valmistasime akrüülist üldraami ja ajastusrulli stl-faili jaoks ette pdf-faili (mille me panime tuuleniidi jaoks astmemootori ette, mis võib tõmmata keskmise puidust varda).
akrüülist üldraami ja ajastusrulliga peame kõigepealt tegema stl -faili ja 3D -printimise.
Samm: riistvara valmistamine
kast 1
1. Asetage 2T akrüülmust (nr 1) põrandale ja kinnitage 5T akrüülmust külg (nr 2) peale. Lisage 5T akrüülmust võre (nr 3) ja kinnitage see, kasutades akrüülühendust.
kast 2
2. Piserdage vett läbipaistvale akrüülplaadile ja katke poolpeegelkilega. Poolpeegel veeretab kaarti, et see ei mullitaks. Kinnitage külg (2) ja akrüülkile (1). Ärge kinnitage kombineeritud akrüülist eendit ja akrüülpeegleid (nr 1) külgsuunas. Kinnitage see ajutiselt teibiga (õngenööri parandamiseks või sisemuse renoveerimiseks).
3. samm: võrgu loomine
1. Puidust samba suurus on 12 mm. Puurige lõpus auk õngenööri sisenemiseks.
2. Kinnitage akrüülplaadid perforeeritud puidust samba teisele küljele liimi abil.
3. Pange kummipael puidust samba tagaküljele ja pange sinna vedru.
4. Üldine kuju
4. samm:
1. Arduino Mega 2560 pin ühenduse number
2. jagage elekter kaheks osaks
3. Astmemootor ja mootori juhtahel
4. Kaks Arduino mega2560 -d on ühendatud TX -i ja RX -i ristamisega jadaühenduseks.
Samm: kood
#kaasake
StepperMulti stepper (200, 2, 3, 4, 5); // samm -mootorite nummerdamine 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 loend = 0; int init_set_speed
tühine seadistus ()
Seriaal1.algus (115200); // jadaühendus 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 KIIRUS = 200; // mootori pöörlemiskiiruse tühjusaar () {////////////////////////////////////// kui et (millis () - set_timer1 <6000) {// Sammumootor 13 liigub 1500 ja 6000 sekundi vahel. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) tähendab tagasipööramist} else if (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); loend = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper12.setStep (KIIRUS); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-KIIRUS); stepper9.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper12.setStep (KIIRUS); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-KIIRUS); stepper9.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); } 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 (-KIIRUS); stepper6.setStep (KIIRUS); stepper7.setStep (KIIRUS); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (KIIRUS); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (KIIRUS); stepper7.setStep (KIIRUS); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (KIIRUS); 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); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (KIIRUS); stepper3.setStep (KIIRUS); stepper4.setStep (KIIRUS); stepper5.setStep (KIIRUS); stepper6.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); } else if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-KIIRUS); stepper3.setStep (-KIIRUS); stepper4.setStep (-SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); } else if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (KIIRUS); stepper3.setStep (KIIRUS); stepper4.setStep (KIIRUS); stepper5.setStep (KIIRUS); stepper6.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); } else if (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-KIIRUS); stepper3.setStep (-KIIRUS); stepper4.setStep (-SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); } 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 (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); stepper12.setStep (KIIRUS); stepper13.setStep (KIIRUS); } else if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-KIIRUS); stepper9.setStep (-KIIRUS); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); stepper13.setStep (-KIIRUS); } else if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); stepper12.setStep (KIIRUS); stepper13.setStep (KIIRUS); } else if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-KIIRUS); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); stepper13.setStep (-KIIRUS); } 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 kodeerimine
ja..
#kaasake
StepperMulti stepper (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 loend = 0; int init_set_speed = 10; void setup () Serial1.begin (115200); Seriaalne algus (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 KIIRUS = 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); loendus = 1; }} //////////////////////// if (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper12.setStep (KIIRUS); } else if (millis () - on_timer <4000) {stepper7.setStep (-SPEED); stepper8.setStep (-KIIRUS); stepper9.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); } else if (millis () - on_timer <5500) {stepper7.setStep (SPEED); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper12.setStep (KIIRUS); } else if (millis () - on_timer <7000) {stepper7.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); } 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 (-KIIRUS); stepper6.setStep (KIIRUS); stepper7.setStep (KIIRUS); } else if (millis () - on_timer <4000) {stepper2.setStep (-SPEED); stepper5.setStep (KIIRUS); stepper6.setStep (-SPEED); stepper7.setStep (-SPEED); } else if (millis () - on_timer <5500) {stepper2.setStep (SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (KIIRUS); stepper7.setStep (KIIRUS); } else if (millis () - on_timer <7000) {stepper2.setStep (-SPEED); stepper5.setStep (KIIRUS); 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); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// millis () - set_timer3 2000) {if (millis () - on_timer <3500) {stepper.setStep (SPEED); stepper2.setStep (KIIRUS); stepper3.setStep (KIIRUS); stepper4.setStep (KIIRUS); stepper5.setStep (KIIRUS); stepper6.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); } else if (millis () - on_timer <5000) {stepper.setStep (-SPEED); stepper2.setStep (-KIIRUS); stepper3.setStep (-KIIRUS); stepper4.setStep (-SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); } else if (millis () - on_timer <6500) {stepper.setStep (SPEED); stepper2.setStep (KIIRUS); stepper3.setStep (KIIRUS); stepper4.setStep (KIIRUS); stepper5.setStep (KIIRUS); stepper6.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); } else if (millis () - on_timer <8000) {stepper.setStep (-SPEED); stepper2.setStep (-KIIRUS); stepper3.setStep (-KIIRUS); stepper4.setStep (-SPEED); stepper5.setStep (-KIIRUS); stepper6.setStep (-SPEED); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); } 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 (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); stepper12.setStep (KIIRUS); stepper13.setStep (KIIRUS); } else if (millis () - on_timer <5000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-KIIRUS); stepper9.setStep (-KIIRUS); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); stepper13.setStep (-KIIRUS); } else if (millis () - on_timer <6500) {stepper3.setStep (SPEED); stepper4.setStep (KIIRUS); stepper8.setStep (KIIRUS); stepper9.setStep (KIIRUS); stepper10.setStep (KIIRUS); stepper11.setStep (KIIRUS); stepper12.setStep (KIIRUS); stepper13.setStep (KIIRUS); } else if (millis () - on_timer <8000) {stepper3.setStep (-SPEED); stepper4.setStep (-SPEED); stepper8.setStep (-SPEED); stepper9.setStep (-KIIRUS); stepper10.setStep (-SPEED); stepper11.setStep (-KIIRUS); stepper12.setStep (-KIIRUS); stepper13.setStep (-KIIRUS); } 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 (); }
teine kodeerimine
Samm: enne kodeerimist…
Peaksite lisama uue samm -mootoritega seotud kogu.
Nii et minge sellele saidile ja laadige alla uus raamatukogu.
blog.danggun.net/2092
7. samm: jadaühendus
Peate tegema kaks arduino mega-telekommunikatsiooni.
kui (algusarv == 0) {
int Andmed = Serial1.read (); Serial.println (andmed); if (Andmed == 0x01) {start_count = 1; }
Esiteks vajame seda kodeerimist Maine Arduino Megal.
if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); loendus = 1; }
Seda kodeerimist vajab Arduino Mega, kes võtab vastu jadaühendusi.
Esimene kodeering paigutatakse sinna, kus teine aduino peab liikuma.
Soovitan:
Mootori liigutamine silmade jälgimisega: 8 sammu
Mootori liigutamine silmade jälgimisega: praegu on silma jälgimise andurid erinevates piirkondades tavalisemad, kuid kaubanduslikult on need rohkem tuntud interaktiivsete mängude poolest. See õpetus ei pretendeeri andurite väljatöötamisele, kuna see on väga keeruline ja selle üha tavalisema kasutamise tõttu
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Vaateratta liigutamine: 10 sammu (piltidega)
Liikuv vaateratas: see on minu kujundatud lihtne liikuv vaateratas, mis võiks olla lastele ja täiskasvanutele lõbus õppimiskogemus! Kasvatades olin alati uudishimulik, kuidas liikuvad mänguasjad seest välja näevad. Seetõttu kasutasin tahtlikult selget akrüüli, nii et