1. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  2. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  3. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Wooden 2 DOF Sim with integrated G-Seat, Fans, and Vibration

Discussion in 'DIY Motion Simulator Projects' started by MarkusB, Nov 17, 2015.

  1. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    Yes, Motion Dynamics is 10 min drive away.
    Ok, good stuff that you are looking for motors.
    • Agree Agree x 1
  2. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    Much more complicated? How? got me curious
  3. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Well, at least you need to deal with 2 boards that need to be wired and with software that needs to be loaded onto the Arduino board.
    In contrast to this, JRKs are ready to go after a little bit of soldering.
  4. bsft

    bsft

    Balance:
    Coins
    Ratings:
    +0 / 0 / -0
    oh yes, of course, the JRKS are almost "plug and play", that and I am code hopeless, I could not even get my head around a game dash code, let alone a motion written code.
  5. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Hi again,

    several months have past since my last post, but now I finally have something to show. Due to my permanent lack of spare time it is just a tiny step towards my motion simulator, but I still want to share it with you right now.

    Instead of having every detail already planned, I want to experiment with my construction, for example by changing the positions of the motors, size of levers etc. and then see what configuration feels best.

    For that reason, I have started with the creation of building blocks that I can arrange in different ways.

    One of the finished blocks is the pivot, and the other is one of two motor „modules“ with connected lever on one side and potentiometer on the other. I don’t have any experience with welding, and so I just used 21mm birch plywood, screws, and thick steel brackets. My impression is that the pieces are quite robust and stable. At least I hope so, because otherwise it will probably hurt later on.

    Yesterday I quickly connected the motor with my JRK and moved the lever via the configuration utility. It is really a plug & play thing and worked at once. I made a short video of the test run (see below). As you see, I can simply disconnect the potentiometer from the motor for manually adjusting the lever position. I think this may be of some value later on.

    Of course the configuration settings are not perfect: When making quick movements the lever turns too far and then returns a bit. Besides, the potentiometer gear should be a bit smaller for increasing the lever’s movement angle. I will fix this later. For now I am really glad that it works.

    About the motors: I use these ones as recommended by several experienced builders:
    https://www.motiondynamics.com.au/worm-drive-motor-12v-24v-200w-180-rpm-20nm-torque.html
    • Like Like x 1
  6. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Here are some pictures of the motor module:
    MotorModule_01.jpg MotorModule_02.jpg MotorModule_03.jpg MotorModule_04.jpg

    This is the pivot:
    Pivot_01.jpg Pivot_02.jpg

    And here is the first test run of the motor:
    • Like Like x 7
  7. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Since I will probably need some time until I have the next part of my simulator ready, I would like to entertain you with pictures of my previous project. I just found them on an old hard drive.

    I did it in 2012, and it worked without any motors. So it is actually kind of off-topic here because it has nothing to do with the xsimulator software. This is also the reason why I don't think it is worth an own thread.

    What I did was mounting an old kitchen chair onto a wodden platform, connecting the platform to ropes and hooking it to the ceiling. When sitting on the seat, I was able to roll and pitch the platform by simply shifting my weight. This muscle-triggered movement was transferred to my PC where it was translated into joystick movements that in turn controlled the plane within my flight sim software.
    First_Sim_Project_01.jpg First_Sim_Project_02.jpg

    How was that done? Well, I installed a gamepad app on my iPhone. This app worked via iPhone movements and was connected to the PC via its own wireless network. Now I just had to mount the iPhone onto the platform, and voila: shifting my body weight while sitting on the seat moved the iPhone which in turn controlled the plane.
    First_Sim_Project_03.jpg

    This setup was extended with a TrackIR device.
    First_Sim_Project_04.jpg

    This whole setup did somehow improve the immersion, but in fact it wasn't exciting enough to go on with the project.
    I hope that this will be different with the current approach, and I am really optimistic after reading the experiences in this community. :)
    • Creative Creative x 3
    • Like Like x 1
  8. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Hi again,

    since my Oculus Rift will probably not arrive before the end of June, I have some time left for finalizing the first version of my motion platform. This is the reason why I did not continue with building a second actuator like the first one, but instead spent some effort with building a linear actuator.

    The main reason is that I think that for flight and rollercoaster simulations a larger movement would be beneficial. Besides, I may want to add "heave" at a later point in time.

    The pictures show you what I did until today: The actuator is ready so far, except the wiring. And except performance and load testing!! I really hope that it will work. If it does, I will build a second one and make some pictures during the build process for sharing them with you. If it does not work, I will go back to my previous type of actuator for the first version of my platform.

    Actuator_01.jpg Actuator_02.jpg Actuator_03.jpg Actuator_04.jpg Actuator_05.jpg

    Edit (or better: Added):
    It was late yesterday when I wrote this post, but it should never be too late for mentioning sources of inspiration. So here are the projects from which I got most of the information for the actuator:
    • http://bffsimulation.com/linear-act.php: This incredible guy has lots of fabulous projects documented on his site and even offers building plans for a price that is more than fair. I did not use the plan, but I took a huge amount of information from his descriptions and photos. On his site I also learned how important the end switches are. And the site drove my decision to go for the chain drive approach.
    • http://www.simprojects.nl/diy_motion_platform_v.htm: On this site you see the design of a phantastic actuator that is driven by a tooth belt. Also a video is available that shows every detail of the construction.
    • http://www.xsimulator.net/community/threads/seattimes-6dof-dc-build.6106/: An absolutely professional build, this one using a threaded rod.
    • I browsed many other sites and also threads within this forum.
    • Like Like x 2
    Last edited: Apr 1, 2016
  9. cgodwin

    cgodwin Active Member Gold Contributor

    Joined:
    Sep 18, 2015
    Messages:
    220
    Occupation:
    Engineer
    Location:
    Eugene, Oregon
    Balance:
    2,438Coins
    Ratings:
    +275 / 2 / -0
    My Motion Simulator:
    2DOF, DC motor, JRK, Joyrider
    Really nice DIY actuator! I like the use of the limit switches and the chain drive. Is that a 10 turn pot for the position feedback? What kind of speed and force are you expecting to get?
  10. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Thanks, @cgodwin!

    Yes, it is a 10 turn pot. I was looking for a pot with less turns, because the actuator only makes 2.5 turns from one end to the other, but the electronics store around the corner just had this one. It has 20kOhm, so that it comes to the recommended 5 kOhm for 2.5 turns. I could also change the gear ratio, but for testing purposes this setting should be fine.

    About the design: I got my main inspiration from http://bffsimulation.com/linear-act.php. On this site I also learned what can happen if you don't use limit switches.

    About speed and force:
    The data sheet of the motor says:
    • Rated torque: 20 Nm
    • Speed: 160-180 RPM dependent on load
    About the theoretical(!!!) force and speed:
    • Force: 20Nm correspond to a weight of 2kg with a lever length of 1m. So with a lever length of 2.75cm (half sprocket diameter) it should be 727 Nm which corresponds to a weight of about 70kg.
    • Speed: One turn corresponds to 3.14 x 5.5cm = 17.27cm. With 160 RPM, I get 46 cm/sec. (I need to add that I plan for a maximum linear movement of 30-35cm.)
    That's the theory, but I have no idea about the real life values. For example there is more friction than I expected when manually moving the rod, although I use bearings for all moving parts and I worked as precisely as possible (at least with my limited set of tools).

    And I have concerns that the moving rod may bend under load. It is a stainless steel tube with an outer diameter of 16mm and an inner diameter of 12mm, and inside is a 12mm threaded rod which I use for mounting purposes.
    • Informative Informative x 2
    • Like Like x 1
    Last edited: Apr 1, 2016
  11. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Hi again,

    my first linear actuator prototype is ready so far, and I have done some basic tests today.

    The wiring has become a little bit more complex than expected at the beginning.
    IMG_3460.JPG IMG_3462.JPG IMG_3451.JPG
    Here is the wiring schematics:
    Wiring.jpg

    The reason for this rather complex approach is that I wanted to solve the following tasks without uncoupling the motor axis:
    1. perform the JRK learning procedure
    2. release the motor in the case that one of the limit switches has been pressed
    These tasks can now be performed via this control panel:
    ActuatorControlPanel.jpg

    Here’s a brief explanation how it works:

    The two switches labeled (1) must be toggled synchronously. I would have prefered a single switch instead, but I needed 6 separate contacts and only had switches with 4 contacts available.
    The purpose of these switches is to toggle between manual mode and JRK mode.

    In manual mode (both switches (1) in lower position), I can control the motor manually: I simply select the direction via switch (2) and then turn the potentiometer (3) for powering the motor. See this video for illustration:


    This manual mode is primarily meant for facilitating the JRK learning procedure, which is demonstrated in this video:


    In manual mode, the „up“ movement is automatically stopped by the upper limit switch. But even when the upper limit switch is pressed, I can still move the motor back down, and vice versa.

    In JRK mode (both switches (1) in upper position), the motor movement is controlled by the connected JRK board, as shown in this video:


    Now both limit switches are active. That means, if the motor exceeds the allowed movement range, it stops automatically.

    Once one of the limit switches is pressed, I can release the motor again by pressing the release button (4). This button is hopefully also useful if the simulator is in a resting position in which gravity has lowered the actuator, so that the lower limit switch is pressed. In this case, I can switch on the simulation and press the „release button“, which should bring the actuator in its neutral position.

    This final video shows, how the „release button“ works:


    About my next steps: Actually I planned to do some load and performance testing and in case of success build a second linear actuator. However, I changed my plan: For now I will discontinue the linear approach and return to my first actuator build (see several posts above). I will do some little modifications for allowing a longer lever, and then I will build my first 2 DOF motion sim based on these simpler actuators.

    So long for today,
    Markus
    • Like Like x 2
    • Creative Creative x 1
    Last edited: Mar 13, 2017
  12. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Finally, today was the day on which my simulator did its first (unmanned) movements, linked with No Limits 2 Rollercoaster.
    I did a very simple axis configuration with just roll and pitch.

    What I don't understand is the following:
    Initially both motors were in their middle position. When testing roll and pitch with the Simtools Game Engine, the movements seem good.
    Then I started NLR2, and at the very moment on which the coaster started rolling, the left motor moved considerable downwards. There was neither pitch nor roll at this moment, and so I dont understand this.
    The same effect occurs with different coasters. And the same effect occurs when I configure sway & surge instead of roll & pitch.
    Only when exiting a track via the Esc key, the motors move back to their initial positions.

    I am using the latest Simtools plug-in and the current steam-based version of NLR2

    Does anybody know a possible cause for this effect? Any help is greatly apprechiated.

    Thanks and best regards,
    Markus
    • Like Like x 1
    Last edited: Jul 2, 2016
  13. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    14,986
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    110,549Coins
    Ratings:
    +8,958 / 43 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Can you please post pictures of your settings.
  14. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Here are screenshots of my Game Engine settings:
    AxisAssignments.jpg Inrterface1.jpg Inrterface2.jpg

    And here are the settings within the JRK Configuration Utility:

    Right motor:
    JrkUtil_Right_Motor_Input.jpg JrkUtil_Right_Motor_Feedback.jpg JrkUtil_Right_Motor_PID.jpg JrkUtil_Right_Motor_Motor.jpg
    Left motor:
    JrkUtil_Left_Motor_Input.jpg JrkUtil_Left_Motor_Feedback.jpg JrkUtil_Left_Motor_PID.jpg JrkUtil_Left_Motor_Motor.jpg

    Or are there any other settings that I have missed?

    Thanks,
    Markus
    • Informative Informative x 1
    Last edited: Jul 3, 2016
  15. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    14,986
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    110,549Coins
    Ratings:
    +8,958 / 43 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    With your JRKs you are getting a 'Pid Period Exceeded' error as the PID Period is too low, you want it at 20, my Integral is 2000 and I check the box to reset it.

    Also check out the video tutorial on setting your PID, as you Proportional and Derivative Coefficient values could likely use some fine tuning: https://www.xsimulator.net/community/faq/practical-examples-video-tutorial-to-jrk-pid-tuning.225/

    In SimTools you have 180% in total allocated for Axis Assignments, which is a bit too high, aim for 100% or just a bit over: https://www.xsimulator.net/community/faq/axis-assignment-percentage-totals.120/

    You have roll and sway set the same way in Axis Assignment, when the should be opposite to each other, that will give you very odd behavior.

    In your Interface Settings change your BitsPerSec to 9600 and you can drop <221> from the interface output.

    You really should work with one force/axis at a time when developing the motion profile, it takes time and can be frustrating, but it is worth the effort: https://www.xsimulator.net/community/faq/steps-to-create-a-motion-profile.228/
  16. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    @noorbeast: Thank you so much for your help and detailed information!

    I will follow all pieces of your advice and post the results. The next time I will be able to spend some time with the simulator will be in about 2 weeks. Then I will also add some photos, and if it works also a video.

    Best regards,
    Markus
    • Like Like x 2
  17. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Hi All,

    it's time for a status update.

    Today I assembled my seat mover. Below are some photos.

    Here are my 3 JRKs. Only 2 of them are in use at the moment. I plan to use the third one for adding a fan that produces an airstream.
    IMG_3861.JPG IMG_3862.JPG

    As recommended by the experts, I applied heat sinks to the main chip and mounted a fan above the boards.
    IMG_3863.JPG

    The 1000 Watt power supply is located below the JRKs.
    IMG_3869.JPG

    Here is a picture of the lever. I made it rather long and with several holes for some experiments, because originally I planned a shoulder mount. I changed my mind as you will see below.
    IMG_3864.JPG

    The pot is on the opposite side, similar to the pictures of my first prototype that I posted some time ago.
    IMG_3865.JPG

    This is the universal joint, mounted to the baseplate and ready to hold the seat plate.
    IMG_3866.JPG

    IMG_3870.JPG

    Seat plate mounted:
    IMG_3871.JPG

    The rods connecting the levers with the seat plate:
    IMG_3874.JPG

    And finally: The entire rig:
    IMG_3879.JPG

    The whole construction is a bit too high, so that I need a rather high footrest. The reason is that I wanted the option for long levers at the motors that can make a full turn without hitting the baseplate. These long levers seemed reasonable for me especially when thinking about a shoulder mount.
    Now I mounted the rods to the back of the seat, and I will probably have to drill a new hole into the levers for making them even shorter. At the moment the length is 6cm, and I have the impression that the motors are sometimes overloaded when I am seated.

    After some PID tuning and experimenting with the axis assignment, I took a seat and made my first virtual, motion-enhanced rollercoaster ride with No Limits 2. I will post a video soon.
    • Like Like x 1
    • Informative Informative x 1
    Last edited: Jul 18, 2016
  18. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Here is a video of an unmanned No Limits 2 rollercoaster ride.

    There seems to be a delay in the motor movements, which I will try to reduce by further PID tuning.
    By the way: @noorbeast: Your PID explanations are great and very helpful. Thanks for your effort and for pointing me to this thread.
    And @Avenga76: Also your video is phantastic. Thanks!

    @noorbeast: As you recommended, I configured single axis at first and tested them separately.
    Rolling works rather good in my opinion, but surge behaves really strange.

    Here is what I observed: When applying surge as the only force, the seat moves considerably backward when the coaster enters the ascent with the chain drive. But actually at this time there should not be any surge accelertion. There is only a positive pitch movement. Then, when entering the highest point of the track, i. e. the point at which the chain drive ends, the seat moves forward. Also at this moment there should not be any change in surge force, but only a negative pitch movement.
    Does anyone have an explanation for this? Maybe the No Limits plugin mixes surge and pitch in some way?

    Best regards,
    Markus
    • Informative Informative x 1
    • Useful Useful x 1
  19. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    14,986
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    110,549Coins
    Ratings:
    +8,958 / 43 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    I would not use NL2 to develop the base axis assignments, it is fun but not very accurate. Use Live For Speed instead and come back to creating a motion profile for NL2 once the base axis assignments have been sorted.

    I doubt you will need the super long lever, my guess would be that a CTC of 50mm or so will likely suit.
    • Agree Agree x 1
  20. MarkusB

    MarkusB Active Member Gold Contributor

    Joined:
    Jun 30, 2015
    Messages:
    453
    Location:
    Germany
    Balance:
    3,374Coins
    Ratings:
    +436 / 1 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, Arduino, Motion platform
    Ok, I will try this.

    I already have the rod in a hole which is 6 cm away from the lever axis. Since the motors seem to be overloaded (they sometimes don't react on the JRK output signal when I am in the seat), I will shorten the length to 4 cm.