Wiki source code of Project Documentation
Version 14.1 by stu122612 on 2020/03/03 18:45
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
3.1 | 1 | == Project Milestones == |
| 2 | |||
| |
4.1 | 3 | (% class="wrapped" %) |
| |
3.1 | 4 | |=((( |
| 5 | Date | ||
| 6 | )))|=((( | ||
| 7 | Milestone | ||
| 8 | )))|=((( | ||
| 9 | Comment | ||
| 10 | ))) | ||
| 11 | |((( | ||
| 12 | 23.10 | ||
| 13 | )))|((( | ||
| 14 | Kick-Off Meeting | ||
| 15 | )))|((( | ||
| 16 | \\ | ||
| 17 | ))) | ||
| 18 | |((( | ||
| 19 | 22.11 | ||
| 20 | )))|((( | ||
| 21 | Proposal talk | ||
| 22 | )))|((( | ||
| 23 | \\ | ||
| 24 | ))) | ||
| 25 | |(% colspan="1" %)(% colspan="1" %) | ||
| 26 | ((( | ||
| 27 | 06.12 | ||
| 28 | )))|(% colspan="1" %)(% colspan="1" %) | ||
| 29 | ((( | ||
| 30 | First fully operative | ||
| 31 | prototype | ||
| 32 | )))|(% colspan="1" %)(% colspan="1" %) | ||
| 33 | ((( | ||
| 34 | program actuates flippers dependent on ball recognition | ||
| 35 | |||
| 36 | logic only rudimentary - repeatedly trigger both flippers if ball is below threshold | ||
| 37 | |||
| |
10.1 | 38 | ([[see video>>url:https://youtu.be/heWC7CDigWQ||shape="rect"]]) |
| |
3.1 | 39 | ))) |
| 40 | |((( | ||
| 41 | \\ | ||
| 42 | )))|((( | ||
| 43 | \\ | ||
| 44 | )))|((( | ||
| 45 | \\ | ||
| 46 | ))) | ||
| 47 | |||
| |
14.1 | 48 | == Overview == |
| |
3.1 | 49 | |
| |
14.1 | 50 | |
| 51 | |||
| 52 | {{children all="true" depth="2"/}} | ||
| 53 | |||
| |
3.1 | 54 | == Components == |
| 55 | |||
| |
7.1 | 56 | This section is meant to collect the latest considerations for the system components. |
| |
3.1 | 57 | |
| |
8.1 | 58 | === Vision/Ball Detection === |
| |
3.1 | 59 | |
| |
8.1 | 60 | * Flashing lights need to be masked or excluded by means of color to prevent misdetections |
| 61 | * The pixel coordinates should be translated to a custom coordinate system, s.t. chnages in resolution or exact camera position can be abstracted from | ||
| 62 | |||
| |
3.1 | 63 | === Pinball Controller === |
| 64 | |||
| 65 | === Ball Physics Model === | ||
| 66 | |||
| |
8.1 | 67 | * For now the physics model passes a single number, the time the ball is predicted to be in range, i.e. when to trigger the flippers. |
| 68 | For the logic to be able to perform meaningful computation more information needs to be passed, e.g.: | ||
| 69 | ** **Position** the ball is predicted to be at at the corresponding time | ||
| |
9.1 | 70 | ** **Velocity **vector of the ball |
| |
8.1 | 71 | * Gravity on (% lang="en" %)inclined plane |
| 72 | |||
| 73 | * (% lang="en" %)Different ball behavior when rolling down the inlanes | ||
| 74 | |||
| 75 | * (% lang="en" %)Bounce back on collision, especially with the resting flippers (not all shot should be taken as a volley) | ||
| 76 | |||
| |
3.1 | 77 | === Main Program === |
| 78 | |||
| 79 | \\ | ||
| 80 | |||
| |
4.1 | 81 | == Hardware == |
| 82 | |||
| 83 | * Raspberry Pi 3 B+ | ||
| 84 | ((( | ||
| 85 | * 4 CPU-Core | ||
| 86 | * 1 GB RAM | ||
| 87 | * 26 GPIO-Pins | ||
| 88 | ))) | ||
| 89 | |||
| 90 | * Pi NoIR Camera V2((( | ||
| 91 | * Sony IMX219 sensor | ||
| 92 | * 3280 x 2464 resolution | ||
| 93 | * Up to 90 frames per second (at 640x480) | ||
| 94 | ))) | ||
| 95 | |||
| 96 | * Relais box | ||
| 97 | ** Four 5V-relays (three in use)((( | ||
| 98 | * To actuate the three flippers | ||
| 99 | ))) |