Πίνακας περιεχομένων:

Κινούμενο πλέγμα με καθρέφτη άπειρου: 7 βήματα
Κινούμενο πλέγμα με καθρέφτη άπειρου: 7 βήματα

Βίντεο: Κινούμενο πλέγμα με καθρέφτη άπειρου: 7 βήματα

Βίντεο: Κινούμενο πλέγμα με καθρέφτη άπειρου: 7 βήματα
Βίντεο: Ο Terrence Deacon αποκαλύπτει την κρυφή σύνδεση: Συνείδηση & Εντροπία 2024, Ιούλιος
Anonim
Image
Image

αυτά τα βίντεο κάνουν βίντεο και συγκινούν βίντεο.

Θέλαμε να δείξουμε τον ταλαντευόμενο χώρο μέσα από κινούμενα πλέγματα και το Infinity Mirror για να δείξουμε την αίσθηση του χώρου πιο αποτελεσματικά.

Το έργο μας αποτελείται από δύο ακρυλικές πλάκες, την μπροστινή και την πλάτη, οι οποίες δείχνουν στους ανθρώπους τον τρόπο με τον οποίο ανακινούνται άμεσα και οι πλάκες έχουν κινητήρες 25 βημάτων που παράγουν κίνηση.

Το έργο αποτελείται από έναν μπροστινό πίνακα που θα δείχνει τις λάμψεις του χώρου, ένα ξύλινο ραβδί που εκτελεί τη μεσαία κίνηση, έναν οδηγό για τις ράβδους και μια πλάκα που δημιουργεί κίνηση μέσω κινητήρων 25 βημάτων.

Οι 25 κορυφές του δικτύου που συνδέονται με τους κινητήρες 25 βημάτων παράγουν διαφορετικά μοτίβα σύμφωνα με τις καθορισμένες τιμές κωδικοποίησης. Επιπλέον, η εταιρεία ήθελε να μεγιστοποιήσει το χώρο συνδυάζοντας διαφανές ακρυλικό με μεμβράνη μπροστινού μισού καθρέφτη, πίσω καθρέφτη και καθρέφτη Infinity με μαύρο φωτισμό. Διάφορα μοτίβα κινούμενων εικόνων γίνονται με βάση τα κύματα και τα ντραμπς που γίνονται με βάση τα κύματα του νερού.

Προμήθειες

Προμήθειες

1. UV LED 12V 840cm

2. Λάστιχο λευκό 12mm 750cm

3. Arduino mega 2560 x2

4. Πρόγραμμα οδήγησης κινητήρα x25

5. Βηματικό μοτέρ x25

6. Διπολικό καλώδιο για βηματικό μοτέρ x25

7. Ξύλινος κύλινδρος x25

8.pvc (9mm) x25

9. Άνοιξη x 25

10. ακρυλικό 700mm*700mm

11. Μισή ταινία καθρέφτη 1524mm * 1M

12. Γραμμή αλιείας

13. Ισχύς 12V 12.5A, 12V 75A

14. τροχαλία χρονισμού (τρισδιάστατη εκτύπωση) x 25

Βήμα 1: Σχεδιάστε ένα μεγάλο πλαίσιο

Προγραμματίστε ένα μεγάλο πλαίσιο
Προγραμματίστε ένα μεγάλο πλαίσιο

Όταν ξεκινάμε, πρέπει να σχεδιάσουμε και να σχεδιάσουμε ένα μεγάλο πλαίσιο. Έτσι, ετοιμάσαμε ένα αρχείο pdf για ακρυλικό συνολικό πλαίσιο και τροχαλία χρονισμού stl αρχείο (τι τα βάζουμε μπροστά από το μοτέρ βημάτων για νήμα ανέμου που μπορεί να τραβήξει μια ράβδο μεσαίου ξύλου).

με το ακρυλικό συνολικό πλαίσιο και την τροχαλία χρονισμού, πρέπει πρώτα να κάνουμε stl αρχείο και τρισδιάστατη εκτύπωση.

Βήμα 2: Κατασκευή υλικού

Κατασκευή υλικού
Κατασκευή υλικού
Κατασκευή υλικού
Κατασκευή υλικού
Κατασκευή υλικού
Κατασκευή υλικού

κουτί 1

1. Τοποθετήστε 2T ακρυλικό μαύρο (Νο. 1) στο πάτωμα και τοποθετήστε 5T ακρυλική μαύρη πλευρά (Νο. 2) από πάνω. Προσθέστε 5Τ ακρυλικό μαύρο πλέγμα (Νο. 3) και στερεώστε το χρησιμοποιώντας ακρυλικό δεσμό.

κουτί 2

2. Ραντίστε νερό σε ακρυλικό διαφανές πιάτο και πάνω με μεμβράνη ημι-καθρέφτη. Ένας μισός καθρέφτης τυλίγει μια κάρτα για να μην φουσκώσει. Συνδέστε την πλευρά (2) και την ακρυλική διαφάνεια (1). Μην στερεώνετε τη συνδυασμένη ακρυλική προεξοχή και τους ακρυλικούς καθρέφτες (Νο. 1) πλευρικά. Διορθώστε το προσωρινά με ταινία (για επισκευή από τη γραμμή αλιείας ή ανακαίνιση του εσωτερικού).

Βήμα 3: Δημιουργία πλέγματος

Κάνοντας πλέγμα
Κάνοντας πλέγμα
Κάνοντας πλέγμα
Κάνοντας πλέγμα
Κάνοντας πλέγμα
Κάνοντας πλέγμα

1. Μια ξύλινη στήλη έχει μέγεθος 12mm. Τρυπήστε μια τρύπα στο τέλος για να επιτρέψετε την είσοδο της αλιευτικής γραμμής.

2. Συνδέστε ακρυλικές πλάκες στην άλλη πλευρά μιας διάτρητης ξύλινης στήλης χρησιμοποιώντας κόλλα.

3. Βάλτε ένα λαστιχάκι στο πίσω μέρος μιας ξύλινης κολόνας και βάλτε ένα ελατήριο σε αυτό.

4. Συνολικό σχήμα

Βήμα 4:

Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα
Εικόνα

1. Αριθμός σύνδεσης Arduino Mega 2560 Pin

2. διαιρέστε την ηλεκτρική ενέργεια σε δύο μέρη

3. Κύκλωμα βηματικού κινητήρα και οδηγού κινητήρα

4. Δύο mega2560 Arduino συνδέονται διασταυρώνοντας TX και RX για σειριακή επικοινωνία.

Βήμα 5: Κωδικός

#περιλαμβάνω

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 count = 0; int init_set_speed

void setup ()

Serial1.begin (115200); // σειριακή επικοινωνία 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 SPEED = 200; // βρόχος κενό ταχύτητας κινητήρα () {///////////////////////////////////// (millis () - set_timer1 <6000) {// Stepper motor 13 κινείται μεταξύ 1500 και 6000 δευτερολέπτων. <if (millis () - on_timer <1500) {stepper13.setStep (SPEED); } else if (millis () - on_timer <3000) {stepper13.setStep (-SPEED); // (- SPEED) σημαίνει αντίστροφη περιστροφή} αλλιώς αν (millis () - on_timer <4500) {stepper13.setStep (SPEED); } else if (millis () - on_timer 1000) {Serial1.write (0x01); μέτρηση = 1; }} //////////////////////// αν (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setStep (ΤΑΧΥΤΗΤΑ); 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); } /////////////////////////////////////////////// αν (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 κωδικοποίηση

και..

#περιλαμβάνω

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 count = 0; int init_set_speed = 10; void setup () Serial1.begin (115200); 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 SPEED = 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); μέτρηση = 1; }} //////////////////////// αν (millis () - set_timer2 1000) {if (millis () - on_timer <2500) {stepper7.setSte ㄴ p (SPEED); 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); } /////////////////////////////////////////////// αν (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 (); }

δεύτερη κωδικοποίηση

Βήμα 6: Πριν από την κωδικοποίηση…

Πριν από την κωδικοποίηση…
Πριν από την κωδικοποίηση…

Θα πρέπει να προσθέσετε μια νέα βιβλιοθήκη που σχετίζεται με βηματικούς κινητήρες.

Μπαίνετε λοιπόν σε αυτόν τον ιστότοπο και κατεβάζετε μια νέα βιβλιοθήκη.

blog.danggun.net/2092

Βήμα 7: Σειριακή επικοινωνία

Πρέπει να δημιουργήσετε δύο τηλεπικοινωνίες arduino.

εάν (start_count == 0) {

int Δεδομένα = Serial1.read (); Serial.println (Δεδομένα); εάν (Δεδομένα == 0x01) {start_count = 1; }

Πρώτα απ 'όλα, χρειαζόμαστε αυτήν την κωδικοποίηση στο Maine Arduino Mega.

if (count == 0) {if (millis () - set_timer1> 1000) {Serial1.write (0x01); μέτρηση = 1; }

Ο Arduino Mega, ο οποίος λαμβάνει σειριακές επικοινωνίες, χρειάζεται αυτήν την κωδικοποίηση.

Η πρώτη κωδικοποίηση τοποθετείται εκεί που πρέπει να μετακινηθεί το δεύτερο aduino.

Συνιστάται: