Comments: Building a Safe Cracking Robot

Pages

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • Hi Nate, great writeup! Thank you.

    I had trouble figuring out one thing though: It looks like the tryHandle() function has been updated to no longer do an analogRead on the output from the servo to determine when it's fully pulled down, but rather uses a digitalRead on servoPositionButton. What is this servoPositionButton? I don't figure out what it's connected to, given the hardware and safe presented in the article.

    • Nate / last year / 1

      Thanks!

      Good eyes. There was two version of the robot. Basically: the original (used on smaller SentrySafes model: SF082CS, no longer sold?) and the version for Defcon (used on the larger SentrySafe model: SF205CV). The larger safe had a much stickier handle which made the hobby servo with analog feedback not usable. So we changed to a basic arcade button located under the handle that was easily adjusted up/down. You can see the white button under the handle on the left side of this photo.

      The handle is pulled by a normal servo, and if the button is depressed we know the safe has been cracked. This made the setup way more straight forward as you simply tell the servo to engage (pull on the handle) when the safe is not locked, then adjust the height of the arcade button until it is low enough that the locked (but pulled on handle) doesn't hit the button. That way, when the safe is truly open, the handle drops further, depressing the button and signifying the safe robot can stop.

      Hope this helps explain it a bit. Thanks for reading!

      • I've tried this build, something I've observed through experiment is that the tapped servo potentiometer feedback is highly inaccurate when stalled: it gives inaccurate readings of (ADC converted) +/- 45 handlePosition steps, whereas when not stalled it's very accurate (+/- 1 step). This made it hard to determine with confidence whether or not the handle actually arrived at the fully opened position. I wonder why it fluctuates when stalled like that. Did you guys notice that at all during your testing?

        In any case, it does suggest that using a button to sense "openness" is a more reliable design.

      • Makes sense now, thanks!

  • thanks for the write up - can't wait to build this and have ordered the parts - but I'm a little stuck on the electronic schematics.

    I've never made or used custom pcbs but installed autodesk eagle software to try and understand the sch & brd files but it fails to load with 'Error:line 8, column 16: This is not an EAGLE file.' for both files.

    I've also tried to understand the pdf in order to breadboard the connections without custom pcb but just can't put it all together in my head & don't want to trial and error in case I blow components. I've created quite a few arduino projects but all with soldered jumpwires rather than custom pcbs and ive never been great at reading electronic diagrams. Any chance some kind soul could post a layman/newbie/idiot manual drawing showing how I can breadboard each component to build this project?

    Many thanks in advance S

    • Hi! The Eagle error is odd. You should be able to open the BRD and SCH files just fine. We do everything in Eagle v7.7. v8 should work fine but may be doing something silly.

      Sorry, I can't whip up a Fritzing diagram right now. Start with the motor controller and motor and get that under control. Don't worry about the 7-segment display or the 'Go' button. There are lots of good examples online for controlling a servo.

      • Thank you very much for taking the time to reply. I downloaded v7.7 and had same problem so obviously an issue with how I was downloading files from github (new to that too). I downloaded the whole project from GitHub as zip and the files then loaded fine into eagle. Now that I can se the full pcb image it is clear which connections go where & I'm all set. Just posting in case there are any others as new to this (slow) as I am - really looking forward to making this project - have an old manifoil lock document box that I forgot the combination to.

  • Did you determine the indent number by hand or is it always 12? Is there a way to use feedback from the motor that dials lock?, what would you do on a lock which the handle only engages after the dial is completely stopped by its internal components? thanks

    • With four data points under our belt: there are always 12 indents.

      We do use feedback from the motor - we use it to measure the widths of the indents.

      Hmm, not sure what we would do with a safe handle that only engages with the dial has stopped. Do you know of such a safe? Which model and manufacturer?

  • The part of me that spends hours playing with Delta Tau motion controllers at work is slightly pained by the tuning on that servo. Still pretty cool though!

  • What caused the robot to fail the second/third/forth retry?

    • Great question - I haven't been able to dig into it. I think it had to do with the initialization code from a given set of combinations. We did a lot of testing from starting 0/97/0, but not nearly as much from the user menu start (xx/yy/zz). If I had to guess I messed up the code and the robot was not correctly going to 24 (disc A) after reset.

  • Excellent! You have inspired me to replace the mechanical lock on my safe with an electronic one -- of my design, of course.


If you've found a bug or have other constructive feedback for our tutorial authors, please send us your feedback!