| Main > Project Announcements |
| Hoping for a neato idea. |
| (1/5) > >> |
| Zakk:
So finally got around to completely restoring my 20+ year old cabinet. Almost everything except the marquee light and the control interface board had failed. PC, monitor, and of course the at-the-time NOS wico grommets. So replaced everything, re-taught myself how it all works, and bob's yer uncle. But since I was renovating the basement, and I had some beefy 5" beams looking for a use, I built it a little cubby. With the 9 foot ceilings, it leaves a fair bit of space over the cab. So wondering if anyone has any ideas what might look cool in there. The basement is being redone with a 70's/80's "ski chalet motif" since it's in a log house in the mountains (and the basement had been done in drywall and drop ceilings). My thought had been to suspend a fully lit model of the Enterprise A... but I also considered a lit shelf which might showcase some rare games/consoles. I don't really just want to hang a lighted beer sign or something (I've got those elsewhere), but just keep staring at it and thinking something really cool could go there. I'd put a lit star destroyer, but with the current state of star wars (and star trek isn't much better to be honest), I thought maybe even one of the new TOS enterprise models... Anyone have a better idea for this spot? I can build anything, but coming up with the ideas is meh. I also don't want to use AI when I have access to this wonderful pool of retro nostalgia minds. Area is 35"W 23"H and 25" D. It's funny, the cabinet is massive, but building a TALL enclosure makes it look kind of tiny. |
| Zakk:
I'm in the shallow end of the pool it seems. 8) No matter! I think I've arrived at a solution. I plan to box out the area with another piece of 5x5. I'll then line the inside with acrylic smoked mirror. I'll install a hook in the center at the top, then I can hang/display almost anything in there. I think the first item will be a hypercube, which honestly should look pretty kickass, like a 21st century disco ball. Then I can rotate in a lighted 1/350 enterprise, and maybe even a space 1999 eagle (loved the look of those ships as a kid). it also leaves the option of adding in say a lighted "nintendo" sign or something like that in there, just to keep it fresh. I also think a very slow motor to turn the cube would be in order. Since there will be a power cord, maybe an arduino control so that it only rotates so far before reversing, would also allow me to adjust the speed I think. |
| PL1:
--- Quote from: Zakk on June 15, 2024, 11:59:32 am ---I also think a very slow motor to turn the cube would be in order. Since there will be a power cord, maybe an arduino control so that it only rotates so far before reversing, would also allow me to adjust the speed I think. --- End quote --- An inexpensive 28BYJ-48 might work for small models, but it isn't very powerful. - Near the bottom of that post, there's a link to an Arduino sketch to do back-and-forth rotation with that motor. If you need more power, a NEMA 17 stepper motor (commonly used in 3d printers) would be a good choice for this application. https://forum.arcadecontrols.com/index.php/topic,161063.0.html Since the motor will be rotating slowly, an A4988 driver is probably quiet enough. - If the motor is too noisy, upgrade to a TMC2130 V1.1 that has the same basic pinout as the A4988. (handy for swapping it on a breadboard while testing) To power the motor and Arduino, you will need 5v, 12v, and ground. - You can get them from either an arcade-style power supply or a Molex in your computer. - The DPST is a power switch for the 5v and 12v. Ground is always connected. - On the 5v input to the Arduino, use a 10uF electrolytic capacitor for filtering. - On the 12v input to the driver, use a 100uF electrolytic capacitor for filtering. The stepper motor connects to breadboard j24 thru j28. For your setup, you might not need the limit switches on breadboard b5 and b6, but they would be a very good way to avoid getting the power cable for the hypercube all twisted up. - To make it bulletproof, you can use hall-effect sensors for the main limit switches and add an emergency microswitch limit switch in case the motor is too close to the hall-effect switch when power is applied. The reverse only triggers on the high/low transition. If the magnet starts too close to the switch, it will be below logic high so it won't reverse. I have an updated sketch with the emergency switch feature if you're interested. To do the back-and-forth motion without limit switches, you'll need to modify the Arduino sketch from the other thread. - In the main program loop, you can use one for/next loop to go x steps in one direction, then a second for/next loop to go in the other direction. Scott |
| Zakk:
Oh that's cool. I'm trying to figure out the size/weight right now. I'm trying to figure out if the 15" or the 10" cube would look better in the space. I don't know how well the cube will project onto the surrounding mirror, or if I'll have to also add supplemental lighting, but that should just be trial and error. I got the cross beam installed today, I'm going to build a mockup of 'the cube' to see if the 15" is too big for the space, or if the 10" is too small. I'll fabricate a solid hanging system, likely out of tube steel, so that I can hang pretty much anything in there. Mirror panels already ordered. I think it could look really neat. Thanks for the tips, I'll check out going exactly that route since almost all items will have to have powered lighting of some sort. **edit. I stepped it up a bit. Now on 3 sides I planned to put in mirror sheets, with the cube being in the center, but hey, why not take advantage of the space behind the mirrors in the enclosure.... I think if I make infinity mirrors in the 3 walls surrounding the infinity mirror cube (which is essentially what it is), I can probably either make it +infinity neat, or just make it a real mess that overloads the senses. I'll likely start with directional mirror acrylic on the 3 sides, then MAYBE add in mirror panels and RGB leds behind it, and maybe even do the top of the enclosure, depending on how neat the effect is... Also from the mockup looks like the 10" cube will actually have a better effect than the 15", which has a point-to-point radius of 25" which is pretty much the entire space. The $ savings on teh smaller cube can go to the extra lighting and the controller.... |
| PL1:
--- Quote from: Zakk on June 16, 2024, 11:32:42 am ---almost all items will have to have powered lighting of some sort. --- End quote --- Then you'll definitely want the version with an emergency switch. Before you connect the stepper motor to the driver, you need to adjust Vref so the driver provides enough current to move the motor but not so much that it damages it. - This "MechDriverAdjustment" sketch will work with either the A4988 or TMC2130 driver. (TMC2130 reads Vref from a different location) --- Code: ---// Adjustment sketch for A4988 driver board installed on stepper motor mech control board. /* Sketch sets direction and step pins to constant high so you have time to adjust Vref on the driver. 1. Without stepper motor attached, adjust Vref. (Initial safe setting) - Read voltage off metal top of potentiometer on driver. 2. Power off. 3. Attach stepper motor with jumpers, multimeter set to amps in series with coil 1. 4. Power on. 5. Adjust Vref to control current output of driver. (Final accurate setting) */ // Adapted from https://dronebotworkshop.com/stepper-motor-hall-effect/ // Define connections #define DIR 8 // Arduino pin that connects to A4988 driver board DIR pin. #define STEP 9 // Arduino pin that connects to A4988 driver board STEP pin. void setup() { // Setup the stepper controller pins as Outputs and set the pins to HIGH pinMode(DIR,OUTPUT); pinMode(STEP,OUTPUT); digitalWrite(DIR,HIGH); digitalWrite(STEP,HIGH); } void loop() { } --- End code --- Once you have Vref properly adjusted, load this "MechHallSwitchesInterrupt" sketch on an Arduino Pro Micro. - You'll need to greatly increase the variable "pd" from 180 to 4000(?) on line 22 to slow it way down. *** Test your setup to ensure that the variables on lines 23 and 26 that control the first direction of travel and the limit switch direction changes are correct. The emergency switch must be in the first direction of travel. *** --- Code: ---// Stepper motor mechanism controlled by an Arduino Pro Micro, a stepper motor driver board, two Hall Effect directional limit switches, and an emergency reverse microswitch. // Stepper motor goes one direction until it triggers one Hall Effect switch and goes the other direction until it triggers the other Hall Effect switch and goes the original direction again. // The emergency reverse switch is there in case power is shut off when the magnet is too close to the Hall Effect sensor on the first travel direction end. // When power is reapplied, the voltage on that input starts below logic HIGH so the Arduino doesn't see a falling transition from HIGH to LOW. // *** Test your setup to ensure that the variables on lines 23 and 26 that control the first direction of travel and the limit switch direction changes are correct. *** // Adapted from https://dronebotworkshop.com/stepper-motor-hall-effect/ // Define connections #define SWITCH_A 2 // Arduino pin that connects to the limit switch closest to the stepper motor. #define SWITCH_B 3 // Arduino pin that connects to the limit switch farthest from the stepper motor. #define SWITCH_E 7 // Arduino pin that connects to the emergency reverse switch. #define DIR 8 // Arduino pin that connects to the stepper driver board DIR pin. #define STEP 9 // Arduino pin that connects to the stepper driver board STEP pin. // Variables int pd = 180; // Pulse duration period in microseconds. Minimum value is 180 for TMC2130 in Halfstep, 85 in Qtrstep, 45? in 16 μsteps. boolean setdir = HIGH; // Set first travel direction to HIGH or LOW. *** Verify that the first travel direction is correct for your setup. *** boolean emergswdir = !setdir; // Set emergency reverse switch direction to opposite of setdir. boolean nearswdir = HIGH; // Set near switch new direction to either HIGH or LOW. *** Verify that the direction changes triggered by the limit switches are correct for your setup. *** boolean farswdir = !nearswdir; // Set far switch new direction to opposite of nearswdir. // Near limit switch interrupt handler. void limit_a (){ setdir = nearswdir; // Change motor travel direction. delayMicroseconds(pd); Serial.println("Go away from the motor"); // Print direction and carriage return. } // End near limit switch interrupt handler. // Far limit switch interrupt handler. void limit_b (){ setdir = farswdir; // Change motor travel direction. Serial.println("Go toward the motor"); // Print direction and carriage return. } // End far limit switch interrupt handler. // Emergency reverse switch interrupt handler. void limit_e (){ setdir = emergswdir; // Change motor travel direction. Serial.println("Emergency reverse"); // Print direction and carriage return. } // End emergency reverse switch interrupt handler. void setup() { // Start program setup. // Set the stepper controller pins as outputs. pinMode(DIR,OUTPUT); pinMode(STEP,OUTPUT); // Set the switches as inputs. Use INPUT_PULLUP for an internal pullup resistor. Use INPUT if your Arduino requires an external pullup resistor. pinMode(SWITCH_A, INPUT); pinMode(SWITCH_B, INPUT); pinMode(SWITCH_E, INPUT_PULLUP); // Attach interrupt pins to handlers. attachInterrupt(digitalPinToInterrupt(SWITCH_A), limit_a, FALLING); attachInterrupt(digitalPinToInterrupt(SWITCH_B), limit_b, FALLING); attachInterrupt(digitalPinToInterrupt(SWITCH_E), limit_e, FALLING); } // End program setup. void loop() { // Main program loop. // Turn the motor one step in the current direction. digitalWrite(DIR,setdir); digitalWrite(STEP,HIGH); delayMicroseconds(pd); digitalWrite(STEP,LOW); delayMicroseconds(pd); // Print step, direction (0 or 1), and carriage return. Serial.print("Step "); Serial.println(setdir); } // End main program loop. --- End code --- Scott |
| Navigation |
| Message Index |
| Next page |