{"id":65171,"date":"2022-08-27T20:41:22","date_gmt":"2022-08-28T01:41:22","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/"},"modified":"2022-08-27T20:41:22","modified_gmt":"2022-08-28T01:41:22","slug":"hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/","title":{"rendered":"Hur man \u00e5terskapar det klassiska Pong-spelet med Arduino"},"content":{"rendered":"<div>\n<p>Pong var det f\u00f6rsta tv-spelet n\u00e5gonsin som n\u00e5dde massmarknaden.  F\u00f6r f\u00f6rsta g\u00e5ngen i historien togs konceptet med ett \u201ctv-spel\u201d in i familjens hem, tack vare Atari 2600 \u2013 s\u00e5 det \u00e4r bara r\u00e4tt att vi hyllar denna historiska p\u00e4rla lite.  Nu kan du \u00e5teruppleva det <em>(visserligen n\u00e5got tr\u00e5kigt spel)<\/em> anv\u00e4nder en Arduino och n\u00e5gra vanliga komponenter.<\/p>\n<p>Jag kommer inte att ljuga \u2013 det \u00e4r osannolikt att din dotter kommer att ge upp sin Nintendo DS, och detta kommer inte att ge timmar av n\u00f6je f\u00f6r hela familjen \u2013 men det \u00e4r ett fantastiskt och enkelt projekt f\u00f6r att f\u00f6rb\u00e4ttra din Arduino-kodning.  Och om du precis har b\u00f6rjat, gl\u00f6m inte att kolla in v\u00e5r Arduino-guide f\u00f6r nyb\u00f6rjare.<\/p>\n<p>Vi kommer att g\u00f6ra tv\u00e5 grundl\u00e4ggande kontroller, och videon kommer att matas ut till din TV via en vanlig kompositvideokabel.<\/p>\n<p>F\u00f6r att ta det h\u00e4r projektet till n\u00e4sta niv\u00e5 kan du 3D-skriva ut ett h\u00f6lje.  YouTube-anv\u00e4ndaren PotentPrintables gjorde just det!<\/p>\n<h2 id=\"requirements-for-arduino-pong\"><span class=\"ez-toc-section\" id=\"Krav_for_Arduino_Pong\"><\/span>  Krav f\u00f6r Arduino Pong<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>  <strong>470<\/strong> ohm motst\u00e5nd <em>x1<\/em>   <strong>1k<\/strong> ohm motst\u00e5nd <em>x1<\/em>   <strong>10k ohm potentialm\u00e4tare<\/strong> (<em>vridbart variabelt motst\u00e5nd)<\/em> <em>x2<\/em>   <strong>Arduino<\/strong> <em>x1<\/em> (valfri version)   <strong>RCA<\/strong> plugg <em>x1<\/em> (om du har fler \u00e4n ett kan du koppla upp ljud ocks\u00e5. Ett f\u00f6r videon \u00e4r ett absolut minimum)   <strong>Tryckknapp<\/strong> v\u00e4xla<em> x1<\/em>   <strong>10k<\/strong> ohm motst\u00e5nd<em> x1<\/em>  <\/p>\n<figure>\n<\/figure>\n<p>Du kommer ocks\u00e5 att ladda ner TV Out Arduino-biblioteket h\u00e4rifr\u00e5n \u2013 h\u00e4mta <em>TVoutBeta1.zip<\/em>, den senaste versionen.  Placera de resulterande mapparna i din <em>\/arduino\/bibliotek<\/em> katalogen och starta om Arduino IDE om den redan \u00e4r \u00f6ppen.<\/p>\n<h2 id=\"testing-tv-out\"><span class=\"ez-toc-section\" id=\"Testar_TV_Out\"><\/span>  Testar TV Out<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ta din RCA-kontakt och ta bort det yttre lagret.  Samla upp sk\u00e4rmningen, vrid och l\u00e4gg undan \u00e5t sidan.  Det h\u00e4r \u00e4r din mark.  I mitten ska det finnas ytterligare en kabel med plastsk\u00e4rmning \u2013 igen, skala bort denna s\u00e5 att du har din signalledning.<\/p>\n<figure>\n<\/figure>\n<p>L\u00f6d b\u00e5de 470 ohm och 1k ohm motst\u00e5nden till mittsignallinjen p\u00e5 din RCA-kontakt \u2013 detta ger en synksignal och den faktiska videosignalen, kombinerat f\u00f6r att producera den analoga videoing\u00e5ngen.  Motst\u00e5ndet p\u00e5 470 ohm ska placeras i digital IO-stift D07, medan 1k ohm-motst\u00e5ndet g\u00e5r till stift D09.<\/p>\n<p>Dessa stift st\u00e4lls in av biblioteket vi importerar, s\u00e5 du kan inte \u00e4ndra dem.  En av dina Arduino GND-stift ska g\u00e5 till sk\u00e4rmningen (utanf\u00f6r) av RCA:n.<\/p>\n<figure>\n<\/figure>\n<p>Nu kan du g\u00e5 vidare och ladda in ett exempel;  \u00e4ven om b\u00e5de PAL och NTSC tillhandah\u00e5lls, borde det egentligen inte spela n\u00e5gon roll med moderna digitala TV-apparater \u2013 NTSC-demon fungerade bra f\u00f6r mig trots att jag var i Storbritannien.  Anslut till din TV och b\u00f6r f\u00e5 en h\u00e4rlig retro 3D-kub.  Ooooh ja \u2013 \u00e4r du exalterad \u00e4n?  Jag \u00e4r.<\/p>\n<figure>\n<\/figure>\n<h2 id=\"test-analogue-potentiometer-inputs\"><span class=\"ez-toc-section\" id=\"Testa_analoga_potentiometeringangar\"><\/span>  Testa analoga potentiometering\u00e5ngar<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ok, vi har f\u00e5tt TV-utg\u00e5ngen att fungera, nu ska vi ta ett f\u00f6rs\u00f6k med kontrollerna.  Ledningarna till \u201cgrytorna\u201d \u00e4r inte s\u00e5 kritiska \u2013 var och en ska ha 3 stift, och den centrala producerar n\u00e4stan alltid utsignalen.  Koppla den till A0 och A1 (en f\u00f6r varje kruka).  P\u00e5 ett av sidostiften \u2013 spelar det ingen roll vilken \u2013 koppla upp +5V.  Den andra tappen p\u00e5 andra sidan ska g\u00e5 till marken.<\/p>\n<p>H\u00e4r har jag lagt dem b\u00e5da v\u00e4nda mot vardera p\u00e5 singelbr\u00e4da, eftersom jag bara har korta tr\u00e5dar.  F\u00f6r en polerad produkt vill du anv\u00e4nda en gammal n\u00e4tverkskabel f\u00f6r att ge dig lite distans (s\u00e5 att du faktiskt kan sitta i soffan och spela).<\/p>\n<figure>\n<\/figure>\n<p>Ladda sedan upp en av de grundl\u00e4ggande exempelskisserna som f\u00f6ljer med Arduino \u2013 den analoga ing\u00e5ngen.  Denna demo kommer att blinka den inbyggda lysdioden snabbare eller l\u00e5ngsammare, beroende p\u00e5 ing\u00e5ngen p\u00e5 A0.<\/p>\n<p>Den testar inte den andra A1-potten, men om du har kopplat A0 r\u00e4tt s\u00e5 kan jag inte se hur du skulle g\u00f6ra ett misstag p\u00e5 A1, s\u00e5 l\u00e5t oss anta att det \u00e4r bra och g\u00e5 vidare.<\/p>\n<h2 id=\"add-a-start-switch\"><span class=\"ez-toc-section\" id=\"Lagg_till_en_startbrytare\"><\/span>  L\u00e4gg till en startbrytare<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Slutligen l\u00e4gger vi till en startbrytare p\u00e5 D02.  Se kopplingsschemat h\u00e4r f\u00f6r hur du g\u00f6r det.  Denna switch kommer att anv\u00e4ndas f\u00f6r att starta spelet n\u00e4r du \u00e4r i menyn.<\/p>\n<figure>\n<\/figure>\n<h2 id=\"the-pong-code\"><span class=\"ez-toc-section\" id=\"Pong-koden\"><\/span>  Pong-koden<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Vi anv\u00e4nder n\u00e5gon kod som ursprungligen skrevs av <em>Lamonica<\/em>modifierad av <em>duboisvb <\/em>f\u00f6r tv\u00e5 spelare, och uppdaterad av mig sj\u00e4lv f\u00f6r att anv\u00e4nda den senaste betaversionen av TV-out-biblioteket.  Du kan se och ladda ner koden fr\u00e5n denna pastebin.<\/p>\n<p>Det \u00e4r ganska l\u00e5ng men enkel kod som inte borde kr\u00e4va n\u00e5gon f\u00f6rklaring fr\u00e5n mig.  Som de flesta spel f\u00f6rlitar det sig p\u00e5 ett spell\u00e4ge (meny, i spelet, game over), och l\u00e4ser ing\u00e5ngsv\u00e4rdena f\u00f6r b\u00e5da kontrollerna och switchen varje iteration av loopen.  Ut\u00f6ver det finns metoderna f\u00f6r att rita sk\u00e4rmen, bollen, paddlarna och spellogiken.<\/p>\n<figure>\n<\/figure>\n<p>Observera att koden inkluderar <strong>ljudutg\u00e5ng<\/strong> ocks\u00e5: Jag kunde inte hitta n\u00e5gra fler RCA-kontakter f\u00f6r att testa det, men om du har n\u00e5gra, koppla sedan signalstiftet direkt till D11, och du b\u00f6r f\u00e5 n\u00e5gra behagliga retrotoner.<\/p>\n<figure>\n<\/figure>\n<p>F\u00f6r att vara \u00e4rlig visste jag inte att Arduino ens kunde g\u00f6ra TV-ut utan n\u00e5gon oerh\u00f6rt komplex kodning;  TV-utg\u00e5ngsbiblioteket g\u00f6r det v\u00e4ldigt enkelt.  \u00c4ven om du inte gillar retrospel \u00e4r det ett bra s\u00e4tt att anv\u00e4nda den h\u00e4r grundl\u00e4ggande TV-utg\u00e5ngen f\u00f6r att anv\u00e4nda befintlig utrustning som en billig bildsk\u00e4rmsenhet.  Du kan naturligtvis skriva ut f\u00e4rg ocks\u00e5.<\/p>\n<p>Tror du att du kommer att prova Arduino Pong, eller kanske g\u00f6ra din egen retrovideospelremake?  Ber\u00e4tta f\u00f6r oss i kommentarerna om du har!<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">James Bruce (720 publicerade artiklar)<br \/><\/strong><\/p>\n<p>James har en BSc i artificiell intelligens och \u00e4r CompTIA A+ och Network+ certifierad.  N\u00e4r han inte \u00e4r upptagen som Hardware Review Editor, gillar han LEGO, VR och br\u00e4dspel.  Innan han b\u00f6rjade p\u00e5 MakeUseOf var han ljustekniker, engelskal\u00e4rare och datacenteringenj\u00f6r. <\/p>\n<p>                            Mer fr\u00e5n James Bruce<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Krav_for_Arduino_Pong\" >Krav f\u00f6r Arduino Pong<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Testar_TV_Out\" >Testar TV Out<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Testa_analoga_potentiometeringangar\" >Testa analoga potentiometering\u00e5ngar<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Lagg_till_en_startbrytare\" >L\u00e4gg till en startbrytare<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Pong-koden\" >Pong-koden<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/hur-man-aterskapar-det-klassiska-pong-spelet-med-arduino\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>Pong var det f\u00f6rsta tv-spelet n\u00e5gonsin som n\u00e5dde massmarknaden. F\u00f6r f\u00f6rsta g\u00e5ngen i historien togs konceptet med ett \u201ctv-spel\u201d in i familjens hem, tack vare Atari 2600 \u2013 s\u00e5 det \u00e4r bara r\u00e4tt att vi hyllar denna historiska p\u00e4rla lite. Nu kan du \u00e5teruppleva det (visserligen n\u00e5got tr\u00e5kigt spel) anv\u00e4nder en Arduino och n\u00e5gra vanliga [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":65172,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/ipotek.net\/wp-content\/uploads\/2022\/01\/Hur-man-aterskapar-det-klassiska-Pong-spelet-med-Arduino.jpg","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[34831,4272,29,27,551,163,102,35757],"class_list":["post-65171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-arduino","tag-aterskapar","tag-det","tag-hur","tag-klassiska","tag-man","tag-med","tag-pongspelet"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=65171"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65171\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/65172"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=65171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=65171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=65171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}