Umm help with an idea (servo control)

If it were me, I'd rummage around into my toy box for a PiFace Digital 2 and see if that makes things easier. (It might not.)

Read me and me

And then I'd marry that script to something like OCTO800 as created in the Gcode System Commands plugin.

Hmm... I don’t exactly know if this is it

(Mainly due to my lack of knowledge about this)

Honestly I’d like a direct plugin for octoprint and instructions on what pins to connect

(Think 3rd grader knowledge)

I major in drafting so feel free to give me a challenge

Also I feel like it should be noted that the only circuit boards that I can realistically use for this idea is my raspberry pi 3 with octoprint and a skr mini e3

No one here is going to do this for you for free since the use case is pretty specific. I would recommend reading this article...

Then once you get that example working with your pi and servo you can use the Gcode System Commands to create commands that run the python file in the example.

2 Likes

Ok that could work, now I’m curious as to how do you make a plugin as I’d like to play test this idea and experiment with different ideas

I have a good feeling that another post has probably gone over this but I thought I’d ask just to be safe

Lots of reading...

http://docs.octoprint.org/en/master/plugins/gettingstarted.html

Ok thanks for the help so far

You may also want to look into those other plugins that are controlling GPIO pins on the pi, use this link to see all those.

Octolapse supports two features that may help you:

  1. Gcode Cameras - This feature was built assuming that some folks will have an embedded camera within their 3d printer so that you can send a gcode to the printer at the appropriate time to take a snapshot. In your use case you could send some gcode to the to move your servo instead. Unfortunately there is no way to add programmatic parameters currently, so not sure if that will actually help you.
  2. Before Snapshot Script - This is another feature in the camera profile (I can't remember if this is in the live version or not yet, otherwise you could just use the snapshot script and be 1 frame behind on your position). With that, if you can create a script to control your servo, you can synchronize it with Octolapse. Octolapse joins all before snapshot script threads before actually initiating the snapshot capture process, so it shouldn't matter how long it takes to move your servo, though your print quality will suffer the longer you delay.

If you do come up with a script to move your servo, let me know. I'd like to see it. FYI, I'm pretty certain this has been done before. I've seen timelapse videos done with a moving camera before, but have not a clue how it was done exactly. If you get it working, please create a tutorial so others can benefit.

Thanks!

Don't you think those videos you saw were probably done with a GoPro or other camera on a rail of some kind like this...

screenshot

1 Like

Maybe, but I know for sure the ones I saw were using Octolapse for the printer stabilization and to acquire the image. I just don't know how the rail was being controlled. It could have just been pre-programmed to move very slowly so that it appeared to be synchronized.

So, here is a video of one of these in action. It does look like it's just moving slowly, so it's probably totally separate from Octolapse: https://www.reddit.com/r/functionalprint/comments/9wg0hx/camera_slider_for_filming_octolapse_timelapses/

Here is the full timelapse: https://www.reddit.com/r/3Dprinting/comments/9wekim/the_elder_lighthouse/

Sorry for not embedding, but I couldn't get links from the player easily.

I'm a former software development instructor. Rather than to do the work for someone on here, it's my default to attempt to teach you "how to fish" instead. By the end of your research, you'll end up smarter and more able to do the next project after this one.

honestly i didn't quite get the inspiration off of a video, i literally was just simply half asleep and i had that it would be cool to have the camera to be able ROTATE around the print plus or minus 90 degrees as to breathe a little more life into the timelapse and kinda make it pop a little more to someone who knows nothing about 3d printing

Well, yeah... one of my projects-on-hold is a timelapse railkit for my girlfriend.

so where do you guys (or gals) think a good starting point would be

also to be brutally honest this is probably going to end up being my first time writing non G-code script

i have also noticed that there is what appears to be a plugin example/skeleton at https://github.com/OctoPrint/Plugin-Examples

do you think this would be a good first step?

Each of us has provided some helpful material. Why don't you sort through those, get a better understanding and then make a choice based upon what you might be able to do.

To me, it sounds like a Python script or service which runs, accepts inputs and can act upon those inputs. So it might hear "CW 3", interpret that into "turn clockwise 3 degrees" or "turn clockwise for 3/10 seconds" or whatever and then send the correct command to the GPIO pin to make that happen. And then once you have something like that, then consider working on the plugin side of this.

Or, build the whole thing as a plugin if you'd like.

yeah that actually makes sense to me, the only real downside is that i only have one Raspberry pi to do this on, being my octoprint pi

aside from that i very much like your idea

also looking at my CNC G-Code cheat sheet, M3 looks like a good candidate to test this with as M3 controls spindle (drill bit) speed and has no immediate use on a printer

First things, first: read. That's how all of us got good at this eventually.

  • Get comfortable creating a Python script which you can run from the command line.
  • Get comfortable creating a shell script which you can run from the command line.
  • Get comfortable with remoting into your Pi using either ssh or PuTTY.

M3 is a gcode command which your printer board will interpret. You don't want your printer board to interpret this unless you connect the servo to that. You're looking for Pi-side if you want to connect it to the Pi itself. Check out the Gcode Systems Command plugin I mentioned earlier.

ok will do

ok so as much as i am embarrassed to say so, i have no python knowledge whatsoever, and all the online tutorials that i've looked at so far are getting me nowhere as they all assume that i have had some history with python before although i do not

Neither did any of us before we started :slight_smile: What you're trying to do can be done by a beginner, of that I am very confident. The script will be quite small and very frustrating for you to develop (like bang you head on the table frustrating). However, it will be EXTREMELY satisfying once it works, and it may open a new world up for you. Enjoy the trip!

1 Like