5/6/2015: Got an HTML presentation together to show to JH’s Show Control class, which worked pretty well. Showed JH what I’ve done so far with reading the encoder via Arduino. We also messed around with reading the encoder’s output with an oscilloscope. 4 hours.
5/5/2015: Tried to sort out how to do my final presentation. I’m having trouble getting Powerpoint installed, Google Drive presentations rely on web links for videos (which screws you if internet access is unavailable), and Open Office crashes every time I run a video in it. I think I may set up HTML pages that refer to files in a local directory. 2 hours.
5/2/2015: Wrote introduction for poster and portfolio. Created a diagram to explain the relationship between the screen’s location in the physical world and the image’s location within the projection field. Uploaded screenshots of the Medialon tasks to the portfolio site. 3 hours.
4/30/2015: Found out how to connect the encoder properly to the Arduino Uno and was able to get positive and negative counts as I turned the encoder shaft. I found that some count values would be dropped when the shaft was turned fast, even at the highest baud rate for the USB connection. There is some code available online that should drastically increase the speed at which the board reads the encoder input, I just need to figure out how it works.
Created a diagram to illustrate how the projector display field relates to the range of travel of the screen. 3.5 hours.
4/29/2015: Practiced my presentation in front of my Culmination Project class.
Researched Arduino programming and how to hook my encoder up to the Uno board.
JH discussed his work on the sound system for the YouTube brandcast at MSG in his Show Control class, and I noticed that last year’s set featured two sculptural, mobile projection surfaces on either side of the stage. They were also designed by WorldStage and can serve as another good example of a real-world application for my own project. 3 hours.
4/28/2015: Researched real-world applications with similarities to my system. Eric Cantrell pointed me to the scenic automation for Memphis: the Musical on Broadway designed by WorldStage, which took a similar approach, and also experienced similar problems with position information from the automation not updating quickly enough. 3 hours.
4/25/2015: Wrote a description of the system for the Method section of the portfolio site and the poster. Made corrections to block diagram and further tweaks to poster layout. 3 hours.
4/19/2015: Spent a lot of time on the project timeline for the poster, figuring out what information I want to convey and how to organize it. Also made some more tweaks to the poster layout and uploaded the block diagram to my web portfolio. 11 hours.
4/18/2015: Finished block diagram. Did more work on project poster — added diagram, logos for City Tech and Entertainment Technology, and a photo of the installation. 3 hours.
4/16/2015: Worked on a block diagram of the system in Illustrator, incorporating pictures of the components. Started revising the presentation poster. 4 hours.
4/9/2015: Eric Cantrell from Medialon came by to view the installation and was impressed. He took a look at the coding and made some suggestions for streamlining it, but there was negligible improvement in the motion of the projection. The bottleneck seems to be the communication speed of the DWU. Medialon is capable of polling it for position at a much faster rate, but it gets overwhelmed and stops responding. It makes sense that Creative Conners uses the virtual object method to send out position data. We talked about ways of doing something similar in Medialon, but it would require some complex math to calculate acceleration and deceleration.
I took some more video and pictures of the system, then disassembled it.
The encoder I ordered came in. I’ve met all the requirements for the project, but I want to do some further experiments with the encoder during the remainder of the semester. I might try reading data from the encoder into Medialon via an Arduino board and/or a PLC and see how fast it comes in compared to polling the DWU. 7 hours.
4/7/2015: Repositioned and re-connected all the computers and the projector. Took pictures of the overall system and of the individual components. Saved out final Medialon and Watchout files. Took screen grabs of the Medialon tasks and of the Watchout setup. Demonstrated the system to Chip. He told me about an RF position sensing system that the school has in the television studio, intended for letting an actor control an animated character via beacons placed on his costume. What if I placed the beacons on the corners of the screen? Perhaps I could position the Watchout image that way. The hand winch I ordered from McMaster-Carr arrived. Spent some time working on the final poster design. 3 hours.
4/4/2015: Re-connected all the computers and the projector. I put the screen at its zero position and used a couple of boxes to mark the end of the range of travel, I then positioned the projector so the edges of the image lined up with outer edges of the screen and the boxes. I now knew that the image was 15 feet wide. The horizontal resolution of the image was set to 1366 px, and dividing the width by the number of pixels told me that each pixel was 0.011 foot wide. I set the Watchout position tween formula to divide the position in feet value from Medialon by 0.011 to determine the position in pixels. I tested out the cues I had written and watched as the image moved along with the projector. As I was expecting, the image would lag behind the screen a bit. The faster the screen moved, the greater the lag was. There was also a bit of jitter to the image as it moved. I filmed myself running the cues, and also using jog mod to move the screen, then had Irene run the cues while I walked around the whole system and filmed the various components in action. JM suggested that setting the DWU to one pulse per foot might improve the resolution of the movement. I tried it out, recalculating the soft limits, adjusting the Watchout tween formula, and writing some new cues. I think this may have smoothed out the jitter a bit, but the lag was still there. I reset the resolution to 1024 pulses per foot and packed up for the day.
Edited down some of the footage I shot into two videos and posted them to YouTube 7 hours.
4/3/2015: JM helped me install the winch in the shop and reaved the cable for the system. I clamped the wagon to the cable and we calibrated its movement — it’s actually pretty precise. Learned that what I have been referring to as the “encoder cable” is more properly described as the “limits cable.” Started programming cues. The wheels of the wagon had a tendency to cross over the downstage side of the cable run, so I had to add a guide underneath the wagon to prevent this. Programmed a few more cues, then started setting up the projector and the Medialon and Watchout computers. Unfortunately, I had to cut my work short because my landlord had accidentally locked his keys inside my apartment while working on some repairs there. Still, I feel I got some good work done on the system. 6 hours.o
4/1/2015: Finalized schedule for installing system during spring break. Packed computer equipment into road cases. 1 hour.
3/31/2015: Attached the screen to the wagon. Shot some video of the screen rolling around. 2.5 hours.
3/30/2015: Reattached the encoder to the winch and made sure that the position value would still update in Medialon when I turned the drum of the winch. Took some video of winch parts moving. Measured out 40 feet of 3/16″ aircraft cable to use for the installation. 3 hours.
3/28/2015: Came in to put muslin on my screen frame, but Norma pointed out that there was a supply of spare 3′ x 4′ flats that were used for demonstrating scenic painting, so I grabbed one of those and painted it white. Built a wagon for the screen. 4 hours.
3/25/2015: Creative Conners isn’t going to have equipment available until after April 29, which isn’t going to work with the school’s production schedule. I discussed doing a 2-axis system with one axis operated manually with JH and JM. It should be possible to use an encoder with either arduino or a PLC to get position data from the hand-operated line. I had the idea of using a hand winch, attaching a drive shaft to the winch drum, and using that to turn the encoder. I’m going to have to gear the encoder in some way to scale its output to match the winch’s encoder. 1 hour.
3/20/2015: Built frame for projection screen. Contemplated how to attach it to a wagon. 2 hours.
3/15/2015: Had better luck with the Christie projector. I discovered the remote needed to be reset with a switch inside the battery compartment. I still can’t focus or zoom, though. Got the Watchout display computer working with the projector and shot a video of moving the projection around with the winch encoder. 3 hours.
3/14/2015: Composed another e-mail to Gareth proposing the product demonstration idea and sent it to him. 0.5 hour.
3/13/2015: Received a positive response from Gareth Conners to my e-mail. He opened up the possibility of borrowing one of their Stagehand AC systems to test with our winch. Ideally, I would like to also borrow one of their Spotline winches and try creating a two-axis system, but that would incur a large expense for shipping the equipment back and forth. I discussed this with JH and he suggested we could make it worth Creative Conners’ while by letting them do a product demonstration for our students. JM is open to the idea, but the only date open to do it is Thursday, April 16. I will send another e-mail to Creative Conners and see what they think.
I pulled out one of the Christie LW300 projectors and made an attempt to integrate it with my computer system, but I didn’t have much luck. I can’t focus or zoom the image and the remote does not seem to work. I need to spend some time with the manual to figure things out. 3 hours.
3/12/205: I made the revisions suggested by JH to my e-mail requesting information about Creative Conners products and sent it to Gareth Conners along with a link to the video I shot yesterday and a copy of my project proposal. 0.5 hour.
3/11/2015: Talked to JM about the update lag on both the DWU monitor and when I meter the encoder terminals, and he thinks it’s simply a result of the digital processing time required in both cases to update the values. I found a throw distance calculator for the Christie LW300 and determined I would need about 15′ between the projector and the screen.
I also set up a Watchout Stage for the final installation. I assumed the projection would have a horizontal resolution of 1920 px and a physical width of 16 feet (to cover 15 feet of travel distance with a 6″ buffer on either side). 1 pixel would therefore be 16′ / 1920 = 0.00833 feet wide. I set up a Medialon input in Watchout and added this position tween formula to the image: X = Medialon / .0083. Now, when I turn the driveshaft on the encoder, the Medialon image moves the appropriate distance to track the position. Obviously, this is going to require tweaking when I do the actual install.
I shot a video of Medialon updating and the image moving in Watchout as I turned the encoder, and at the same time another video of the DWU display panel updating. I synchronized and composited the two videos together and posted the result on YouTube. 6 hours
3/9/2015: Metered the voltage at the terminals for the encoder’s output wires while moving the drive shaft. The measured voltage is 0 when the shaft is stationary and increases to a few volts when it is moving. There is a significant lag before the voltage returns to zero once the shaft stops turning, which appears to be the source of the delay in the system. I think I can live with the amount of lag, but I wonder if newer encoders have a faster response time? I updated my Medialon project to use a task for polling the DWU, rather than the monitoring function in the Low Level Communicator MXM. 1.5 hours.
3/8/2015: Composed an email to Creative Conners asking for information about their Stagehand Pro AC automation system. I am hoping they will be kind enough to loan me one for a short time to use with this project. Sent the email to JH for feedback. 1 hour.
3/7/2015: Looked again into Medialon control of Watchout and realized that, in Watchout, I needed to go to File > Preferences and make sure that Production Computer Control over TCP/IP was active. Got the footage gathered for my instructional video. Also experimented with encoder some more and noticed that the position value on the DWU also lags behind the movement of the encoder, so the problem is somewhere on that end. 3 hours.
3/6/2015: Frustrating day. I tried to take screengrabs and get footage for creating a video guide to moving an image in Watchout with a Medialon slider, but I could not get it to work, even though I had done it before. I also tried monitoring the winch encoder with Brett’s project again and I realized there is still a pronounced delay. Was I just fooling myself the last time I tried it and it seemed to have no delay, or is some other factor slowing things down? 2 hours.
3/4/2015: Discussed setting up the full-scale system for a test run with JM and JH. I’m going to use a track with a 15′ travel length and a 2′ x 2′ screen. The projector will be a Christie LW300. In order to avoid interfering with other classes, I will install it during Spring Break, beginning Friday, April 3. That way I can leave it set up and come in several times to tweak it. 0.5 hour.
3/2/2015: Repaired pin A in the encoder cable connector and reassembled it. Reattached the connector to the encoder box and rewired it. It all seems to be functioning properly now. Also, I opened up Brett’s Medialon project and tried moving the encoder shaft while it was running. The position data updated without any obvious delay. Apparently the polling function built into the Low Level Communicator MXM is really slow. 3 hours.
2/28/2015: Opened up the encoder cable connector that attaches to the DWU and discovered that the wire for pin A had broken off. If you nudge it, the wire can land in the pin receptacle and make contact, which is why the cable would work intermittently. I will have to try extracting the pin and reconnecting the wire to it. I set up an LLC for the DWU in Medialon. Brett had used a task to poll the DWU for position data, but Medialon recently added a Monitoring feature to their Low-Level Communicator MXM which does the same thing, so I tried using that. I referred to Brett’s project to find the request frame that needs to be sent to the DWU and what part of the response frame contains the value I need. The position data is a float value sent in ASCII format. The method of converting the ASCII back into a real number is complex. Fortunately, Medialon wrote code especially for Brett to do this conversion and added it as a Cue to the Variables Management MXM. All I had to do was create a simple task that calls the Cue when the incoming frame changes.
The monitoring and conversion functions were working, but, when I turned the encoder, there was a lag of half-a-second or more before the value would update in Medialon. The LLC can be set to poll as frequently as every tenth of a second, but the DWU could not respond at that speed. I could go down to 3/10 of a second and get a response back, but there was still pronounced lag in updating. I will experiment to see if there is something I need to do in Medialon to get the update speed up, but I suspect that the problem is within the DWU. 3 hours.
2/27/2015: I removed the connector from the encoder housing – It was attached with Allen screws with locking nuts. I needed to use a small electronics wrench on the nuts in addition to an Allen key on the screws to get them loose. I extracted the pin that the wire had broken off from. We didn’t have any pins of that type available, so I simply soldered the wire to the pin and reinserted it into the connector. I tried attaching the encoder cable and spinning the encoder drive shaft, but it still didn’t cause a change on the DWU. I then detached the cable, reattached it, and restarted the DWU. This time it worked. I tried attaching and reattaching the cable a couple more times, and one time it worked, the other time it didn’t. Obviously, there is still some problem, and it appears to reside in the connection to the DWU, I suspect it has something to do with the continuity problem that we detected in the cable, Perhaps line A in the cable is broken, but if you tighten the connector just so, it achieves continuity and the cable works? 2.5 hours.
2/25/2015: Took a look at the encoder with JM, and discovered that one of the wires had broken free from its pin in the connector assembly. One of the lines in the encoder’s signal cable also seems to not have continuity. Showed the problem to JH and he’s not sure we have the equipment for repairing the damage. I’ll have to get in touch with Chuck at Hudson and find out what needs to be done. 1 hour.
2/20/2015: With JM’s blessing, I removed the encoder box from the winch, with the expectation that I would be able to turn its input shaft and change the position in the DWU without having to have the winch connected and plugged in to 3-phase power. Unfortunately, the position logged by the DWU would not change when I moved the encoder. Perhaps one of the pin connections in the encoder is loose? 1 hour.
2/18/2015: Finally got in touch with Chuck Adomanis at Hudson Scenic! He informed me that, after changing the IP address, the F1 key needs to be pressed for the new address to take effect. The DWU must then be power cycled. He also recommended powering off the network switch and powering it back up before turning the DWU back on. I followed his advice and was finally able to ping the DWU. He warned me that our older system is converting serial data into ethernet messages, so the position polling speed may be too slow for what I’m trying to do. I may still need to use an Arduino system to get the information directly from the encoder. Chuck also told me that their newer equipment is much faster and that a lot of their clients are making use of this technology. He noted that video sync often seems to be problematic during acceleration and deceleration and suggested I try cues with radically different accel and decel values to see how well my system performs. I also gathered screen shots and footage for creating a video tutorial on controlling the position of an image in Watchout with a MIDI controller. 3 hours.
2/17/2015: Figured out how to change the position of the image in Watchout using a slider in Medialon. I added a Generic Input to Watchout called “Medialon” and set its Limit to 1680 (the pixel-width of the Watchout Display screen). In Medialon, I created a Dataton Watchout IP device and set it to the address of the Watchout Production computer. I created a slider in Medialon with a range between 0 and 1680. Next, I created a Medialon task that uses a Set Input command to apply the slider’s value to the Medialon input in Watchout. Finally, I added a position tween to the image in Watchout and used the formula button to apply the Medialon input value to the X position of the image. Now, moving the slider in Medialon will move the center of the image back and forth between the left and right edges of the display screen (from 0 to 1680 pixels).
I also discussed using Arduino to gather position data with JM, and he thinks it should be possible to directly tap the output of the winch’s encoder and thus get around the DWU roadblock. 2 hours.
2/13/2015: Learned how to use an external MIDI control to change the position of an image in Watchout. You have to open the Input window, click the down-facing triangle in the upper-right corner, and select ‘Add MIDI Controller…’ Give it a name and use Learn to select the control you want to use. Turning the control should now change the Value status bar in the Input window (input values are scaled to a range between 0.000 and 1.000) Double-click on the name of the image in the Media window and select ‘Optimize For: More Effects and Capabilities.’ Select the image in the Timeline window and create a Position Tween for it. Double-click the image in the Timeline, go to the Advanced tab and check ‘External Control of Position, Scale & Rotation.’ Click the yellow formula button in the header area of the position tween. Use the name of your Input control to write the formula for changing a parameter. For example, write the formula ‘PositionX * 1000’ in the X parameter box. The PositionX controller will now move the image horizontally between 0 and 1000 pixels on the Stage.
Also started researching Arduino and thinking about how to set up a small-scale system. 3 hours.
2/12/2015: More and more convinced that building the small-scale version of this system is the way to start out. Even if Hudson never gets back to me and Creative Conners are unwilling to provide me with equipment, I could still attach my homebrew encoder to the large-scale system and use it for gathering position data.
2/11/2015: Tried calling Chuck at Hudson again but did not get through. A couple of City Tech students visited Hudson today for Project Management class, and they reported back that the shop is really slammed with work, which is probably why Chuck isn’t responding. JH took a look through the system I have installed and confirmed that I haven’t made any obvious errors and I should be able to communicate with the DWU over the network. My fear is that the firmware currently installed on the DWU disables the ethernet connection and a different firmware version needs to be installed manually by Chuck for it to work. Who knows when that will happen? In the meantime, I added a Watchout Display computer to my system. I can at least work on using Medialon to move a projected image around in Watchout.
I also started thinking about other ways of getting around the Hudson roadblock. JM is going to ask some contacts who have experience working with the DWU if they can give me any advice. I also want to approach Creative Conners about their automation system and perhaps persuade them to loan me one for this project. Even if Hudson finally comes through and I get the DWU working, I could use the second winch to experiment with a two-axis version of this project (plus the school has been considering purchasing one of their winches and this would be a good chance to test one out). I also discussed building a miniature version of the system using a cheap encoder and using either arduino or a PLC to gather position data and transmit it to Medialon. 2 hours.
2/10/2015: I looked more carefully through Brett Lohr’s documentation and it looks like he was able to poll the position data from the DWU within Medialon without requiring additional software like KEPServerEX. Spent a few frustrating hours trying to see the DWU on the ethernet network. I opened up Brett’s Medialon and KEPServer files to see how he was communicating with the DWU, tried various IP settings, and went through every setup menu, but I could not get communication going. If I can’t get in touch with Hudson to help me with this very soon, I’m going to have to think about other options, like approaching Creative Conners about loaning me one of their winches to work with. 3 hours.
2/9/2015: Gave Chuck Adomanis at Hudson Scenic a call to ask him about the DWU, left him a message. Sent an email to Eric Cantrell at Medialon asking if he knew anything about an MxM for Hudson scenic hardware being created. He replied that Chuck spoke with him a few times about making one, but it hadn’t ever happened. I think I may need a program to recognize the OPC messages from the DWU, so I downloaded KEPServerEX for that. 0.5 hour.
2/8/2015: Another possibility occurs to me regarding ethernet communication with the DWU: I’ve been assuming that, when the winch is running, the position encoder transmits a stream of data indicating its changing status. Perhaps the monitoring computer actually needs to send a position request message to the DWU before it will transmit the data…
2/7/2015: Tried hooking up the winch and DWU again and the system now seems to be functioning properly. I probably did not properly seat one of the encoder cable’s connectors yesterday. I set up the Medialon PC nearby and attempted to get network communication working, unfortunately without success. I believe I set the IP addresses and subnet masks properly for both machines, but I could not ping the DWU, there was no sign of it when I did an arp table lookup, and no messages from it appeared in Wireshark. One thing I did learn was that the DWU’s power needs to be cycled before changes to its ethernet settings will take effect, but doing that didn’t solve the problem. I’m thinking that the issue may be that the data from the DWU is not in TCP format, so network tools like ping and arp don’t function. Maybe I need to use an automation monitoring program like KEPServerEX or set up an LLC in Medialon in order to monitor the data. However, it seems like Wireshark would still pick up the data, whatever form it is in. I sent an email to JH about it, but I will have to wait until next week to get it sorted out. 4.5 hours.
2/6/2015: Practiced hooking up the DWU and winch and tried jogging it and running some cues. It did not behave as I expected – the position did not seem to be updating and when I tried to run a cue, the winch just kept running until it suddenly stopped and I got a “Motor Overload” error on the Drive Rack. JM informed me that running a motor at low speed for a long time can cause it to overheat (since the fan is not running fast enough to cool it off), so the Drive probably shut the motor off when it sensed this. I have a strong suspicion that the DWU was not getting information back from the winch encoder, but I didn’t have time to figure out why not. 1.5 hours.
I also discovered a binder stashed in the back of the DWU that contains dozens of pages of detailed information about the DWU’s data protocol and networking. It should be very useful!
2/4/2015: Second meeting of Culmination Project class. Submitted my final project proposal and my mentor agreement signed by JH. We discussed how to set up an ePortfolio. Informed JM that I want to come in this Saturday to experiment with operating the winch and DWU and analyzing position data. 1 hour.
Made arrangements with John Robinson for a Medialon computer, as well as two more PCs for running Watchout Production and Display software, to be pulled from school stock. Sent an e-mail to Brett Lohr introducing myself and inquiring if he still has a copy of the Medialon file he created for his project which he could send to me. 0.5 hour.
2/3/2015: Revised my project proposal according to JH’s suggestions and the guidelines given to us in class. 6 hours.
2/2/2015: Still no word back from Hudson. I made photocopies of Brett Lohr’s culmination project paperwork and spent some time going through it with JH. Brett did a lot of work on getting Medialon to interpret the position data from the DWU and documented it well. JH suggested I reach out to Brett and ask if he still as a copy of his Medialon file which he can send me. JH also said I should get in touch with John Robinson and request a PC with a Medialon Lite license for my project. 0.5 hour.
1/30/2015: Hudson Scenic haven’t responded to JH’s email, and he is getting frustrated with them (apparently they have been bad about responding to him for a while now). We may end up asking Creative Conners if they are willing to loan us one of their winch systems to work with instead. I took a look through the school’s archive of Culmination Projects to find one done by Brett Lohr back in 2007. He did some work analyzing the DWU’s data protocol and integrating it with Medialon. I confirmed we still have the documents he created and will go through them thoroughly next week. 0.5 hour.
1/29/2015: JH sent the proposal email to Hudson Scenic. I started reading the section in Mechanical Design for the Stage about tracked scenery. 1 hour.
1/28/2015: First meeting of Culmination Project class. Presented basic outlines of our project ideas. Discussed using OpenLab, scheduling work throughout the semester, selecting a faculty mentor, and what paperwork is due at the next class meeting. 1 hour.
John Huntington (JH) agreed to be my faculty mentor for the project. He recommended narrowing the scope of the project to a single axis of motion. It will look better to present a simple system that performs with a high degree of precision and reliability than a more complex system that doesn’t work well at all. We also briefly discussed some prior work on reading position encoder information from the Hudson Scenic DWU into Medialon which had been done by Brett Lohr, a former student. I provided JH with a PDF of my draft proposal so he could send it to his contacts at Hudson Scenic and ask them if any pertinent updates had been made to the DWU OS since that time. 0.5 hour.
1/27/2015: Created a draft proposal, Gantt chart, and block diagram for my project, based on the practice proposal I created in Project Management last semester. 4 hours.