{"id":540,"date":"2019-07-04T19:37:55","date_gmt":"2019-07-04T19:37:55","guid":{"rendered":"http:\/\/www.mrbenshoof.com\/Engineering\/?p=540"},"modified":"2019-07-05T17:39:20","modified_gmt":"2019-07-05T17:39:20","slug":"arcade-machien","status":"publish","type":"post","link":"https:\/\/www.mrbenshoof.com\/Engineering\/apcs\/arcade-machien\/","title":{"rendered":"Arcade Machine"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;3.25.4&#8243; custom_padding=&#8221;3px||4px|||&#8221;][et_pb_row _builder_version=&#8221;3.25.4&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25.4&#8243;][et_pb_text _builder_version=&#8221;3.25.4&#8243; text_font=&#8221;|||on|||||&#8221; text_text_color=&#8221;#494949&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;||||||||&#8221; header_4_font=&#8221;Elegant Icons||||||||&#8221;]<\/p>\n<h4 style=\"display: inline-block\">&#x5a;<\/h4>\n<p style=\"display: inline-block\">Design Brief<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;1_2,1_2&#8243; custom_margin=&#8221;0px||&#8221; _builder_version=&#8221;3.25.3&#8243;][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;3.25.3&#8243;][et_pb_text _builder_version=&#8221;3.25.3&#8243;]<\/p>\n<p>Problem Statement: \u00a0We want to build a functionin arcade machine that can allow up to four players to play classic arcade games, and maybe even games we program ourselves.<\/p>\n<p>Deadline: \u00a03 months (end of summer)<\/p>\n<p>Audience &amp; Scope: \u00a0Students at Lathrop<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;1_2&#8243; _builder_version=&#8221;3.25.3&#8243;][et_pb_text _builder_version=&#8221;3.25.3&#8243; text_font=&#8221;||||||||&#8221; header_font=&#8221;||||||||&#8221;]<\/p>\n<p>Criteria: \u00a0The arcade machine must be usable by at least 4 players. \u00a0It needs to have classic arcade style interface, and it must be able to run at least the simpler classic games.<\/p>\n<p>Constraints: \u00a0The arcade machine needs to cost us less than $100 in new materials to build, it must have a control panel height appropriate for high school students, and it must be able to fit through the doorways between the engineering room and the cafeteria.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;3.25.4&#8243; min_height=&#8221;282px&#8221; custom_padding=&#8221;9px||3px|||&#8221;][et_pb_row custom_padding=&#8221;0px|||||&#8221; custom_margin=&#8221;-1px|auto||auto||&#8221; _builder_version=&#8221;3.25.3&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25.3&#8243;][et_pb_text _builder_version=&#8221;3.25.4&#8243; text_font=&#8221;|||on|||||&#8221; text_text_color=&#8221;#494949&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;||||||||&#8221; header_4_font=&#8221;Elegant Icons||||||||&#8221;]<\/p>\n<h4 style=\"display: inline-block\">&#xe037;<\/h4>\n<p style=\"display: inline-block\">  THE BUILD<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;3.25.4&#8243; custom_margin=&#8221;||-3px|||&#8221;]<\/p>\n<p>In the winter of 2016, Andrew, Colin, Jake, and Jason where working in AP Computer Science and suggested that &#8220;we should build an arcade machine!&#8221;. \u00a0After a quick search, they found some <a href=\"https:\/\/www.amazon.com\/EG-Starts-Illuminated-Compatible-Raspberry\/dp\/B071WC7TGK\/ref=sr_1_33?keywords=arcade+buttons&amp;qid=1562276898&amp;s=gateway&amp;sr=8-33\">relatively inexpensive arcade buttons on Amazon<\/a> and we purchased them that day. \u00a0Those buttons arrived and sat in a box for a few months until summer rolled around. \u00a0The guys graduated that spring, but decided to come in over the summer to build the arcade machine they had promised. \u00a0The whole build took about 6 weeks with people coming-and-going as summer work schedules allowed.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ControlPrototype.jpg\" width=\"300\" height=\"300\" alt=\"\" class=\"wp-image-589 alignright size-full\" srcset=\"https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ControlPrototype.jpg 300w, https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ControlPrototype-150x150.jpg 150w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>The arcade buttons themselves were the big motivation for building the arcade, and the first step was to put together a prototype of the button configuration.\u00a0 This also gave us a chance to make sure we undertood how the connections between the buttons, joystick, and computer would work.\u00a0 We did quite a bit of research &#8211; going to a local arcade and measuring arcade machines &#8211; to figure out how many buttons each player should have access to.\u00a0 Some of the coolest arcade games we wanted to play only required 2, 3, or 4 buttons so we settled on that.\u00a0 This also let us use the four button colors for every player, spreading the colors out across the control surface in a cool way.<\/p>\n<p>The actual connection behind the buttons was pretty straight-forward.\u00a0 A 4-prong clip connected to each button, providing power for an internal light and enabling the input.\u00a0 Each joystick had a small 6-pin connector that fit right into the back of the joystick, and all these cables attached to a central board (one board per player setup).\u00a0 Then, all of these simply connected through USB to the old computer we had salvaged from our back storage room for the purpose of the arcade.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/TestingThePrototype-300x180.jpg\" width=\"300\" height=\"180\" alt=\"\" class=\"wp-image-590 alignleft size-medium\" srcset=\"https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/TestingThePrototype-300x180.jpg 300w, https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/TestingThePrototype.jpg 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>Once we had simple prototypes wired into some cardboard sheets we were able to do some official testing.\u00a0 So far so good!<\/p>\n<p>The next job was to plan out the overall size of the arcade.\u00a0 We had a criteria that the machine be able to be moved between our engineering lab and the cafeteria or gym using a simple dolly.\u00a0 That meant that at least one of the dimensions of the arcade cabinet needed to be less than the narrowest doorway we would have to wheel it through.\u00a0 This meant that we needed at least one dimension to be less than about 32&#8243;.\u00a0 We decided that the easiest thing to be flexible with was the depth of the machine.\u00a0\u00a0We had purchased a cheap 30&#8243; flatscreen tv off Craigslist to serve as a monitor, so we knew that the overall cabinet could be relatively slim.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/BuildingControlBoard.jpg\" width=\"500\" height=\"300\" alt=\"\" class=\"wp-image-596 alignright size-full\" srcset=\"https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/BuildingControlBoard.jpg 500w, https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/BuildingControlBoard-300x180.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/>The next job was to build the larger, complete control panel knowing that it could be as wide as we needed it for four players.\u00a0 We measured out proper hole sizes for each button type and the joystick, and measured their locations on the control panel.\u00a0 After a lot of second-guessing the design, we eventually cut the nice 1\/2&#8243; birch plywood we had found in our scrap pile for the control panel.\u00a0 We wired all the buttons and controls in place and went for another round of testing, this time with all four players.\u00a0 Still working!<\/p>\n<p>After this, the control panel needed to be boxed into a larger casing so that it could fit onto the larger cabinet.\u00a0 In order to reach our goal of a cabinet depth less than 32&#8243;, we had decided to make the control panel removable.\u00a0 The control panel added quite a bit of depth and bulk, so making it removable would make the machine more mobile, and would also let us show-off the inner workings of the machine when people were curious about how we built it.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/CompletingControlBoard.jpg\" width=\"300\" height=\"450\" alt=\"\" class=\"wp-image-597 alignleft size-full\" srcset=\"https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/CompletingControlBoard.jpg 300w, https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/CompletingControlBoard-200x300.jpg 200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>The assembled control panel now just needed a cabinet to go on.\u00a0 We spent a few days cutting a sheet of 3\/4&#8243; plywood into the panels that would be the sides of the arcade, and used some scrap 1\/4&#8243; as the front panels.\u00a0 Some 2&#8243;x3&#8243; board served as the inner framework that the computer and TV screen were attached to.\u00a0 We hinged the lower front panel and built a small shelf on the inside so that a computer mouse and keyboard could be easily accessible when the user wanted to turn the machine on\/off, or start a different game on the computer stored inside.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ArcadeMachine.jpg\" width=\"300\" height=\"450\" alt=\"\" class=\"wp-image-598 alignright size-full\" srcset=\"https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ArcadeMachine.jpg 300w, https:\/\/www.mrbenshoof.com\/Engineering\/wp-content\/uploads\/2019\/07\/ArcadeMachine-200x300.jpg 200w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>One of the biggest goals of building the arcade was to give us yet another <span style=\"text-decoration: line-through;\">toy<\/span>\u00a0tool to recruit incoming freshmen with.\u00a0 This requires that not only does the machine work properly, but it also needs to look cool.\u00a0 To add to the overall aesthetics of the machine we went about creating a set of images in Photoshop that we could print on our large-format printer and attach to the sides and panels of the arcade machine.\u00a0 The shapes were a little awkward to reproduce in Photoshop exactly, so we&#8217;re revisiting those to try and get them nailed down a little more precisely.\u00a0 All the same, it added some cool color to the plywood sides, and made it obvious that Lathrop Engineering had designed and built it.<\/p>\n<p>The second thing we did to make the arcade machine extra cool was to build in a small shelf inside the machine so that a digital projector could be placed there when it was on display in a public space.\u00a0 The back of the arcade machine has no enclosing panel, so the projector is able to project the image of the game currently being played on a nearby wall.\u00a0 This way, when eight people are crowded around the screen, other people can watch the game as it is projected on the wall.\u00a0 Of course we also put some old speakers in it so that it plays all the music and sound effects you&#8217;d want in an arcade game.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; _builder_version=&#8221;3.25.4&#8243; custom_padding=&#8221;0px||6px|||&#8221;][et_pb_row _builder_version=&#8221;3.25.4&#8243;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;3.25.4&#8243;][et_pb_text _builder_version=&#8221;3.25.4&#8243; text_font=&#8221;|||on|||||&#8221; text_text_color=&#8221;#494949&#8243; text_font_size=&#8221;20px&#8221; header_font=&#8221;Elegant Icons||||||||&#8221; header_4_font=&#8221;Elegant Icons||||||||&#8221;]<\/p>\n<h4 style=\"display: inline-block\">&#xe00a;<\/h4>\n<p style=\"display: inline-block\">Feedback &amp; Future Steps<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=&#8221;3_5,2_5&#8243; custom_margin=&#8221;0px||&#8221; _builder_version=&#8221;3.25.3&#8243;][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;3.25.3&#8243;][et_pb_text _builder_version=&#8221;3.25.4&#8243;]<\/p>\n<p>The final result works well.\u00a0 Students have been able to play a wide variety of classic arcade games, and the games work properly for 1, 2, 3, and 4 players depending on the design of the game itself.\u00a0 The designs on for the sides and panels of the arcade need some work to get them attached properly, and to make sure that they are protected from scuff marks or tearing.\u00a0 To do that, we&#8217;ll probably cover each panel with a clear acrylic panel.\u00a0 In addition, the front door panel has trouble staying closed.\u00a0 We had used simple click-in-place magnetic closures to hold the door closed, but the weight of the keyboard and mouse seem to pull it open.\u00a0 A tougher clasp that can be physically shut would be a good next step.<\/p>\n<p>The coolest next step though would be making our own arcade games.\u00a0 The AP Computer Science group could certainly put together some simple Java games that could read the joystick\/button inputs and use them to update character states in their games. To make that doable, a simple Java library that allowed for basic user interface would be needed.\u00a0 It would also be very helpful to our programmers if such a library had some built in 2D graphic tools to make the graphics not such a heavy lift.\u00a0 Overall though, the arcade machine has been working well and is a lunch-time hit!<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;3.25.3&#8243;][et_pb_text _builder_version=&#8221;3.25.4&#8243; text_font=&#8221;||||||||&#8221; header_font=&#8221;||||||||&#8221; header_3_font=&#8221;|||on|||||&#8221; header_4_font=&#8221;Elegant Icons||||||||&#8221;]<\/p>\n<h4 style=\"display: inline-block\">\ue0e1<\/h4>\n<h3 style=\"display: inline-block\">Total Build Time<\/h3>\n<ul>\n<li>about 30 hours spread over 8 weeks<\/li>\n<\/ul>\n<h4 style=\"display: inline-block\">&#xe036; <\/h4>\n<h3 style=\"display: inline-block\">Materials<\/h3>\n<ul>\n<li>24 light up arcade buttons<\/li>\n<li>4 4-directional joysticks<\/li>\n<li>USB controler boards that came with controls<\/li>\n<li>2 sheets of plywood<\/li>\n<li>1 old computer from the storage room<\/li>\n<li>1 30&#8243; flat screen TV off Craigslist<\/li>\n<li>1 projector (only used for special events)<\/li>\n<li>1 keyboard &amp; mouse<\/li>\n<li>1 long piano hinge<\/li>\n<\/ul>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>That time when a bunch of seniors wanted to build an arcade machine<\/p>\n","protected":false},"author":1,"featured_media":566,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[7,9,8],"tags":[15,14,13,12,11],"class_list":["post-540","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-apcs","category-de","category-makerspace","tag-apcs","tag-de","tag-edd","tag-games","tag-makerspace"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/posts\/540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/comments?post=540"}],"version-history":[{"count":26,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/posts\/540\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/posts\/540\/revisions\/668"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/media\/566"}],"wp:attachment":[{"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/media?parent=540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/categories?post=540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mrbenshoof.com\/Engineering\/wp-json\/wp\/v2\/tags?post=540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}