Friday, February 22, 2013

CRD 3-40 brain/google dump

I like to start a project by googling everything that is even somewhat related to the target area in order to get a better idea of what I'm up against.   Here's a dump of the info I've obtained so far


(Operates in 4x mode, seems fairly plug-and-play (with tweaks to the register size, of course))

SPI controller, for controlling SPI-DAC (which sets the current that the stepper controller will allow):
2 options:



Pull-type solenoid:
McMasterCarr:
24VDC, 1" Stroke, continuous duty cycle, $19.92, 70155K46

(the 1.8-degree stepper and the 1000-line quadrature encoder have already been obtained, the opto-interrupter is not really worth mentioning here)

Some specs on a lock (imprecise measurements, I'll get better ones once I get my hands on a caliper):
Diameter:  1-7/8"
Shackle Travel:  5/8"
Shackle outside width: 1-3/8"
Shackle inside width: 13/16"
Shackle diameter:  1/4"
Unlocked Height:  3-9/16"
Locked Height:  2-15/16"

A stepper control "wing" for the papilio fpga board, that includes some sample code and uses a similar IC to the one that we're using:

Some links on the zedboard.org page regarding Linux stuff:
(projects:)
Xilybus (simplified i/f between Linux and PL): http://www.zedboard.org/node/728
Device Tree Tutorial: http://www.zedboard.org/node/529
Xilinux - Ubuntu on Zed: http://www.zedboard.org/node/201

My Embedded design lab has more or less finalized on a project: The Breach CRD 3-40

Well we've got a basic plan:
Make a device that automates the following algorithm (courtesy of http://www.wikihow.com/Crack-a-%22Master-Lock%22-Combination-Lock):

  1. Determine the beginning of a sticking range by pulling on the shackle with the solenoid and attempting to rotate the dial counter-clockwise at low current until a stall occurs.  Use a back-and-forth move procedure to find the center of sticking range (known as the "sticking point") using the encoder position register.  Release the solenoid, turn the lock a full digit, and repeat the process around the dial finding a total of 12 sticking points
  2. Of the 12 sticking points, discard any that roughly correspond to half-digit locations on the dial.
    1. If five sticking points remain, the third number in the combo is the sticking point that doesn’t share its last digit with the others (e.g. with 4,14,24,27,34, the third number would be 27, since the others all end in 4)
    2. If four sticking points remain, the third number is one of the four.  This seems to be prevalent in newer the "Shim-Resistant" locks
  1. Calculate the ‘Magic Number’ = ‘Third Number’ % 4
  2. The ten possible first numbers will be ‘Magic number’ + i*4, where i=0..9
  3. The ten possible second numbers will be ‘Magic number’ - 2 + i*4, where i=0..9
  4. The two possible second numbers that are the 'Third Number' +/- 2 can be removed
  5. Once all of the potential numbers have been calculated, increase the motor current (to prevent stalling), and try all possible combinations of first, second, and third numbers using an intelligent brute force method until the correct  combination is found.
Using the Zedboard as the brains of this operation, we will spin a custom board to interface with the necessary electromechanical systems (at this point:  stepper motor to turn the dial, quadrature encoder for feedback, pull-type solenoid to actuate the shackle, and opto-endstop to act as limit switch to determine when we have successfully opened the lock)

Saturday, February 2, 2013

Hello W- NO!! I am not going to do that clichéd first post

Greeting all, and welcome to my corner of the internet.

I made the probably-misguided decision to partake in three different senior design-type classes this semester, in addition to my work on the robot team here on campus. This blog is a place where I will be documenting my current work, as much a means of organizing my thoughts as it is a means of public discourse.

In my embedded systems design lab, my group will be building some type of robot,

In my independent study, I'm working on FPGA-based vision processing

In my digital engineering lab, we're still determining groups and projects

On the robot team, my current project is an experiment with the use of a bi-color LED to transmit quadrature encoder data

Stay tuned for updates on the projects, likely when my inspiration for actually being productive has reached a low (like right now, for example).  Any thoughts/comments/words of dis- encouragement are welcomed.