Wiki source code of Project Documentation
Version 13.1 by stu122612 on 2020/03/03 18:42
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | == Project Milestones == | ||
| 2 | |||
| 3 | (% class="wrapped" %) | ||
| 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 | |||
| 38 | ([[see video>>url:https://youtu.be/heWC7CDigWQ||shape="rect"]]) | ||
| 39 | ))) | ||
| 40 | |((( | ||
| 41 | \\ | ||
| 42 | )))|((( | ||
| 43 | \\ | ||
| 44 | )))|((( | ||
| 45 | \\ | ||
| 46 | ))) | ||
| 47 | |||
| 48 | \\ | ||
| 49 | |||
| 50 | == Components == | ||
| 51 | |||
| 52 | This section is meant to collect the latest considerations for the system components. | ||
| 53 | |||
| 54 | === Vision/Ball Detection === | ||
| 55 | |||
| 56 | * Flashing lights need to be masked or excluded by means of color to prevent misdetections | ||
| 57 | * The pixel coordinates should be translated to a custom coordinate system, s.t. chnages in resolution or exact camera position can be abstracted from | ||
| 58 | |||
| 59 | === Pinball Controller === | ||
| 60 | |||
| 61 | === Ball Physics Model === | ||
| 62 | |||
| 63 | * 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. | ||
| 64 | For the logic to be able to perform meaningful computation more information needs to be passed, e.g.: | ||
| 65 | ** **Position** the ball is predicted to be at at the corresponding time | ||
| 66 | ** **Velocity **vector of the ball | ||
| 67 | * Gravity on (% lang="en" %)inclined plane | ||
| 68 | |||
| 69 | * (% lang="en" %)Different ball behavior when rolling down the inlanes | ||
| 70 | |||
| 71 | * (% lang="en" %)Bounce back on collision, especially with the resting flippers (not all shot should be taken as a volley) | ||
| 72 | |||
| 73 | === Main Program === | ||
| 74 | |||
| 75 | \\ | ||
| 76 | |||
| 77 | == Hardware == | ||
| 78 | |||
| 79 | * Raspberry Pi 3 B+ | ||
| 80 | ((( | ||
| 81 | * 4 CPU-Core | ||
| 82 | * 1 GB RAM | ||
| 83 | * 26 GPIO-Pins | ||
| 84 | ))) | ||
| 85 | |||
| 86 | * Pi NoIR Camera V2((( | ||
| 87 | * Sony IMX219 sensor | ||
| 88 | * 3280 x 2464 resolution | ||
| 89 | * Up to 90 frames per second (at 640x480) | ||
| 90 | ))) | ||
| 91 | |||
| 92 | * Relais box | ||
| 93 | ** Four 5V-relays (three in use)((( | ||
| 94 | * To actuate the three flippers | ||
| 95 | ))) |