added media to builder's manual

This commit is contained in:
ohsqueezy 2023-02-02 18:50:11 -05:00
parent 4b73638d48
commit 2bd04296cb
1 changed files with 41 additions and 7 deletions

View File

@ -7,6 +7,8 @@ Scrapeboard is an alternative controller game that uses a skateboard deck and me
The game is available to play at select game conventions and festivals, but it is also a D.I.Y. project that is not difficult to reproduce. This manual covers how to build a full Scrapeboard system. It includes how to install and test the software, how to build the electronics, and how to fabricate a controller using a skateboard deck, metal pads, and plywood.
![Time lapse of build](https://scrape.nugget.fun/local/manual/Scrapeboard_platform_timelapse.webp)
Audience
--------
@ -27,14 +29,22 @@ History
![Original title screen](www/Babycastles.jpg)
Scrapeboard started in 2017 as a side project of the STORE 2 exhibition at [Babycastles](https://babycastles.com), which Frank, Blake, and Clement, worked on, along with curator Mushbuh and a team of volunteers. The team received a donation of a signed skatedeck from Tony Hawk to be added to the exhibition. After the exhibition, in preparation for [MAGFest](https://super.magfest.org) 2018, Frank and Blake turned the skatedeck into a game controller with the idea of making something similar to Dance Dance Revolution, using a skatedeck instead of the player's feet for input.
Scrapeboard started in 2017 as a side project of the STORE 2 exhibition at [Babycastles](https://babycastles.com), which Frank, Blake, and Clement, worked on, along with curator Mushbuh and a team of volunteers. The team received a donation of a signed skatedeck from Tony Hawk to be added to the exhibition. After the exhibition, in preparation for [MAGFest](https://super.magfest.org) 2018, Frank and Blake created Scrapeboard so they could use the skatedeck as a game controller.
![Playing the original prototype](www/Boarding_2.gif)
The original prototype was created using the signed skatedeck, cardboard, aluminum foil, copper tape, and a [Makey Makey](https://makeymakey.com). The skatedeck was turned into a conductive device by applying copper tape to the bottom of the deck and placing it on a platform made of cardboard and layered aluminum foil. In the center of the platform was a cross section of aluminum foil, separated by bare cardboard and painter's tape from four other sections of aluminum foil outside the cross section. The four outside sections and cross section were connected to the Makey Makey with alligator clips. This served as a proof of concept for the game and was even able to be used for a few events.
![Tony Hawk signed skatedeck](www/clamp.jpg)
The next version of Scrapeboard used four aluminum street signs, a rug, an aluminum sheet, and an Arduino. Four rectangles were cut into the rug to frame the aluminum signs, which were taped to the bottom of the rug with carpet tape. The aluminum sheet was drilled into the bottom of the signed skatedeck. The Arduino circuit was designed using pull-up resistors and a program loop which turned each input low and tested for a connection with the other inputs, so the circuit wouldn't require a ground connection anymore. This version was used for many events but required a lot of repair and maintenance before and after each event.
![The rug prototype](open_graph_card.jpg)
A newer model was made in preparation for [GDC](https://gdconf.com) 2022, using wood, aluminum street signs, steel anchor rings, and the same Arduino circuit. The aluminum street signs were drilled into four pieces of wood which were bracketed together on the underside. The steel anchor rings were fastened to the underside of the skatedeck using machine screws. By the end of 2022, this version had been refined enough to last through multiple events without needing repair, a significant milestone for the project because it opened up the possibility of the game being able to run without constant supervision.
![Collage of scrapeboard action photos at GDC](https://scrape.nugget.fun/local/cover2.png)
Although there are still improvements being worked on, the 2022 model is what this manual is based on and what the instructions will create. Since that model has proven to be durable, the steps to reproduce it can be recommended as a simple method for Scrapeboard players to construct a system of their own. Further improvements are covered by optional steps and more will likely be added in the future.
Supplies
@ -111,12 +121,16 @@ If using a Raspberry Pi, it must have 2GB or higher RAM, and only the Raspberry
##### Imager
![Pi imager home screen](https://scrape.nugget.fun/local/manual/pi_imager_home_screen.png)
1. Get the [Raspberry Pi imager](https://www.raspberrypi.com/software/) software and launch it (note: must be run as authorized user)
2. Choose `"Raspberry Pi OS (other)" -> "Raspberry Pi OS Lite (64-bit)"` under `"Operating System"`
3. Connect your SD card and choose it under `"Storage"`
##### Imager settings tab
![Pi imager settings](https://scrape.nugget.fun/local/manual/pi_imager_settings.png)
1. Click the gear button to open the settings
2. Check off "Set hostname" and change to "scrapeboard"
3. Check off "Enable SSH" with "Use password authentication"
@ -160,7 +174,7 @@ Most likely Python 3 is already installed. If not, install it from the package m
#### Windows, OSX, other
1. Download the appropriate installer from <https://python.org> and follow the system-wide installation instructions.
1. [Download the appropriate installer](https://www.python.org/downloads/) and follow the system-wide installation instructions.
2. If prompted, choose to install pip (the Python package installer) alongside Python.
### Git
@ -175,7 +189,7 @@ Install from the package manager
#### Windows, OSX, other
Download and install from <https://git-scm.com/downloads>
Download and install from <https://git-scm.com/downloads>.
### Pygame
@ -183,7 +197,7 @@ Download and install from <https://git-scm.com/downloads>
Full desktop versions of Raspberry Pi OS will run Pygame normally, so this section only applies to Raspberry Pi OS Lite (no desktop).
Raspberry Pi OS Lite is still using Pygame 1 by default. Scrapeboard, however, is intended to use Pygame 2, which uses SDL2. It is possible to run it on Pygame 1 with SDL1, but 2 is preferred. For Raspberry Pi OS Lite, there are two options. Either use Pygame 1, or compile a custom version of SDL2.
Raspberry Pi OS Lite is still using Pygame 1 by default. Scrapeboard, however, is made to use Pygame 2, which uses SDL2. It is possible to run it on Pygame 1 with SDL1, but 2 is preferred. For Raspberry Pi OS Lite, there are two options. Either use Pygame 1, or compile a custom version of SDL2.
See the following links for more information on why this is necessary.
@ -203,7 +217,7 @@ Install Pygame using the package manager, and it will install Pygame 1.9.6 with
In `/boot/config.txt`
1. Comment out the line `dtoverlay=vc4-kms-v3d`
2. Set the framebuffer resolution by adding these lines to the file
2. Set the framebuffer resolution by adding these lines to the file. The resolution of Scrapeboard is 800x450.
framebuffer_width=800
framebuffer_height=450
@ -290,6 +304,8 @@ Use Git clone with the `--recursive` flag to download both the game and framewor
### Launch
![Launch from command line](https://scrape.nugget.fun/local/manual/launch_from_command_line.png)
It should be possible to run in keyboard mode and test input with key presses now. The `--no-serial` flag is used to indicate keyboard mode.
#### Linux (except Raspberry Pi Lite OS), Windows, OS X
@ -305,7 +321,9 @@ The `--kms` (Kernel Mode Setting) flag is necessary for running on the lite OS b
Electronics
-----------
A simple circuit constructed with either an Arduino or Raspberry Pi is necessary to connect the input pads with the game.
![Finished breadboard](https://scrape.nugget.fun/local/manual/circuit_finished_breadboard.jpg)
A simple circuit constructed with either an Arduino or Raspberry Pi is necessary to connect the input pads with the game. This image shows the finished circuit connected to a Raspberry Pi.
### Circuit
@ -327,11 +345,13 @@ Four input pins on the microcontroller need to be connected to the game's four i
#### Arduino
![Arduino IDE upload](https://scrape.nugget.fun/local/manual/arduino_IDE_upload.png)
Download the [Arduino IDE](https://www.arduino.cc/en/software) and connect it to the Arduino. Make sure the Arduino is connected in `Tools -> Port`. Open [serial/serial.ino](serial/serial.ino) in the IDE. Load the program into the Arduino using `Sketch -> Upload`.
#### Raspberry Pi
The program will run automatically using a Python library that reads the Raspberry Pi's GPIO pins when the game is launched.
The electronics program does not need to be loaded separately onto the Raspberry Pi because the code that reads the Raspberry Pi's GPIO pins is built into the game's Python code.
### Testing the circuit
@ -361,10 +381,14 @@ The controller hardware has two main parts:
* a custom built platform
* the scrapeboard (a modified skatedeck)
![Board and platform assembled](https://scrape.nugget.fun/local/manual/board_and_platform_assembled.jpg)
The platform consists of four metal plates capable of supporting the weight of a person that should not move even under constant friction. The scrapeboard is a regular skatedeck with two round metal pads connected by a thin metal strip attached to the underside.
This manual describes how to use four pieces of plywood as the base for the metal plates. However, it is not necessary to use any specific base, as long as the metal plates are spaced correctly, don't move, and allow the round metal pads on the scrapeboard to scrape over them. The metal could be fastened directly to the floor or a single piece of plywood if the platform doesn't need to be portable.
![Underside routing](https://scrape.nugget.fun/local/manual/underside_routing.jpg)
If using plywood, a router may be used to carve channels for insetting the metal plates, brackets, inner screws, and wiring. These channels can help with portability and durability, but they are not necessary. Steps for doing this are included, but they are marked as optional.
The electronics are assumed to be installed in front of the platform, near where the screen is. If installing the electronics behind the platform, adjust wire lengths and wire channel orientations as necessary.
@ -380,10 +404,14 @@ To avoid confusion between similar parts, the following terms are used:
### Platform
![Finished platform](https://scrape.nugget.fun/local/manual/platform_finished.png)
The platform for a standard Scrapeboard build consists of four evenly spaced metal plates, about 12" × 18" each, spaced 5" apart. The metal plates can be mounted in any manner, as long as they are firmly attached. This manual describes how to mount the metal to four 15" × 21" × 3/4" pre-cut pieces of plywood and bracket the pieces together. It also describes how to use a router to inset the metal parts and wiring, but those parts are optional.
#### Measuring
![Measuring a plate](https://scrape.nugget.fun/local/manual/platform_measuring_plate.gif)
First, measure an outline for the metal, making sure to keep the correct amount of space between the metal plates, close enough together that diagonal moves will register but far enough apart that a single round metal pad on the scrapeboard won't be able to touch two plates simultaneously. Since the round metal pads for the scrapeboard are 4" in diameter, the metal plates should be slightly farther apart, with a 5" gap between each horizontal and vertical neighbor.
1. For each of the wood pieces, measure 2.5" inward from the two inner edges, going along each edge, marking off 2.5".
@ -391,6 +419,8 @@ First, measure an outline for the metal, making sure to keep the correct amount
#### Inset (optional)
![Insetting metal plate](https://scrape.nugget.fun/local/manual/platform_inset_plate.webp)
In order to get the metal plates flush with the platform, it is necessary to remove a thin layer of wood from where the metal will be attached. A router can be used to cut away a thin layer from all parts of the wood other than the cross section between the metal plates, everything other than the 2.5" previously measured on each piece.
1. Insert a 3/4" diameter straight bit into the router.
@ -400,6 +430,8 @@ In order to get the metal plates flush with the platform, it is necessary to rem
#### Machine screw channels (optional)
![Routing screw channels](https://scrape.nugget.fun/local/manual/platform_machine_screw_channels.webp)
Using machine screws and nuts to fasten the metal to the wood has a few advantages over drilling the metal directly into the wood with wood or sheet metal screws. Since machine screws and nuts can be regularly tightened, there is a better chance of them keeping the metal firmly in place throughout the lifetime of the platform, even under heavy friction. Also, they will not be affected by the screw holes stripping if the screws ever need to be removed and reinserted.
In order to use machine screws, there must be 3/4" channels routed into the underside of the platform, so the nuts won't stick out and prevent the platform from sitting flat on the ground. It is only necessary to do this for the inner sides of each metal plate, the sides that touch the cross section, because those are the sides that will be receiving heavy friction.
@ -410,6 +442,8 @@ In order to use machine screws, there must be 3/4" channels routed into the unde
#### Wire channels (optional)
![Making a wire channel](https://scrape.nugget.fun/local/manual/platform_wire_channel.webp)
Putting wire channels under the metal plates can help prevent the wire from being accidentally cut or torn by foot traffic or the scrapeboard.
In order to be able to separate the panels, the wire routing is done separately for each panel with just a short channel on each corner. However, if the platform doesn't need to be portable, the channels can be customized so all wires emerge from the front of the platform.