1.5 meter Fully motorised DIY Arduino Camera slider with Pan Tilt & GOTO position memories

Поделиться
HTML-код
  • Опубликовано: 17 мар 2020
  • Send me a message if you want the arduino code and I will send it over to you.
  • ХоббиХобби

Комментарии • 121

  • @user-xu3ud4fl2e
    @user-xu3ud4fl2e 4 года назад +5

    About a year ago I was thinking about getting one of those small ones of these, but they're so expensive and very small like you said. I thought about making my own, but I'm not really very good with these sort of electronics, and the guides I found weren't good enough for me to follow either, so I just forgot about it. This video makes me want to make my own again. Very well done mate.

  • @markuren442
    @markuren442 3 года назад

    A great project to allow photographers to make a remote programmable dolly to take shots that would otherwise need the use of very expensive bits of equipment. The video was easy to follow and is extremely intuitive. Well done.👍🏻

  • @HootBuilds
    @HootBuilds 4 года назад +7

    One of the best DIY designed 3 axis camera sliders that I have seen to date.

    • @markusfuller
      @markusfuller  4 года назад

      Thank you very much.

    • @muhammadwaqasfarooq8321
      @muhammadwaqasfarooq8321 2 года назад

      @@markusfuller how can i add lcd if i use arduino mega and lcd like 20x4 or something hire like tft lcd

    • @markusfuller
      @markusfuller  2 года назад

      @@muhammadwaqasfarooq8321 Hello Muhammad . if you add an LCD or TFT display you will have to write new code into your arduino project telling it what you want to display on your device. there are a few interesting videos on youtube by other people where they have used displays with motorised cameras. also have you seen the videos from “Dronebot Workshop” as they have many videos about using motors and displays etc for arduino projects. best wishes

  • @mixolydian2010
    @mixolydian2010 3 года назад

    Brilliant and plenty of food for thought. You are very generous with your ideas. Hope to see you back with some more videos soon.

  • @kristiandawe85
    @kristiandawe85 4 года назад

    That is a beautiful work of art, and the fact no phone app is required to operate from a phone is all the more cool, good job Markus, can't wait for future videos, I love your channel and have been a fan for many years.

  • @abstral66
    @abstral66 4 года назад +3

    nice to see ya back markus!!

  • @samesong
    @samesong 4 года назад +4

    'All user serviceable parts inside'...
    LOVE IT! 😉

  • @TheRealStructurer
    @TheRealStructurer 3 года назад

    Thanks for sharing your work in such a detail. I'm mentally preparing myself for this kind of project and this helped a lot 👍🏻

  • @kcheg7957
    @kcheg7957 2 года назад

    Nicely done Marcus. Lots of food for thought there to adjust this to suit my potential applications for this type of unit.

  • @gnarlysoundscapes7210
    @gnarlysoundscapes7210 4 года назад +1

    Can't wait to see a teardown of that Moog One. ;-P
    Love the phone gag at the end.

  • @aspectcarl
    @aspectcarl 4 года назад

    Love it, I'm going to build one of these, thank you for the links and the information 👍

  • @clydesight
    @clydesight 4 года назад

    Another great and informative video! Thanks and I wish you well and good health!

  • @k.b.8077
    @k.b.8077 4 года назад

    This looks fantastic!

  • @akashpatilbrijcommunicatio9764
    @akashpatilbrijcommunicatio9764 2 года назад +1

    You are great man, Love from India...
    😊😊😊

  • @ATLaboratory
    @ATLaboratory 4 года назад +1

    Really great build!! :)

  • @DiscoverRajivVlogs
    @DiscoverRajivVlogs 3 года назад

    Wow, this is called a real tutorial... Most videos available they won't even explain how their code gonna work... Good job...👍👍 38:03 lol..😂

  • @themiddlecase
    @themiddlecase 3 года назад

    This is awesome! I'd love to take the design and tweak it for a super long travel, and control from something like an Xbox controller.

  • @AJB2K3
    @AJB2K3 3 года назад

    Wow home made?
    That is one pro looking slider. Nice work.

    • @markusfuller
      @markusfuller  3 года назад

      Thanks Adam. all the arduino code etc is on my website if ever you want to make one.

  • @charlieross-BRM
    @charlieross-BRM 3 года назад

    If there's an opportunity, I would really like to see closeups of how you assembled the mechanical parts from the gantry up to everything below the L brackets that do the rest of the motion. I mean how the parts of vertical shaft bearings, 60T pulley, pan stepper motor etc. are arranged and fastened. Mine is topped off with the 1/4-20 threads for a ball head to pan and that's sufficient for me. I'm trying to improve a kit I bought that is too weak in design and attachments. What I found on your website was the Arduino code but no assembly steps. Thanks.

  • @bobfrode
    @bobfrode 4 года назад +4

    missed your videos Markus :) Stay safe and maybe time for a Moog one video??? :)

  • @Sparklift
    @Sparklift 3 года назад

    Such a great video. Thanks

  • @MichaelMomany
    @MichaelMomany 4 года назад

    Nice project. I might give it a go. I would add a slip ring to the Pan so that I could get complete rotation.

    • @markusfuller
      @markusfuller  4 года назад

      Hi Michael. I was going to use one from a ptx camera but could not get it to mount very well. but a slip ring would be great for complete rotation :-)

    • @MichaelMomany
      @MichaelMomany 4 года назад

      @@markusfuller Great! Yes, slip rings are an odd animal to mount. I will need to take a closer look at your setup for the pan and see if I can come up with something.

  • @marekzawada6250
    @marekzawada6250 2 года назад +1

    Thanks for sharing your work in such a detail. I have read all the comments.
    I visited your site where I read the full documentation. But I have this question, is it possible to mount Nik....... coolpix P1000 which weighs almost 1.5 kg. Will your slider be able to handle it.

  • @AW_DIY_garage
    @AW_DIY_garage 3 года назад

    10 months later are you still using this? I am not new to making things but have been wanting to do a slider for a while this looks awesome and I might try it. Just wondering whether you eventually went to a smaller size? Or whether you still use it regularly

  • @liveavision
    @liveavision 3 года назад

    Hi Mark, Great job. Is it possible for you to put schematics of the project and PCB as well? I checked your beautiful website and couldn't find it in the section about XYZ slider.

  • @StudioBonn
    @StudioBonn 4 года назад

    Nicely done, 3 axis and a cool controller-design. I have made mine with separated external controllers, so I can use the pan on a tripod as a single solution... a little more flexibility, but I didn't build a tilt-function. Mhhh....

    • @markusfuller
      @markusfuller  4 года назад

      seperate the pan unnit for use on a tripod. thats a nice idea. 👍

  • @stream-cut
    @stream-cut 3 года назад

    you save my day Man...🙏👍👍

  • @salvatoresiragusa4184
    @salvatoresiragusa4184 3 года назад

    Congratulations beautiful project. When will you publish the wiring diagram?
    Thank you so much

  • @SCHAAFJOERG
    @SCHAAFJOERG 4 года назад

    Great! Thank you!

  • @godzil42
    @godzil42 3 года назад

    Nice Fantom!

  • @isaiayala2465
    @isaiayala2465 Год назад

    Great job! An LCD screen would’ve been nice. Maybe for the 2.0 version!

  • @CEmanified
    @CEmanified 4 года назад +7

    5:30 I see what you're getting at there.

  • @tiotube7578
    @tiotube7578 3 года назад

    So how can we interrupt it when we accidentally started the program with really small speed and we don’t want to wait 20 minutes

  • @mohanmony01
    @mohanmony01 2 года назад

    Hi Mark, this is wonderfully project. So I haven’t got that much idea about code but I try to make one like this. And I got little quick. Is that possible to Use WeMOs D1 board for this. ??? Thank you

  • @urielcontrerasvaldez8752
    @urielcontrerasvaldez8752 3 года назад +1

    Thanks this video is going to save me lot of time and mony ¡¡¡Thanks!!!

  • @sim2bil
    @sim2bil 3 года назад

    Hey great job.But i see some problems in your MOCO system,and i see it because i make same system a little bit different but overall design is same.So pan and tilt side is not very stable and i see a lot of vibration,the footage are smooth but shaky.And there is no acceleration and de acceleration(from start point and end point). But overall good job

  • @muhtarahma2966
    @muhtarahma2966 4 года назад

    Отличная работа! Только слайдер лишён езды по наклонной плоскости, так чтобы камера стояла по горизонтали...

  • @Phoenix_Photography_Scotland
    @Phoenix_Photography_Scotland Год назад

    Ace.... Curious on how you fixws the toothed belt to the gantry,,, got something similar,, but the space under the gantry is minimal ...

    • @markusfuller
      @markusfuller  Год назад +1

      I used a nut and bolt with the belt wrapped around it the cable tied. but yes youare quite right there us very minimal room under there to do this.

    • @Phoenix_Photography_Scotland
      @Phoenix_Photography_Scotland Год назад

      @@markusfuller many thanks, think i'll try your method. looked at a small piece of angle, but alas no room

  • @taichetv8066
    @taichetv8066 2 года назад

    I very interesting with your project but i don't know any thing about code and anduino. Can you help me to know how to code and connect these thing together as one ?

  • @TheRealSasquatch
    @TheRealSasquatch 4 года назад

    Instead of using end stops/switches could you use stepper motors with rotary encoders and count the rotational pulses, mounting the stepper motor/drive units on the gantry thus (apart from the power cables) making it track length independent? (edit maybe I should watch the whole video before commenting?)

    • @sootikins
      @sootikins 4 года назад

      Incremental encoder feedback systems still require homing to switches. That is, unless you're proposing to use multi-turn absolute encoders, which are incredibly expensive. Rotary incremental encoders and linear incremental scales are much more affordable but because they are incremental (simple pulse or quadrature) they need to be initialized to a "hard" reference point, else how would they know where they are counting from?

    • @TheRealSasquatch
      @TheRealSasquatch 4 года назад

      @@sootikins you can mount the end switches on the gantry as well - then set the initial starting point by either manually depressing an end switch or by sliding the gantry to one (or both) track ends and recording the rotational pulses. It would be a more complex system but would allow for track length independence.

    • @sootikins
      @sootikins 4 года назад

      @@TheRealSasquatch I agree but I thought we were talking about eliminating the switches completely. All I was saying is that incremental feedback designs need something to tell it positively "you are here".

    • @TheRealSasquatch
      @TheRealSasquatch 4 года назад

      Absolutely. I just try to think of simple solutions.

  • @kifahzaidan4505
    @kifahzaidan4505 4 месяца назад

    The best video ever for this kind of projects, please send me the code and the schematic diagram, please.

    • @markusfuller
      @markusfuller  3 месяца назад

      Arduino camera slider code
      /*
      stepper motor Rail Pan Tilt camera controller
      by Markus Fuller 2020
      using 1 Arduino UNO 3x nema17 stepper motors and 3x EasyDrivers from www.schmalzhaus.com
      Library - AccelStepper by Mike McCauley:
      www.airspayce.com/mikem/arduino/AccelStepper/index.html
      */
      #include
      #include
      #define PanX A0 // Pan X pin
      #define TiltY A1 // Tilt Y pin
      #define Rail A2 // Slider potentiometer
      #define inOutPot A3 // In and Out speed potentiometer
      #define PanStop 10 // to stop pan cable tangling
      #define Button 12 // Set Button
      #define EndStop 11
      #define RedLED 8 // RGB Led Red
      #define GreenLED 9 // RGB Led Green
      #define blueLED 13 // RGB Led blue
      // Set stepper motor pins on Arduino as type, Step, and Direction,
      AccelStepper stepper1(1, 7, 6);
      AccelStepper stepper2(1, 5, 4);
      AccelStepper stepper3(1, 3, 2);
      MultiStepper StepperControl;
      long gotoposition[3]; // stores the A and B position for every stepper motor
      int PanPos = 0;
      int TiltYPos = 0;
      int RailPos = 0;
      int currentSpeed = 100;
      int inOutSpeed = 100;
      int XInPoint = 0;
      int YInPoint = 0;
      int ZInPoint = 0;
      int XOutPoint = 0;
      int YOutPoint = 0;
      int ZOutPoint = 0;
      int InandOut = 0;
      void setup() {
      stepper1.setMaxSpeed(3000);
      stepper1.setSpeed(300);
      stepper2.setMaxSpeed(1500);
      stepper2.setSpeed(75);
      stepper3.setMaxSpeed(1500);
      stepper3.setSpeed(75);
      pinMode(PanStop, INPUT_PULLUP); //faultstop to help prevent pan cable tangling
      pinMode(Button, INPUT_PULLUP); //setswitch which is also activate button
      pinMode(EndStop, INPUT_PULLUP); //endstop microswitch
      pinMode(RedLED, OUTPUT); //red led
      pinMode(GreenLED, OUTPUT); //green led
      pinMode(blueLED, OUTPUT); //blue led
      StepperControl.addStepper(stepper1);
      StepperControl.addStepper(stepper2);
      StepperControl.addStepper(stepper3);
      // Move the slider to the Home position when first turned on
      while (digitalRead(EndStop) != 0) {
      stepper1.setSpeed(1500);
      stepper1.runSpeed();
      stepper1.setCurrentPosition(0); // When EndStop is activated this sets position as step 0
      }
      delay(30);
      // Moves back slightly from the rail endstop
      while (stepper1.currentPosition() != -1500) {
      stepper1.setSpeed(-1500);
      stepper1.run();
      // This section below for Pan centre control
      }
      // Moves the pan head anticlockwise until microswitch is activated
      while (digitalRead(PanStop) != 0) {
      stepper3.setSpeed(-400);
      stepper3.runSpeed();
      stepper3.setCurrentPosition(0); // When Pan is centred set position to 0 steps
      }
      delay(30);
      // Moves pan clockwise untilfacing forward, this may need to be changed depending on how many teeth between stepper and pan wheel
      while (stepper3.currentPosition() != 1070) {
      stepper3.setSpeed(400);
      stepper3.run();
      // End of section above
      digitalWrite(blueLED, HIGH); // blue led turns on
      }
      }
      void loop() {
      // this will cancel out the rail movement if you try and travel beyond safe limits
      while (digitalRead(EndStop) == 0 || stepper1.currentPosition() < -40500) {}
      if (digitalRead (Button) == 0) {
      delay(1000); // hold switch for 1 second to reset all values then LED turns Blue
      if (digitalRead (Button) == 0) {
      InandOut = 4;
      }
      switch (InandOut) {
      case 0: // Set the A position
      InandOut = 1;
      XInPoint = stepper1.currentPosition(); // Set the IN position for steppers 1
      YInPoint = stepper2.currentPosition(); // Set the IN position for steppers 2
      ZInPoint = stepper3.currentPosition(); // Set the IN position for steppers 3
      digitalWrite(blueLED, LOW); // MSF blue led goes out
      digitalWrite(RedLED, HIGH); // Light up inLed
      break;
      case 1: // Set the B position
      InandOut = 2;
      XOutPoint = stepper1.currentPosition(); // Set the B positions for steppers
      YOutPoint = stepper2.currentPosition();
      ZOutPoint = stepper3.currentPosition();
      digitalWrite(RedLED, LOW); // red Led goes off then Green Led Illuminates stating ready to run
      digitalWrite(GreenLED, HIGH);
      break;
      case 2: // Move to A position / go to next part case 3
      InandOut = 3;
      inOutSpeed = analogRead(inOutPot);
      // Place the A position into the Array
      gotoposition[0] = XInPoint;
      gotoposition[1] = YInPoint;
      gotoposition[2] = ZInPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 3: // Move to B position and returns go back to case 2 above
      InandOut = 2;
      inOutSpeed = analogRead(inOutPot);
      // Place the B position into the Array
      gotoposition[0] = XOutPoint;
      gotoposition[1] = YOutPoint;
      gotoposition[2] = ZOutPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 4: // If Set button is held longer than one second go back to the beginning case 0 above
      InandOut = 0;
      digitalWrite(RedLED, LOW);
      digitalWrite(GreenLED, LOW);
      digitalWrite(blueLED, HIGH);
      delay(1000);
      break;
      }
      }
      // PanX - Pan movement XPos
      PanPos = analogRead(PanX);
      // if Pan Pot is moved left, move stepper 2 pan anticlockwise
      if (PanPos > 600) {
      //stepper2.setSpeed(currentSpeed);
      PanPos = map(PanPos, 600, 1024, 0, 200);
      stepper2.setSpeed(PanPos); // Increase speed
      }
      // if PanPot is moved right, move stepper 2 pan clockwise
      else if (PanPos < 400) {
      //stepper2.setSpeed(-currentSpeed);
      PanPos = map(PanPos, 400, 0, 0, 200);
      stepper2.setSpeed(-PanPos); // Increase speed
      }
      // if PanPot is centred then there is no movement
      else {
      stepper2.setSpeed(0);
      }
      //Tilt Y - Tilt movement
      TiltYPos = analogRead(TiltY);
      if (TiltYPos > 600) {
      //stepper3.setSpeed(currentSpeed);
      TiltYPos = map(TiltYPos, 600, 1024, 0, 200);
      stepper3.setSpeed(TiltYPos); // Increase speed
      }
      else if (TiltYPos < 400) {
      //stepper3.setSpeed(-currentSpeed);
      TiltYPos = map(TiltYPos, 400, 0, 0, 200); // Try changing this to lower value to slow tilt stepper
      stepper3.setSpeed(-TiltYPos); // Increase speed
      // If TiltPot is centred then there is no movement
      }
      else {
      stepper3.setSpeed(0);
      }
      // RAIL potentiometer
      RailPos = analogRead(Rail);
      // If potentiometer is turned left then the Gantry moves towards the control unit
      if (RailPos > 600) {
      RailPos = map(RailPos, 600, 1024, 0, 3000);
      stepper1.setSpeed(-RailPos); // Increase speed
      }
      // If potentiometer is turned right then the Gantry moves away from the control unit
      else if (RailPos < 400 ) {
      RailPos = map(RailPos, 400, 0, 0, 3000);
      stepper1.setSpeed(RailPos); // Increase speed
      // If potentiometer is centred then there is no movement
      }
      else {
      stepper1.setSpeed(0);
      }
      // run the camera slider
      stepper1.runSpeed();
      stepper2.runSpeed();
      stepper3.runSpeed();
      }

  • @knarkis90
    @knarkis90 4 года назад

    very nice

  • @DorfyBoi
    @DorfyBoi 3 месяца назад

    The point A to B with different amounts of steps but starting and ending at same time is somwthing im really struggling with in the code.havent looked at your code yet

  • @ryu5603
    @ryu5603 4 года назад

    Hi. When is the new video coming up? I'm waiting.

  • @burprobrox9134
    @burprobrox9134 4 года назад +1

    Oh crap I miss you Mark

    • @burprobrox9134
      @burprobrox9134 4 года назад

      Moved, have yah?

    • @markusfuller
      @markusfuller  4 года назад

      @@burprobrox9134 No I'm still in the UK. I got that nice cosy Canada hoody years ago :-)

  • @denisk.4092
    @denisk.4092 Год назад

    Hey markus, thanks a lot for this video ! I would like to build this slider like you did. Unfortunately your website is closed and i dont think, iam able to write the sketch like you did. Is there a way that you could upload your sketch ? Thanks a lot !

    • @markusfuller
      @markusfuller  Год назад +1

      Hi Denis. send me a message on my email markusfuller at hotmail dot com and I will send the sketch back to your email address. best wishes from markus.

  • @RockyMountainSounds
    @RockyMountainSounds 3 года назад

    ....and he has a Quantum haphazzardly sitting against the wall like a Casio bahahahaha - fantastic!

  • @empireofjehovah7129
    @empireofjehovah7129 3 года назад

    Hello, Could you give me the arduino sketch needed for the following move program:
    Set speed to ?, Delay for ?secs, Move forward for ?secs, Pause for ?secs, Move forward to end.
    I dont know the language and cant do it.

    • @markusfuller
      @markusfuller  3 года назад

      Hello the complete sketch is on my website under completed projects. markusfuller.com/completed-projects

  • @mikeWDW
    @mikeWDW 3 года назад

    Anyone else have the issue of all lights/switches working as expected but the motors just don't fire up?

  • @sujilmanandhar
    @sujilmanandhar 2 года назад

    Hi Its great but i couldn't found valu of Potentiometer

    • @markusfuller
      @markusfuller  2 года назад

      Hello Sujit. I think I used 10K potentiometers in this project.

  • @trungtintran8583
    @trungtintran8583 4 года назад +3

    So sorry but the footage is not smooth enough (37:25 ).

  • @blobbenfinns
    @blobbenfinns 4 года назад

    I looked at your website, but I didn't find the code..:-(
    Not really sure where too look

    • @acusto_
      @acusto_ 4 года назад +1

      markusfuller.com/completed-projects

  • @TonyMueller
    @TonyMueller 3 года назад

    Is there a way in the code to make it continuously loop between A and B positions?

    • @markusfuller
      @markusfuller  3 года назад +1

      no but I think it would be easy enough to write it into the code. trouble is im still quite new to arduino programming.

    • @janschaloske7664
      @janschaloske7664 3 года назад

      I'm no programmer, but I solved it by adding a toggle switch and named it "BounceOn" and some goto cases in the switch case... not popular, but it's solving my problem :-)
      Add the moment I'm only using the Rail-part (1 axis) for placing a Cellphone, but the bounce code should work for all 3 axis.
      Remember to define the input before setup:
      #define BounceOn 4 // On = Bounce between A and B position continuously, Off = run to next position
      And add this in void setup():
      pinMode(BounceOn, INPUT_PULLUP); //On = Bounce between A and B position continuously, Off = run to next position
      The Bounce part of the code comes here:
      =======Start======================
      case 2: // Move to A position / go to next part case 3
      caseA: // Loop start, bouncing between A (In) and B (Out) positions
      InandOut = 3;
      inOutSpeed = analogRead(inOutPot);
      // Place the A position into the Array
      gotoposition[0] = XInPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      if (digitalRead(BounceOn) != 0)
      {
      goto caseB; // Goto case B, were bouncing loop starts
      }
      else
      {
      break;
      }
      case 3: // Move to B position and returns / go back to case 2 above
      caseB:
      InandOut = 2;
      inOutSpeed = analogRead(inOutPot);
      // Place the B position into the Array
      gotoposition[0] = XOutPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      if (digitalRead(BounceOn) != 0)
      {
      goto caseA; // Goto case A, were bouncing loop starts
      }
      else
      {
      break;
      }
      ==========End======================

  • @stuhumphreys4154
    @stuhumphreys4154 Год назад +1

    Argh! your website has closed down...mega sad! Does anyone out there still have a copy of the Arduino code?

  • @citygasbatteryriot964
    @citygasbatteryriot964 4 года назад

    All good. All good?

  • @genuinefreewilly5706
    @genuinefreewilly5706 4 года назад +1

    Markus where are you these days. I miss your channel

    • @markusfuller
      @markusfuller  4 года назад +3

      Hi William. my workroom no longer exists as an electronics repair room as I’m retiring so a lot of equipment has been passed onto other youtube electronics videomakers . RUclips has been a great journey for me but it has cost such a lot of time and money through cameras equipment and things bought to fix etc and I just cannot make the money back that I have put into it sadly. but it has been great fun and I hope to make some music video’s in the near future with the gear I have here. Thank you for being there :-)

  • @disassemble_everything
    @disassemble_everything 3 года назад

    Hey Marcus! I just discovered your channel and am bummed that you're retiring(but you definitely deserve it :p ), but saw that you had donated alot of stuff to other electronics RUclipsrs. I was wondering if you could point me towards them? I'm teaching myself everything electronics and repairing of synths and would love the referrals. Thanks for all the awesome content! Take care.

    • @markusfuller
      @markusfuller  3 года назад +1

      Hi Nick. theres so many great youtubers that i follow . Adamski.A has been making a great journey of designing and building a synthesizer. look mum no computer makes some really quirky and interesting synths. alex ball jas great knowledge of synths and does some great history films about certain synths. i could go on and on. theres so many.

    • @disassemble_everything
      @disassemble_everything 3 года назад

      @@markusfuller Look mum no computer is one of my faves! RUclips probably recommended me your channel based on me frequenting his channel now that I think of it, actually! I'll look into the other two you've suggested and let the algorithm steer me to others from there! Thanks for taking time to reply 😄

  • @COMARto
    @COMARto 3 года назад

    Pretty neat :) is the code for this available somewhere?

    • @markusfuller
      @markusfuller  3 года назад

      Hi yes its on my website markusfuller.com nest wishes :-)

  • @Xraller
    @Xraller 6 месяцев назад +1

    Your website isn’t up any more. Is the code on another web site?

    • @markusfuller
      @markusfuller  3 месяца назад

      Arduino camera slider code
      /*
      stepper motor Rail Pan Tilt camera controller
      by Markus Fuller 2020
      using 1 Arduino UNO 3x nema17 stepper motors and 3x EasyDrivers from www.schmalzhaus.com
      Library - AccelStepper by Mike McCauley:
      www.airspayce.com/mikem/arduino/AccelStepper/index.html
      */
      #include
      #include
      #define PanX A0 // Pan X pin
      #define TiltY A1 // Tilt Y pin
      #define Rail A2 // Slider potentiometer
      #define inOutPot A3 // In and Out speed potentiometer
      #define PanStop 10 // to stop pan cable tangling
      #define Button 12 // Set Button
      #define EndStop 11
      #define RedLED 8 // RGB Led Red
      #define GreenLED 9 // RGB Led Green
      #define blueLED 13 // RGB Led blue
      // Set stepper motor pins on Arduino as type, Step, and Direction,
      AccelStepper stepper1(1, 7, 6);
      AccelStepper stepper2(1, 5, 4);
      AccelStepper stepper3(1, 3, 2);
      MultiStepper StepperControl;
      long gotoposition[3]; // stores the A and B position for every stepper motor
      int PanPos = 0;
      int TiltYPos = 0;
      int RailPos = 0;
      int currentSpeed = 100;
      int inOutSpeed = 100;
      int XInPoint = 0;
      int YInPoint = 0;
      int ZInPoint = 0;
      int XOutPoint = 0;
      int YOutPoint = 0;
      int ZOutPoint = 0;
      int InandOut = 0;
      void setup() {
      stepper1.setMaxSpeed(3000);
      stepper1.setSpeed(300);
      stepper2.setMaxSpeed(1500);
      stepper2.setSpeed(75);
      stepper3.setMaxSpeed(1500);
      stepper3.setSpeed(75);
      pinMode(PanStop, INPUT_PULLUP); //faultstop to help prevent pan cable tangling
      pinMode(Button, INPUT_PULLUP); //setswitch which is also activate button
      pinMode(EndStop, INPUT_PULLUP); //endstop microswitch
      pinMode(RedLED, OUTPUT); //red led
      pinMode(GreenLED, OUTPUT); //green led
      pinMode(blueLED, OUTPUT); //blue led
      StepperControl.addStepper(stepper1);
      StepperControl.addStepper(stepper2);
      StepperControl.addStepper(stepper3);
      // Move the slider to the Home position when first turned on
      while (digitalRead(EndStop) != 0) {
      stepper1.setSpeed(1500);
      stepper1.runSpeed();
      stepper1.setCurrentPosition(0); // When EndStop is activated this sets position as step 0
      }
      delay(30);
      // Moves back slightly from the rail endstop
      while (stepper1.currentPosition() != -1500) {
      stepper1.setSpeed(-1500);
      stepper1.run();
      // This section below for Pan centre control
      }
      // Moves the pan head anticlockwise until microswitch is activated
      while (digitalRead(PanStop) != 0) {
      stepper3.setSpeed(-400);
      stepper3.runSpeed();
      stepper3.setCurrentPosition(0); // When Pan is centred set position to 0 steps
      }
      delay(30);
      // Moves pan clockwise untilfacing forward, this may need to be changed depending on how many teeth between stepper and pan wheel
      while (stepper3.currentPosition() != 1070) {
      stepper3.setSpeed(400);
      stepper3.run();
      // End of section above
      digitalWrite(blueLED, HIGH); // blue led turns on
      }
      }
      void loop() {
      // this will cancel out the rail movement if you try and travel beyond safe limits
      while (digitalRead(EndStop) == 0 || stepper1.currentPosition() < -40500) {}
      if (digitalRead (Button) == 0) {
      delay(1000); // hold switch for 1 second to reset all values then LED turns Blue
      if (digitalRead (Button) == 0) {
      InandOut = 4;
      }
      switch (InandOut) {
      case 0: // Set the A position
      InandOut = 1;
      XInPoint = stepper1.currentPosition(); // Set the IN position for steppers 1
      YInPoint = stepper2.currentPosition(); // Set the IN position for steppers 2
      ZInPoint = stepper3.currentPosition(); // Set the IN position for steppers 3
      digitalWrite(blueLED, LOW); // MSF blue led goes out
      digitalWrite(RedLED, HIGH); // Light up inLed
      break;
      case 1: // Set the B position
      InandOut = 2;
      XOutPoint = stepper1.currentPosition(); // Set the B positions for steppers
      YOutPoint = stepper2.currentPosition();
      ZOutPoint = stepper3.currentPosition();
      digitalWrite(RedLED, LOW); // red Led goes off then Green Led Illuminates stating ready to run
      digitalWrite(GreenLED, HIGH);
      break;
      case 2: // Move to A position / go to next part case 3
      InandOut = 3;
      inOutSpeed = analogRead(inOutPot);
      // Place the A position into the Array
      gotoposition[0] = XInPoint;
      gotoposition[1] = YInPoint;
      gotoposition[2] = ZInPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 3: // Move to B position and returns go back to case 2 above
      InandOut = 2;
      inOutSpeed = analogRead(inOutPot);
      // Place the B position into the Array
      gotoposition[0] = XOutPoint;
      gotoposition[1] = YOutPoint;
      gotoposition[2] = ZOutPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 4: // If Set button is held longer than one second go back to the beginning case 0 above
      InandOut = 0;
      digitalWrite(RedLED, LOW);
      digitalWrite(GreenLED, LOW);
      digitalWrite(blueLED, HIGH);
      delay(1000);
      break;
      }
      }
      // PanX - Pan movement XPos
      PanPos = analogRead(PanX);
      // if Pan Pot is moved left, move stepper 2 pan anticlockwise
      if (PanPos > 600) {
      //stepper2.setSpeed(currentSpeed);
      PanPos = map(PanPos, 600, 1024, 0, 200);
      stepper2.setSpeed(PanPos); // Increase speed
      }
      // if PanPot is moved right, move stepper 2 pan clockwise
      else if (PanPos < 400) {
      //stepper2.setSpeed(-currentSpeed);
      PanPos = map(PanPos, 400, 0, 0, 200);
      stepper2.setSpeed(-PanPos); // Increase speed
      }
      // if PanPot is centred then there is no movement
      else {
      stepper2.setSpeed(0);
      }
      //Tilt Y - Tilt movement
      TiltYPos = analogRead(TiltY);
      if (TiltYPos > 600) {
      //stepper3.setSpeed(currentSpeed);
      TiltYPos = map(TiltYPos, 600, 1024, 0, 200);
      stepper3.setSpeed(TiltYPos); // Increase speed
      }
      else if (TiltYPos < 400) {
      //stepper3.setSpeed(-currentSpeed);
      TiltYPos = map(TiltYPos, 400, 0, 0, 200); // Try changing this to lower value to slow tilt stepper
      stepper3.setSpeed(-TiltYPos); // Increase speed
      // If TiltPot is centred then there is no movement
      }
      else {
      stepper3.setSpeed(0);
      }
      // RAIL potentiometer
      RailPos = analogRead(Rail);
      // If potentiometer is turned left then the Gantry moves towards the control unit
      if (RailPos > 600) {
      RailPos = map(RailPos, 600, 1024, 0, 3000);
      stepper1.setSpeed(-RailPos); // Increase speed
      }
      // If potentiometer is turned right then the Gantry moves away from the control unit
      else if (RailPos < 400 ) {
      RailPos = map(RailPos, 400, 0, 0, 3000);
      stepper1.setSpeed(RailPos); // Increase speed
      // If potentiometer is centred then there is no movement
      }
      else {
      stepper1.setSpeed(0);
      }
      // run the camera slider
      stepper1.runSpeed();
      stepper2.runSpeed();
      stepper3.runSpeed();
      }

  • @samjones1954
    @samjones1954 4 года назад

    you have a funny accent for a Canadian

  • @kilkennyfishblue
    @kilkennyfishblue Год назад

    your website is closed, anywhere i can get it now?

  • @edhurd1330
    @edhurd1330 Год назад

    Have been searching for a system like this for years. The site for the code is no longer. Is there a way i could that arduino code? Or am I three years too late?

    • @edhurd1330
      @edhurd1330 Год назад

      not there in wayback Eurorack stuff, no arduino slider code.. Perhaps it is my fault for trying to find it. I guess I'll have cancel my shooting gig with ILM tomorrow. They are going to be crushed when they find out no arduino camera slider. George is pretty good at hand held though.

  • @williamhuang5329
    @williamhuang5329 2 года назад

    Hanzhen harmonic drive gear ,
    strain wave reducer,
    robot joint, over 30 years experience

  • @bolton368
    @bolton368 4 года назад

    Can I retchrospectivly us the Amazon affiliate link. I f a pricey speaker last night. Would like you get the splash back 😉 i mean cash back

  • @brijmohanprasad
    @brijmohanprasad 3 года назад

    you missed the code

  • @G_handle
    @G_handle Год назад

    Uh oh...
    Your website is down and it looks like it's been months since you've posted.
    YOU OKAY SIR?
    Re-visiting this project and wanted the code, but now I'm worried about you!

    • @markusfuller
      @markusfuller  Год назад

      Hi Yes I am fine thank you for asking. I still have a copy of the code if you want it. if you email me on markusfuller at hotmail dot com I will send the code over to you. best wishes.

  • @analopes-rk2bs
    @analopes-rk2bs Год назад +1

    Hi, where is the code? thanks

    • @markusfuller
      @markusfuller  Год назад

      Hi ana if you can send me an email message or private message I can send you a link to the code etc. the website no longer exists.

    • @DorfyBoi
      @DorfyBoi 3 месяца назад

      Can't email you because your email isn't listed anywhere as far as I can tell. Would love to see your code. Been trying to figure out A to B with 3 motors at different speeds but starting and ending at the same time. Been difficult finding documentation that explains how to do this. ​@@markusfuller

    • @markusfuller
      @markusfuller  3 месяца назад

      @@DorfyBoi Arduino camera slider code
      /*
      stepper motor Rail Pan Tilt camera controller
      by Markus Fuller 2020
      using 1 Arduino UNO 3x nema17 stepper motors and 3x EasyDrivers from www.schmalzhaus.com
      Library - AccelStepper by Mike McCauley:
      www.airspayce.com/mikem/arduino/AccelStepper/index.html
      */
      #include
      #include
      #define PanX A0 // Pan X pin
      #define TiltY A1 // Tilt Y pin
      #define Rail A2 // Slider potentiometer
      #define inOutPot A3 // In and Out speed potentiometer
      #define PanStop 10 // to stop pan cable tangling
      #define Button 12 // Set Button
      #define EndStop 11
      #define RedLED 8 // RGB Led Red
      #define GreenLED 9 // RGB Led Green
      #define blueLED 13 // RGB Led blue
      // Set stepper motor pins on Arduino as type, Step, and Direction,
      AccelStepper stepper1(1, 7, 6);
      AccelStepper stepper2(1, 5, 4);
      AccelStepper stepper3(1, 3, 2);
      MultiStepper StepperControl;
      long gotoposition[3]; // stores the A and B position for every stepper motor
      int PanPos = 0;
      int TiltYPos = 0;
      int RailPos = 0;
      int currentSpeed = 100;
      int inOutSpeed = 100;
      int XInPoint = 0;
      int YInPoint = 0;
      int ZInPoint = 0;
      int XOutPoint = 0;
      int YOutPoint = 0;
      int ZOutPoint = 0;
      int InandOut = 0;
      void setup() {
      stepper1.setMaxSpeed(3000);
      stepper1.setSpeed(300);
      stepper2.setMaxSpeed(1500);
      stepper2.setSpeed(75);
      stepper3.setMaxSpeed(1500);
      stepper3.setSpeed(75);
      pinMode(PanStop, INPUT_PULLUP); //faultstop to help prevent pan cable tangling
      pinMode(Button, INPUT_PULLUP); //setswitch which is also activate button
      pinMode(EndStop, INPUT_PULLUP); //endstop microswitch
      pinMode(RedLED, OUTPUT); //red led
      pinMode(GreenLED, OUTPUT); //green led
      pinMode(blueLED, OUTPUT); //blue led
      StepperControl.addStepper(stepper1);
      StepperControl.addStepper(stepper2);
      StepperControl.addStepper(stepper3);
      // Move the slider to the Home position when first turned on
      while (digitalRead(EndStop) != 0) {
      stepper1.setSpeed(1500);
      stepper1.runSpeed();
      stepper1.setCurrentPosition(0); // When EndStop is activated this sets position as step 0
      }
      delay(30);
      // Moves back slightly from the rail endstop
      while (stepper1.currentPosition() != -1500) {
      stepper1.setSpeed(-1500);
      stepper1.run();
      // This section below for Pan centre control
      }
      // Moves the pan head anticlockwise until microswitch is activated
      while (digitalRead(PanStop) != 0) {
      stepper3.setSpeed(-400);
      stepper3.runSpeed();
      stepper3.setCurrentPosition(0); // When Pan is centred set position to 0 steps
      }
      delay(30);
      // Moves pan clockwise untilfacing forward, this may need to be changed depending on how many teeth between stepper and pan wheel
      while (stepper3.currentPosition() != 1070) {
      stepper3.setSpeed(400);
      stepper3.run();
      // End of section above
      digitalWrite(blueLED, HIGH); // blue led turns on
      }
      }
      void loop() {
      // this will cancel out the rail movement if you try and travel beyond safe limits
      while (digitalRead(EndStop) == 0 || stepper1.currentPosition() < -40500) {}
      if (digitalRead (Button) == 0) {
      delay(1000); // hold switch for 1 second to reset all values then LED turns Blue
      if (digitalRead (Button) == 0) {
      InandOut = 4;
      }
      switch (InandOut) {
      case 0: // Set the A position
      InandOut = 1;
      XInPoint = stepper1.currentPosition(); // Set the IN position for steppers 1
      YInPoint = stepper2.currentPosition(); // Set the IN position for steppers 2
      ZInPoint = stepper3.currentPosition(); // Set the IN position for steppers 3
      digitalWrite(blueLED, LOW); // MSF blue led goes out
      digitalWrite(RedLED, HIGH); // Light up inLed
      break;
      case 1: // Set the B position
      InandOut = 2;
      XOutPoint = stepper1.currentPosition(); // Set the B positions for steppers
      YOutPoint = stepper2.currentPosition();
      ZOutPoint = stepper3.currentPosition();
      digitalWrite(RedLED, LOW); // red Led goes off then Green Led Illuminates stating ready to run
      digitalWrite(GreenLED, HIGH);
      break;
      case 2: // Move to A position / go to next part case 3
      InandOut = 3;
      inOutSpeed = analogRead(inOutPot);
      // Place the A position into the Array
      gotoposition[0] = XInPoint;
      gotoposition[1] = YInPoint;
      gotoposition[2] = ZInPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 3: // Move to B position and returns go back to case 2 above
      InandOut = 2;
      inOutSpeed = analogRead(inOutPot);
      // Place the B position into the Array
      gotoposition[0] = XOutPoint;
      gotoposition[1] = YOutPoint;
      gotoposition[2] = ZOutPoint;
      stepper1.setMaxSpeed(inOutSpeed);
      stepper2.setMaxSpeed(inOutSpeed);
      stepper3.setMaxSpeed(inOutSpeed);
      StepperControl.moveTo(gotoposition);
      StepperControl.runSpeedToPosition();
      delay(200);
      break;
      case 4: // If Set button is held longer than one second go back to the beginning case 0 above
      InandOut = 0;
      digitalWrite(RedLED, LOW);
      digitalWrite(GreenLED, LOW);
      digitalWrite(blueLED, HIGH);
      delay(1000);
      break;
      }
      }
      // PanX - Pan movement XPos
      PanPos = analogRead(PanX);
      // if Pan Pot is moved left, move stepper 2 pan anticlockwise
      if (PanPos > 600) {
      //stepper2.setSpeed(currentSpeed);
      PanPos = map(PanPos, 600, 1024, 0, 200);
      stepper2.setSpeed(PanPos); // Increase speed
      }
      // if PanPot is moved right, move stepper 2 pan clockwise
      else if (PanPos < 400) {
      //stepper2.setSpeed(-currentSpeed);
      PanPos = map(PanPos, 400, 0, 0, 200);
      stepper2.setSpeed(-PanPos); // Increase speed
      }
      // if PanPot is centred then there is no movement
      else {
      stepper2.setSpeed(0);
      }
      //Tilt Y - Tilt movement
      TiltYPos = analogRead(TiltY);
      if (TiltYPos > 600) {
      //stepper3.setSpeed(currentSpeed);
      TiltYPos = map(TiltYPos, 600, 1024, 0, 200);
      stepper3.setSpeed(TiltYPos); // Increase speed
      }
      else if (TiltYPos < 400) {
      //stepper3.setSpeed(-currentSpeed);
      TiltYPos = map(TiltYPos, 400, 0, 0, 200); // Try changing this to lower value to slow tilt stepper
      stepper3.setSpeed(-TiltYPos); // Increase speed
      // If TiltPot is centred then there is no movement
      }
      else {
      stepper3.setSpeed(0);
      }
      // RAIL potentiometer
      RailPos = analogRead(Rail);
      // If potentiometer is turned left then the Gantry moves towards the control unit
      if (RailPos > 600) {
      RailPos = map(RailPos, 600, 1024, 0, 3000);
      stepper1.setSpeed(-RailPos); // Increase speed
      }
      // If potentiometer is turned right then the Gantry moves away from the control unit
      else if (RailPos < 400 ) {
      RailPos = map(RailPos, 400, 0, 0, 3000);
      stepper1.setSpeed(RailPos); // Increase speed
      // If potentiometer is centred then there is no movement
      }
      else {
      stepper1.setSpeed(0);
      }
      // run the camera slider
      stepper1.runSpeed();
      stepper2.runSpeed();
      stepper3.runSpeed();
      }

  • @ScottFromCanada
    @ScottFromCanada 4 года назад

    Very very cool! Also, you got a moog one?!

    • @6581punk
      @6581punk 4 года назад

      Looks more like a Waldorf Quantum to me? the synth leaning up against the wall. Ah there is it later in the video :)

    • @markusfuller
      @markusfuller  4 года назад

      Yes I sold off a lot of my gear to buy that moog one. not sure I did the right thing but I have more room in the house now.

    • @markusfuller
      @markusfuller  4 года назад +1

      @@6581punk The Quantum is just on loan

    • @6581punk
      @6581punk 4 года назад

      @@markusfuller Quite jealous. I keep meaning to sell off some synths and get one since it will cover a lot of sonic ground. But I vowed to make the Forte my last purchase.

    • @6581punk
      @6581punk 4 года назад

      @@markusfuller It's ultimately down to if you like the sound. Personally I feel I've moved on from the "vintage" tone. But the Voyager probably wasn't the best Moog to try I guess.

  • @johnflower8648
    @johnflower8648 4 года назад

    Standard camera fitting is 1/4 inch whitworth.

    • @rupertrooksby
      @rupertrooksby 4 года назад +2

      Standard camera fitting is 1/4 inch UNC.
      Whitworth is 55 degrees thread angle, UNC is 60, a Whitworth will usually fit, but it's a UNC thread.

  • @illustriouschin
    @illustriouschin 4 года назад

    Waldorf Quantum standing up in the corner heretic!

  • @AJB2K3
    @AJB2K3 3 года назад

    1.5 meters in English money is surprisingly 1.5meters

  • @twotone3070
    @twotone3070 4 года назад

    QaQ Qap

  • @mokotechnology4562
    @mokotechnology4562 4 года назад

    hi we're a PCB manufacturer, can you pls put our video and website link on your youtube channel,we can pay you for that,if you're interested,pls leave us your email!

  • @atomipi
    @atomipi Месяц назад

    hello, awesome channel, i have been watching for 3 hours straight! subbed as i would also like the code to build too please. thanks, great concept

  • @SouthpawShorts
    @SouthpawShorts 4 года назад

    A little trick for manual sliders and video tripods is to use an elastic band to pull it. It gives you a smooth start.