Well, It has to be fed some time! It has been in use so long to provide a source of movement that the head is somewhat mineral encrusted from all the water that has evaporated.
ya, I noticed. But gotta love that bird!
I’ve done some checking with my new ssc-32, and below is a simple way to control the ssc-32 via http on the local computer or over the internet if desired. This control is one way. Do the following for this setup:
Note: Turn off word wraping in notepad to have clean unwrapped lines.
- Install the apache web server and set it to run as a service (I’m using version 1.3.31).
- Make the below files and place in the specified places.
- Clich on the links ("*") to have the brouser send the movement request to the apache web server. Apache then runs the batch file to send the command to the ssc-32.
Copy the below code, paste in notepad, and name makeechoo.bat. Double click the makeechoo.bat file to run it and echoo.com will be created. Put the echoo.com file in the apache cgi-bin folder.
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>echoo.com
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>echoo.com
echo ?@xAyJHmH@=a?}VjuN?_LEkS?`w`s_{OCIvJDGEHtc{OCIKGMgELCI?GGg>>echoo.com
echo EL?s?WL`LRBcx=k_K?AxVD?fCo?Cd?BLDs0>>echoo.com
Copy the below code and paste in notepad. Save as echoo.bat, and place it in the apache cgi-bin folder. Note that this is set for 9600 baud and com 5. The “mode” line can be omitted and it will ise the default com port settings.
@echo off
echo status: 204
echo.
echo.
mode com5:9600,N,8,1 >nul
echoo.com %QUERY_STRING% >com5
cls
Copy the below code and paste in notepad. Save as ssc32.htm on the desktop. This is the web based control panel. change the 127.0.0.1 IP address to something like me.no-ip.com when using on the internet.
<HTML>
<HEAD>
<TITLE>SSC-32 Web Control Panel</TITLE>
</HEAD>
<BODY>
<H2>SSC-32 Web Control Panel</H2>
Servo 0:
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P500$0D">L</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P580$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P660$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P740$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P820$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P900$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P980$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1060$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1140$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1220$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1300$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1380$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1460$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1540$0D">C</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1620$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1700$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1780$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1860$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P1940$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2020$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2100$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2180$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2260$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2340$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2420$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$230P2500$0D">R</a><BR>
Servo 1:
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P500$0D">L</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P580$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P660$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P740$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P820$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P900$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P980$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1060$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1140$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1220$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1300$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1380$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1460$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1540$0D">C</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1620$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1700$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1780$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1860$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P1940$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2020$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2100$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2180$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2260$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2340$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2420$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$231P2500$0D">R</a><BR>
<BR>
Zoomkat 2008<BR>
</body>
</html>
Some more stuff with server side batch files. Make the below batch files and place in the cgi-bin folder. The servo32.bat file contains some servo commands. The start.bat and start1.bat files both start the servo32.bat file in different ways. The servo32.bat could contain various short time routines, such as pulling a gun trigger for a second. Above the start batch files are the urls that execute the batch files on the server. The urls can be put in a web page where one clicks on them to run them.
servo32.bat
@echo off
mode com5:9600,N,8,1 >nul
echo #0 P500 T3000 #1 P2100 T3000 #2 P2100 T3000> com5
ping -n 5 127.0.0.1 >nul
echo #0 P1000 T3000 #1 P1000T3000 #2 P1400 T3000> com5
ping -n 5 127.0.0.1 >nul
echo #0 P1500 T3000 #1 P500 T3000 #2 P800 T3000> com5
exit
127.0.0.1/cgi-bin/start1.bat
start1.bat
@echo off
echo status: 204
echo.
echo.
start servo32.bat
exit
127.0.0.1/cgi-bin/start.bat?servo32.bat
start.bat
@echo off
echo status: 204
echo.
echo.
start %query_string%
exit
Hey
I have the web control working fine by using the CGI file (some alterations to get it to connect) but what I would really like is an embedded web page slider control. It would be easy to create a ton of buttons on a page each with a unique link to the camera server but a variable slider control is where its at, like in the sequencing software. Anyone have some code or could point me in the right direction for that? Thanks.
hey
the first tele robot I saw was at a collage lab you could run it in a maze that could go up to a window and look out at the campus…it had a mirror so you could see the robot its self and you could get a “God’s eye view” if you got “lost”…
really kool… 8)
heck I’ll put my arm on line with a camera if sombody out there helps with the programing…!!
:mrgreen:
I’m not that familiar with some of the code but I can learn …really would like to setup something like this…
any help??
Are any of you guyz familiar with the HomeSeer stuff??
It is a home automation prog. that can control X-10 stuff…
I have it and use it quite a lot , with cameras around my house and outside so I can see stuff…
I’m handicaped and there are dayz I cant move so I use the cameras to keep an eye on my place…also turns on my coffee and gets the weather–
Well there is a way to control the cameras via the web built in to the software…maybe that would be another angle…??
just a “thought”…
Below is a drop down gui I made. There are various types of javascript sliders available, but I’ve never gotten around to using them. Try doing a google search for javascript slider for info like the bottom link.
blueshoes.org/en/javascript/slider/
edit 4/4/09: the below cam has passed away, but the bottom cam is still functional.
web.comporium.net/~shb/ppswitcher-demo.htm
web.comporium.net/~shb/ezservo1.htm
Below is another interesting free slider control download page. I’ll have to look at it more closely to see where one would put the servo control url in the code. Lot of gui possibilitys for positioning large numbers of servos.
I’ve done a little tinkering with the Tigra Slider Control java sliders in a web page. The below pix is what I’ve made so far. In this setup, one would position the slider to the desired position value, and then click the set button to send the servo to that position. The web slider control is in a browser popup window to keep it compact. Next I’ll need to make the batch files to go in the cgi folder and put the 127.0.0.1 url in the page.
My old cam server computer seems to have come back to life for a while, so below is my other pan/tilt cam that uses servos for the pan/tilt.
LOL, I want a neon sign (->) like yours. That is so cool! 8)
While tinkering with my 12v MOSFET setup, I made the below html code for testing speed changes. I also connected a servo modified for continous rotation and speed and direction of rotation were controlled fairly well. This is set for a servo modified for continous rotation that is stopped when at position 1500. Different types of presets can be made to do different things if needed.
<HTML>
<HEAD>
<TITLE>SSC-32 Web Control Panel</TITLE>
</HEAD>
<BODY>
<H2>SSC-32 Web Control Panel (Continous Rotation)</H2>
Servo 4:
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1400$0D">R</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1410$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1420$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1430$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1440$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1450$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1460$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1470$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1480$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1490$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1500$0D">STOP</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1510$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1520$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1530$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1540$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1550$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1560$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1570$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1580$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1590$0D">*</a>
<a href="http://127.0.0.1:80/cgi-bin/echoo.bat?$234P1600$0D">F</a>
<BR>
<BR>
Zoomkat 2008<BR>
</body>
</html>
Just came across another web button setup that is mouse click controlled that might be of interest. In this one when the control button is depressed using the left mouse button, a signal is sent to something, and when it is released another signal is sent to do something else. In my simple test page below, when the button is pressed and held, the servo goes to a preset position. When the button is released the servo returns to the origional preset position. This could also be used to control on/off setups for motors and such. It seems to be quicker on my local setup than thru the geocities page, but I’ll need to do some more testing. You can view the page source to see the simple setup.
web.comporium.net/~shb/mousebutton-T.htm
edit: adding the page html code
<applet code="JavaCamPush.class"
codebase="http://zoomkat.no-ip.com:88/manual"
align="baseline" width="320" height="240"
archive="JavaCamPush.jar"><param name="URL"
value="http://zoomkat.no-ip.com:83"><param name="cabbase"
value="JavaCamPush.cab"></applet><BR>
<input type="button" value="Pan Left"
onmousedown="location.href
('http://zoomkat.no-ip.com:88/cgi-bin/echoo.bat?$00$80$DC$01$80$78');"
onmouseup="location.href
('http://zoomkat.no-ip.com:88/cgi-bin/echoo.bat?$00$80$79$01$80$8C');"/>
<input type="button" value="Pan Right"
onmousedown="location.href
('http://zoomkat.no-ip.com:88/cgi-bin/echoo.bat?$00$80$21$01$80$78');"
onmouseup="location.href
('http://zoomkat.no-ip.com:88/cgi-bin/echoo.bat?$00$80$79$01$80$8C');"/>
I’m not sure why this topic is sticky, I know it’s a little old, and I don’t mean to hijack the thread, …but in case you were looking for alternative approaches and UI ideas:
I put a similar pan/tilt cam with remote control online a couple of years ago. It’s offline now, but I put up captured video and a screenshot of the UI to show how it worked. More useful, I also roughly diagrammed out the overall approach that I used based on Flash Media Server. This approach is way more complicated than would need to be for just simple pan/tilt/webcam, but the approach could support much more advanced uses.
jgstechnical.com/html/randd/roboticservo2/
[list]
- Recorded Video from WebCam
- Screenshot of Flash based UI. Moving the “button” in the grid w/ a mouse controlled the cam.
- Pictures of the pan/tilt setup.
[/list:u]
I used an old Ferrettronics servo controller for this, but I’d use an SSC-32 if doing it again.
Obviously much cooler when it’s live (as I’m sure the original cam in this thread was). I can probably get it back online if anyone really wants to see it in operation…although I’ve moved since recording the video above and the view out my new window is even more boring now.
Put it back on line, as I’d like to see it in acual operation for comparison purposes. From what I remember the flash media server is very expensive and probably overkill for something that can be done for free software wise.
I made it sticky because zoomcat went to a lot of trouble to explain how it works and it’s educational.
Cool. And agreed his post was educational. Feel free to split out my post and these few that follow to a new topic before anyone else posts in here. I probably should have done that in the first place.
“Expensive” is usually a relative term and depends on the context. At the time I built this, FMS could be had for ~$1k I think. More importantly though, the developer edition was free, though limited to 10 connections. The product line has since changed and prices have gone up. There is also now an open source solution (LGPL license) that does much of what FMS originally did. It’s called Red5, and I think it could replace FMS in the approach I described with only minimal (if any) changes. All other software related things in my approach were free…although low cost/free was not one of my goals.
As for it being overkill (or unnecessary) though, consider that this solution could scale to many simultaneous Internet viewers (thousands), where as most pan/tilt/webcam solutions won’t scale past a few users. The other really nice thing in this approach (IMO), is that it allows for easier programming of a rich GUI client using Flash/Flex.
I’ll think about how best to get it back online…though probably can’t get to it for at least a few days.
Btw… thanks for your write-up in this thread. The server cgi batch file approach you’re using is really interesting.
Conrol of a robot by more than one person at any given time would probably be a disaster for the bot, so that feature is probably unimportant. Botton is the current pricing for the flash media server (a little out of my range).
Below is some sample html code that should work with the updated ssc-32 firmware with the “stop” feature. One could make a web control panel using buttons to operate servos (pan/tilt cam, robotic arm, ROV, etc) in either direction at a controlled speed when the pan button is depressed. When the desired servo position is reached, the button is released and the servo is commanded to stop. Html buttons are a little large for my liking, but they are simple to make in a web page and in this example allow single button control of servo start/stop via a simple web interface. The free price is nice.
<input type="button" value="Pan Left"
onmousedown="location.href
('http://zoomkat.d2g.com:88/cgi-bin/ssc-32.bat?0P2200T3000');"
onmouseup="location.href
('http://zoomkat.d2g.com:88/cgi-bin/ssc-32.bat?STOP0');"/>
<input type="button" value="Pan Right"
onmousedown="location.href
('http://zoomkat.d2g.com:88/cgi-bin/ssc-32.bat?0P500T3000');"
onmouseup="location.href
('http://zoomkat.d2g.com:88/cgi-bin/ssc-32.bat?STOP0');"/>
Adobe Flash Media Interactive Server 3
Buy US$4,500
Upgrade from US$1,995
Download free Adobe Flash Media Development Server 3
I have my setup back online. It was easier than I expected to get it working again even though the code base is getting quite old. To view it, go to here and click the “Watch Live Demo” link. (If you don’t see that link, then hold shift key and click the refresh button in your browser.)
jgstechnical.com/html/randd/roboticservo2/index.html
Keep in mind that it’s running over my home-office DSL connection, so the video might be slow at times. I’ll try to keep it up and running for a few days, though might have to take it down periodically when I’m doing uploads. I had originally pointed it out my window…but then it got dark and I realized that might not make for the best demo. I’ll keep the office lights on.
Let me know once you’ve had a chance to check it out so I know that I can take back offline again.
My point in scalability was related to the video, not so much the control of it. A typical web camera solution can only support a few simultaneous video streams at best. In this solution, there is only one upload stream, and its get brokered to the Internet via the FMS which in a real environment would be running on a dedicated server with big Internet connection.
As another aside though, note that the “coordinates” of the pan-tilt are shared between all clients in real-time. (If more than one person connects at the same time, they will all see the movements made by anyone else reflected in their UI.) That’s another benefit to this approach…automatic client synchronization.
Let me know if you ever put yours online again as I would like to see it as well.