Announcement

Collapse
No announcement yet.

New Project - Arduino Turntable for Polar Measurements

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • New Project - Arduino Turntable for Polar Measurements

    Click image for larger version

Name:	TT.jpg
Views:	1
Size:	103.7 KB
ID:	1390039

    Work in progress - will provide details as I go. The basic rundown:

    23" diameter platform
    NEMA 17 motor with 1.8 degree steps driving a 50T GT-2 pinion gear, which in turn rotates the table via a 450 tooth belt. This works out to 50 steps = 10 degrees.

    Going to control the motor with an Arduino Uno and the Adafruit motor driver. Hopefully this driver is powerful enough to power a sufficiently beefy motor, but the gear reduction is so great that I'm not too worried about torque. I could probably use a cheaper microcontroller and a cheaper motor driver but I'm learning this stuff so a documented product is needed.

    Central bearing will be flanged ball bearings pressed into the top assembly. These don't really take much load. The weight of the speaker is supported by linear transfer bearings, the kind you see on those outfeed stands you have for your tablesaw. 6x 110# rating should be sufficient.

    Operating should be simple - aiming to have a plastic box with a switch next to my computer, with a power input providing power to the motor driver and arduino. Single switch progresses turntable by 5 degrees.

    With a little more work, perhaps a hall effect sensor or magnetic reed switch, another button could return the table back to 0.

    German speaker nerds designed a turntable which integrated with ARTA for one-button polar measurements. That's a bit ambitious for me.

    All parts CNC cut out of 1/2" and 1/4" mdf.

    I have no idea what I'm doing but this is turning out to be a fun project. Anyone with experience in arduino, please chime in.

  • #2
    A Lazy Susan bearing might work well.

    Will you integrate software control of the signal and data recording as well? You might automate the entire process, just short of a robot, to place, connect, run your test loop, then disconnect and remove your drivers from the turntable.

    You shouldn't need a Hall sensor or reed switch, for a closed loop, stepper motors are usually very accurate.

    This should be a good project. I look forward to seeing your progress, and how it all works out.
    Last edited by TN Allen; 10-09-2018, 07:29 AM.

    Comment


    • #3
      Great project! I'll be watching your progress as I know just enough about Arduino to get in over my head quickly on the coding side.
      Co-conspirator in the development of the "CR Gnarly Fidelity Reduction Unit" - Registered Trademark, Patent Pending.

      Comment


      • #4
        Originally posted by TN Allen View Post
        A Lazy Susan bearing might work well.

        Will you integrate software control of the signal and data recording as well? You might automate the entire process, just short of a robot, to place, connect, run your test loop, then disconnect and remove your drivers from the turntable.

        You shouldn't need a Hall sensor or reed switch, for a closed loop, stepper motors are usually very accurate.

        This should be a good project. I look forward to seeing your progress, and how it all works out.
        My only concern with the stepper motor is that if it drops steps, inaccuracies can get compounded. I need to build this thing and put some weight on it before I can tell if that's going to be a problem.

        Regarding control, there is an android/iOS app called Blynk which allows you to create a GUI for Arduino which runs on your phone and communicates via bluetooth. Might be a fun way to run this.

        First step, however, is to get the motor running in arduino, then build the platform and see how well it positions. If all that works, I'll work on whatever interface makes sense.
        Apps for iOs and Android to connect Arduino, Raspberry Pi and similar hardware. Build a beautiful drag-and-drop user interface for your project in less than 5 minutes!

        Comment


        • #5
          You might integrate the entire process using R-Pi or Tinker Board, provided you can run ARTA on one of the many OS. Tinker Board has very good audio output, either S/PDIF or analog. There are motor driver PCBs for R-Pi and Tinker Board. I think I recall correctly that I had students who used an R-Pi to control an Arduino. I think they used the Windows OS for R-Pi so they could use the Arduino GUI to write compile and upload code. You shouldn't have difficulty with dropped steps, unless the driver board or code are faulty.

          Comment


          • #6
            Originally posted by TN Allen View Post
            You might integrate the entire process using R-Pi or Tinker Board, provided you can run ARTA on one of the many OS. Tinker Board has very good audio output, either S/PDIF or analog. There are motor driver PCBs for R-Pi and Tinker Board. I think I recall correctly that I had students who used an R-Pi to control an Arduino. I think they used the Windows OS for R-Pi so they could use the Arduino GUI to write compile and upload code. You shouldn't have difficulty with dropped steps, unless the driver board or code are faulty.
            If I did pc integration I'd just use a PC; arta really requires a keyboard and mouse so you might as well just operate from a laptop. I have 0 coding experience besides some basic scripting so integrating with req or arta is beyond my abilities at present.

            Regarding the stepper motor, the one I got for this project is 3.5v 1a and 18 in/oz holding torque. I think that should be good enough to rotate a table at 9x gear reduction but who knows. The Arduino allows the speed to ramp up and down which should help dropped steps if the table momentum is enough to push the motor ahead at the end of a movement.

            Comment


            • #7
              Originally posted by civit View Post

              If I did pc integration I'd just use a PC; arta really requires a keyboard and mouse so you might as well just operate from a laptop. I have 0 coding experience besides some basic scripting so integrating with req or arta is beyond my abilities at present.

              Regarding the stepper motor, the one I got for this project is 3.5v 1a and 18 in/oz holding torque. I think that should be good enough to rotate a table at 9x gear reduction but who knows. The Arduino allows the speed to ramp up and down which should help dropped steps if the table momentum is enough to push the motor ahead at the end of a movement.
              I am maybe a half a step ahead of you with regard to programming. I know just enough to understand of basic formatting and libraries needed for an Arduino sketch. Judging by the motorized camera slider that I built last year, those steppers can stop & start fairly quickly. It's probably a good idea to ramp the speed up & down, not only for position accuracy, but also to avoid too much stress & wear on your belt. My project wasn't that complex, so I have to ramp the speed with a pot on the controller.

              FWIW - I used an EasyDriver board on my project, mostly due to size. You can set those up for fractional step rotation, but I have no idea how useful or accurate that might be in your type of project.
               
              Co-conspirator in the development of the "CR Gnarly Fidelity Reduction Unit" - Registered Trademark, Patent Pending.

              Comment


              • #8
                Originally posted by tom_s View Post
                FWIW - I used an EasyDriver board on my project, mostly due to size. You can set those up for fractional step rotation, but I have no idea how useful or accurate that might be in your type of project.
                Yeah I saw the accelstepper library and saw some people playing around with it on youtube - seems like ramping the speed up and down will be key for rotating a big heavy table. My concern with microstepping is that you're between detents of the stepper and I believe holding torque is less.

                Using a 200 step/revolution motor, a 50 tooth pinion and a 450 tooth belt I actually get 10 degree rotation with a whole number of steps (forget the math but I think it's like 50 steps for 10 degrees).

                Interestingly I don't plan on using the belt as a belt - I'm going to try to slip it around a big circle of mdf with the gears on the belt facing out, essentially creating a huge 450T gear. We will see if that's a bad idea or not, but if the circle is cut precisely and a little oversized I think it will work.

                I'm sure I'll be spending the next week learning how to turn an LED on and off in arduino but I will post pictures as I go.

                Comment


                • #9
                  I've played around with Arduinos on a couple of projects - if you hit some snags, just post here, and I'll do my best to help you.
                  I did find on a simple "blink LED" project that Chinese breadboards quality can vary a lot! I couldn't get something simple to work
                  for several hours, until I trashed the bad breadboard.
                  If you have ever done any programming, you probably know the values of comments and debug statements.
                  Say you have a stepper function:
                  Motor_Control(pin, "on or off)

                  Inside that function, I'd always have a couple of debug statements:
                  if "on or off" == 1:
                  // turn motor on
                  println("motor should be on now"

                  etc.

                  I think I hear a difference - wow, it's amazing!" Ethan Winer: audio myths
                  "As God is my witness I'll never be without a good pair of speakers!" Scarlett O'Hara

                  High value, high quality RS150/TB28-537SH bookshelf - TARGAS NLA!
                  SB13/Vifa BC25SC06 MTM DCR Galeons-SB13-MTM
                  My Voxel min sub Yet-another-Voxel-build

                  Tangband W6-sub

                  Comment


                  • #10
                    Originally posted by civit View Post

                    Yeah I saw the accelstepper library and saw some people playing around with it on youtube - seems like ramping the speed up and down will be key for rotating a big heavy table. My concern with microstepping is that you're between detents of the stepper and I believe holding torque is less.

                    Using a 200 step/revolution motor, a 50 tooth pinion and a 450 tooth belt I actually get 10 degree rotation with a whole number of steps (forget the math but I think it's like 50 steps for 10 degrees).

                    Interestingly I don't plan on using the belt as a belt - I'm going to try to slip it around a big circle of mdf with the gears on the belt facing out, essentially creating a huge 450T gear. We will see if that's a bad idea or not, but if the circle is cut precisely and a little oversized I think it will work.

                    I'm sure I'll be spending the next week learning how to turn an LED on and off in arduino but I will post pictures as I go.
                    That sounds like a solid plan, using the mdf circle as a gear. You get a better gear ratio, more torque, and you won't have to worry about the belt slipping off!

                    I didn't even think about loss of torque when microstepping. That might explain why my slider won't move my carriage with the camera on it unless everything is fairly level.
                    Co-conspirator in the development of the "CR Gnarly Fidelity Reduction Unit" - Registered Trademark, Patent Pending.

                    Comment


                    • #11
                      Thanks for the input everyone. I've been updating the design and think it could work.

                      I'm going to play with the arduino and motors until I feel like I know what I'm doing.

                      Two other methods of control occurred to me:

                      1. Use a motor to turn the platform, and use a hall effect sensor to sense small magnets recessed into the underside of the platform. Arduino program simply turns until the hall effect sensor picks up a new magnet, then stops. In this design, the # of steps is not controlling the rotation. Maybe there's a really slick way of using an optical sensor here?

                      EDIT: https://www.sparkfun.com/products/9299 optical interrupt switch

                      (I might recess a magnet into the underside for the home position anyway, or some other kind of mechanical stop. I'm sure there's a really ingenious way of doing this but I'm not sure what it is. )

                      2. Scrap the gears and moving parts and mount the platform to a big worm gearbox with 1:100 reduction or so. Simpler and possibly more robust.

                      Comment

                      Working...
                      X