Last night, Bryan and I finished soldering one complete side of phototransistors and LEDs to the recessing blocks on the foosball table. From the pictures, it's easy to tell that we have a color scheme going on. If you read our post about the sensing boards, then you may already have some intuition about the color-coded nature of the wires.
With all ~400 sensors connected, it would be a daunting task to debug the system if one of the sensors isn't working. Finding that one problematic LED or phototransistor would be a nightmare. I came up with a decent algorithm for color-coding the wires to find out which one is "problematic". To debug our (16) groups of sensors, we need to first find which pair of LED/PT is in error. To accurately do this without a processor, I split the (16) groups (per board) into (4) groups and assigned each LED and phototransistor a number (from 1 to 16) associated with its position along the parameter of the table. Depending on the integer number that represents the LED/PT, there is a special color assigned to it. If it is an LED we're looking for and its number is even, said LED will have a certain color on all boards. If the LED has an odd integer associated with it, there is another distinct color assigned to it. Similarly for the phototransistors, there is an even and odd color assignment. This way, we have a 100% chance of finding which LED/PT is bad in the event of a hardware failure. Also, (16) groups are now represented with just (4) colors.
Ahmed (left) and Bryan (right) working on a second set of sensors along the recessing block two days ago. |
With all ~400 sensors connected, it would be a daunting task to debug the system if one of the sensors isn't working. Finding that one problematic LED or phototransistor would be a nightmare. I came up with a decent algorithm for color-coding the wires to find out which one is "problematic". To debug our (16) groups of sensors, we need to first find which pair of LED/PT is in error. To accurately do this without a processor, I split the (16) groups (per board) into (4) groups and assigned each LED and phototransistor a number (from 1 to 16) associated with its position along the parameter of the table. Depending on the integer number that represents the LED/PT, there is a special color assigned to it. If it is an LED we're looking for and its number is even, said LED will have a certain color on all boards. If the LED has an odd integer associated with it, there is another distinct color assigned to it. Similarly for the phototransistors, there is an even and odd color assignment. This way, we have a 100% chance of finding which LED/PT is bad in the event of a hardware failure. Also, (16) groups are now represented with just (4) colors.
Recessing sensor block with connected LED/PT pairs. |
To test, we connect the LED/PT pairs to the sensing boards (seen underneath the table in the pictures) and connect the phototransistor's pull-down resistor voltage output to an oscilloscope. Based on the address that we read, there will be a voltage output associated with it. If the voltage is at 5V, we know the LED in the pair is emitting and the phototransistor is conducting. From here, we move on to test the next pair in the set.
LEDs and phototransistors connected to the sensing boards (underneath the table). |
One completely connected side of (4) sensor sets. |
That concludes this update. Later, we will program the ARM processor to test each pair by checking the voltage at each multiplexer address.
Coming up:
1. Video of connection and testing of sensing pairs on the other side of the table.
2. Video recording of testing the "kicking" motors.
3. Video recording of testing the motors responsible for lateral motion.
3. Video recording of testing the motors responsible for lateral motion.
4. MORE UPDATES!
No comments:
Post a Comment