isaac879 / pan-tilt-mount Goto Github PK
View Code? Open in Web Editor NEWA stepper motor driven, 3D printed and Arduino controlled pan/tilt mount.
License: MIT License
A stepper motor driven, 3D printed and Arduino controlled pan/tilt mount.
License: MIT License
Hi! When I try to load the joystick sketch (main.cpp) I get this error.
windows.h: No such file or directory
How can I fix it? Thanks!
Hi. I think the slider carriage files are missing from the archive with the STP sources. Could you please upload all the files here? STP files are ASCII-based, so GitHub is a perfect place for them.
I have everything up and running. The only issue i'm having are two fold. Based on the video, I cannot get my velocity to be the same. Also, there are momentary pauses and stutters in manual movement and sometime in the movement arrays. I'm not sure where to start. Any ideas?
Hi, thank you for your perfect project. As making the PCB is hard and in the meantime CNC shied available; is it possible to modify your code as below the we can use that shield :
(I copied this from grbl library in cpu_map.h).
// Define step pulse output pins. NOTE: All step bit pins must be on the same port.
#define STEP_DDR DDRD
#define STEP_PORT PORTD
#define X_STEP_BIT 3 // Uno Digital Pin 2
#define Y_STEP_BIT 5 // Uno Digital Pin 3
#define Z_STEP_BIT 7 // Uno Digital Pin 4
#define STEP_MASK ((1<<X_STEP_BIT)|(1<<Y_STEP_BIT)|(1<<Z_STEP_BIT)) // All step bits
// Define step direction output pins. NOTE: All direction pins must be on the same port.
#define DIRECTION_DDR DDRD
#define DIRECTION_PORT PORTD
#define X_DIRECTION_BIT 2 // Uno Digital Pin 5
#define Y_DIRECTION_BIT 4 // Uno Digital Pin 6
#define Z_DIRECTION_BIT 6 // Uno Digital Pin 7
#define DIRECTION_MASK ((1<<X_DIRECTION_BIT)|(1<<Y_DIRECTION_BIT)|(1<<Z_DIRECTION_BIT)) // All direction bits
// Define stepper driver enable/disable output pin.
#define STEPPERS_DISABLE_DDR DDRB
#define STEPPERS_DISABLE_PORT PORTB
#define STEPPERS_DISABLE_BIT 8 // no Digital Pin 8
#define STEPPERS_DISABLE_MASK (1<<STEPPERS_DISABLE_BIT)
I am having difficulty compiling for the nano, as the sketch is too big. I tried removing any mention of a battery, as I am not utilizing one, but it is still at 101%. Am I missing something?
`Arduino: 1.8.19 (Mac OS X), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
text section exceeds available space in board
Sketch uses 31096 bytes (101%) of program storage space. Maximum is 30720 bytes.
Global variables use 1503 bytes (73%) of dynamic memory, leaving 545 bytes for local variables. Maximum is 2048 bytes.
Sketch too big; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing it.
Error compiling for board Arduino Nano.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
`
Isaac, is there an ability to update the code to adjust speed on the fly?
Hi, When you put the cameras on a keyframe and it continues to follow that object, can you make it loop and go back and forth until you choose to stop? I would like to use your project for my live stream so can can get a paralaxefect. Anyway I really like the project and so you can order pcbn, so I have done it now.
thanks so much.
Currently the joystick sets the motor speed directly (-255 , 255) which moves the axis quite slowly. May I suggest scaling the joystick input to the set maxSpeed?
At line 985 of panTiltMount.cpp:
sliderStepSpeed = (sliderStepSpeed * (stepper_slider.maxSpeed() / 255));
panStepSpeed = (panStepSpeed * (stepper_pan.maxSpeed() / 255));
tiltStepSpeed = (tiltStepSpeed * (stepper_tilt.maxSpeed() / 255));
I'd issue a pull request but I'm not 100% on how to do that correctly! :)
Hi,
I am not experienced in programming arduino, but can you explain how the BT serial can be enabled?
Thanks!
I get this failure
In file included from sketch\panTiltMount.cpp:11:
C:\Program Files (x86)\Arduino\libraries\Bridge\src/YunClient.h:24:2: warning: #warning "The use of YunClient is deprecated. Use BridgeClient instead!" [-Wcpp]
#warning "The use of YunClient is deprecated. Use BridgeClient instead!"
^~~~~~~
In file included from sketch\panTiltMount.cpp:12:
C:\Program Files (x86)\Arduino\libraries\Bridge\src/YunServer.h:24:2: warning: #warning "The use of YunServer is deprecated. Use BridgeServer instead!" [-Wcpp]
#warning "The use of YunServer is deprecated. Use BridgeServer instead!"
^~~~~~~
sketch\panTiltMount.cpp: In function 'void setStepMode(int)':
panTiltMount.cpp:144:9: error: 'PORTB' was not declared in this scope
PORTB |= B00001000; //MS1 high
^~~~~
panTiltMount.cpp:148:9: error: 'PORTB' was not declared in this scope
PORTB |= B00000100; //MS2 high
^~~~~
panTiltMount.cpp:152:9: error: 'PORTB' was not declared in this scope
PORTB &= ~(B00001100); //MS1 and MS2 low
^~~~~
panTiltMount.cpp:155:9: error: 'PORTB' was not declared in this scope
PORTB |= B00001100; //MS1 and MS2 high
^~~~~
sketch\panTiltMount.cpp: In function 'int setTargetPositions(float, float, float)':
sketch\panTiltMount.cpp:291:1: warning: no return statement in function returning non-void [-Wreturn-type]
}
^
exit status 1
'PORTB' was not declared in this scope /* <--- was is PORTB for a declaration?
hello! in what program made schematic for control board?
i wish to modify it.
Can you add it to github?
For my camera i need two wires - shutter control and focus control. Without "clicking" focus it not release shutter (Sony A7S)
Thanks!
Hi, great job, thanks!
I can't find what diameter is needed for the balls used in the 3D printed bearing. Where did you get them?
Thanks.
is it possible to use grbl with this pcb board? so can use gcode to control it too?
like I said, I did try burn grbl on the arduino Nano with this pcb, so can use gcode to script some movement.
but I have some trouble for the pin setting up for grbl.... hope someone can try it and figure it out
Windows.h: No such file or directory [complie error]
does anyone know how to fix it ? I tried on mac and windows 10, same issue.
Hi
wich balls i need to buy for the bearing and why you not use a normal bearing
after I type "p10" or "t10", nothing is moving and I have to type "A" to make the "x100" working....
And how could I set up the EEPROM values like u said in "TODOS" ?
thank you
Given that most 3D printer boards work with an ATmega processor.. could it be possible to use one of those boards as the base of this project with minor modifications to the code?
Hi, as I show in the video, when I try to change the direction of movement of the slider with the function ¨j¨ this does not change and continues in the same direction.
I have already tested the wiring of the motors, changed the TCM 2208 driver, the continuity of the board between the output 3 of the arduino and the input Dir of the driver. Everything indicates that this would be fine. But the problem continues, I am inclined to think that the Arduino is not sending the electric pulse to the driver to change direction.
Do you have any idea what it could be?
Really incredible project @isaac879!
I started on something similar a while back, but single-axis only. My goal was to take sharper time-lapses by getting the microcontroller to move the steppers, and then trigger a timelapse photo on the camera after movement had fully stopped. I was using an esp8266, so I was trying to reverse engineer the Canon WiFi protocol to be able to trigger the shutter from the microcontroller without wires. I successfully triggered the shutter using some JavaScript code, but never got it ported: https://github.com/PastuDan/ptpip-test/blob/master/test.js#L114-L115
Let me know if you're interested, and I can explain in a little more detail how I came up with those shutter codes... It's actually not too complicated! I was using the Canon iPhone app with WireShark (which understands the picture transfer protocol) to capture the network requests, ie the 1a000000060000000100000028919a0100000300000001000000
sequence that's hardcoded in my js code, and then replaying that over the network socket to the camera's IP.
Congrats again on the hardware. Your 3d printed parts turned out far more professional than my metalworking :-p Here's my embarassing youtube video if you're curious.
I'm curious if the parts list and code is available for just the pan tilt, no slide?
I can't get it to work. I am sending the commands through the serial port of the Arduino Nano but the motors keep looping back and forth. Do you know why this is happening? I send a video where you can see the problem.
Bienvenue dans cet espace francophone dédié à la réalisation du Camera Slider
Thanks. This project is amazing.
I'm having trouble getting the printable bearing to fit. Using a vernier I think it is about 1mm larger when the parts are loaded with ball bearings. The outer ring split is about 3mm gap. Any suggestions?
Hi,
I'm not sure what to connect to the different pinheaders.
Is there a building tutorial (like on instructables)?
H1, H2, H6, H7, P2 are not clear for me.
H should be the hall sensors. But which one belongs to which place?
And what's P2 good for? Is it the camera trigger?
Hi Isaac! I'm planning on building one of these, but I'm having trouble with some of the part specifications. Could you be more descriptive about the motors, for example? Are they uni/bi-polar, what is the torque value, etc.? I'm also curious to hear about which suppliers you used, as Digikey (I'm in the states) doesn't recognize the Bluetooth module part number among others. How long should the belts be? Thanks!
I'm having issues compiling the xbox code in visual studio because it gives me this errror:
67 and 96 : argument of type "LPCSTR" is incompatible with parameter of type "LPCWSTR"
what program are you using to compile this? I am understanding correctly that this is a program run from windows and not on the nano itself correct?
hi new to this great project how does the controller connect does it auto connect or do i need to modify code thank for any help
Hello, can you help me to solve this problem at compile time in main.cpp file
"
ResolveLibrary(Windows.h)
-> candidates: []
/tmp/972888428/pan_tilt_mount_nano_code_tmc2208/main.cpp:13:10: fatal error: Windows.h: No such file or directory
#include <Windows.h>
^~~~~~~~~~~
compilation terminated.
Error during build: exit status 1"
Thank you @isaac879
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.