{"id":65026,"date":"2022-08-27T11:43:43","date_gmt":"2022-08-27T16:43:43","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/"},"modified":"2022-08-27T11:43:43","modified_gmt":"2022-08-27T16:43:43","slug":"programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/","title":{"rendered":"Programmera din Arduino 4x4x4 LED-kub f\u00f6r att g\u00f6ra n\u00e5gra mer fantastiska saker"},"content":{"rendered":"<div>\n<p>F\u00f6rra veckan byggde jag en LED-kub \u2013 <strong>64 lysdioder<\/strong> att du kan programmera f\u00f6r att g\u00f6ra fantastiska futuristiska ljusshower \u2013 och jag hoppas att du ocks\u00e5 gjorde det, f\u00f6r det \u00e4r ett fantastiskt projekt f\u00f6r att motivera dig och ut\u00f6ka din Arduino-f\u00e4rdighet.  Jag l\u00e4mnade dig med n\u00e5gra grundl\u00e4ggande appar f\u00f6r att f\u00e5 dig att t\u00e4nka, men idag kommer jag att presentera n\u00e5gra fler programvaror som jag skapade f\u00f6r kuben, tillsammans med kodf\u00f6rklaringar.  Syftet med detta \u00e4r b\u00e5de att ge dig n\u00e5gra fler vackra ljusshower att k\u00f6ra, men ocks\u00e5 att l\u00e4ra dig om n\u00e5gra av begr\u00e4nsningarna med att programmera kuben, och l\u00e4ra dig n\u00e5gra nya programmeringskoncept i processen.<\/p>\n<p><em>Det h\u00e4r \u00e4r ganska avancerad kodning;  du m\u00e5ste verkligen ha l\u00e4st alla mina tidigare Arduino-tutorials och v\u00e5r Arduino-guide f\u00f6r nyb\u00f6rjare innan du anpassar koden som tillhandah\u00e5lls.<\/em><\/p>\n<h2 id=\"app-1-mini-snake\"><span class=\"ez-toc-section\" id=\"App_1_Mini_Snake\"><\/span>  App 1: Mini Snake<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Ist\u00e4llet f\u00f6r att k\u00f6ra en fast ormliknande m\u00f6nstersekvens ville jag programmera en orm \u2013 en konstgjord som skulle g\u00f6ra sina egna slumpm\u00e4ssiga val och vara helt of\u00f6ruts\u00e4gbar.  Det \u00e4r begr\u00e4nsat till endast 2 segment, vilket jag ska f\u00f6rklara senare, och du kan se demon nedan.  Ladda ner hela koden h\u00e4r.<\/p>\n<p><iframe loading=\"lazy\" title=\"4x4x4 LED cube - 2 segment SNAKE\" width=\"770\" height=\"433\" src=\"https:\/\/www.youtube.com\/embed\/XpNkCG-S0CU?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>N\u00e4r du hanterar 3D-utrymme beh\u00f6ver du tre koordinater f\u00f6r en enda punkt: <strong>X,<\/strong> <strong>Y<\/strong>och <strong>Z<\/strong>.<\/p>\n<figure>\n<\/figure>\n<p>Men i v\u00e5r kub representeras X- och Z-planen av LED-stift, medan Y \u00e4r direkt mappad till katodplanen.  F\u00f6r att underl\u00e4tta arbetet med dessa koordinater och r\u00e4kna ut r\u00f6relse runt kuben skapade jag d\u00e4rf\u00f6r en ny datatyp <em>(med struct)<\/em> att representera en enda punkt p\u00e5 kuben \u2013 som jag kallade \u201cxyz\u201d.  Den best\u00e5r av bara tv\u00e5 heltal: \u201cxz\u201d och \u201cy\u201d.  Med denna struktur skulle jag d\u00e5 ocks\u00e5 kunna representera en riktning, angiven nedan i v\u00e5rt speciella (xz,y) koordinatsystem:<\/p>\n<p><strong>Y r\u00f6relse<\/strong> <em>(upp ner)<\/em>: (xz,y+1), (xz, y-1)<\/p>\n<p><strong>Z<\/strong> <strong>r\u00f6relse<\/strong> <em>(fram\u00e5t, bak\u00e5t)<\/em>: (xz-1, y), (xz+1, y)<\/p>\n<p><strong>X-r\u00f6relse<\/strong> <em>(v\u00e4nster h\u00f6ger)<\/em>: (xz+4, y), (xz-4,y)<\/p>\n<p>Till exempel f\u00f6r att flytta lysdioden i l\u00e4ge<strong> (0,0)<\/strong> en till v\u00e4nster, vi ans\u00f6ker <strong>(xz+4, y)<\/strong> och sluta med <strong>(0,4)<\/strong>.<\/p>\n<p>Det finns vissa begr\u00e4nsningar som s\u00e4tts f\u00f6r r\u00f6relse \u2013 n\u00e4mligen att Y-koordinater bara kan vara m\u00f6jliga <strong>0 till 3<\/strong> (0 \u00e4r det undre lagret, 3 \u00e4r det \u00f6versta), och XZ-koordinater kan bara vara det <strong>0 till 15<\/strong>.  En ytterligare begr\u00e4nsning s\u00e4tts p\u00e5 Z-r\u00f6relsen f\u00f6r att f\u00f6rhindra att \u201choppa\u201d fr\u00e5n baksidan till framsidan av kuben, och vice versa.  I det h\u00e4r fallet anv\u00e4nder vi modulfunktionen f\u00f6r att testa f\u00f6r multipler av 4 och f\u00f6rneka det r\u00f6relsef\u00f6rs\u00f6ket.  Detta \u00e4r logik representeras i <strong>giltig()<\/strong> funktion, som returnerar ett sant om den f\u00f6reslagna riktningen \u00e4r ett acceptabelt drag, och falskt annars.  Jag har lagt till ytterligare en funktion f\u00f6r att leta efter en <strong>omv\u00e4nd riktning<\/strong> \u2013 det vill s\u00e4ga om ormen \u00e4r p\u00e5 v\u00e4g \u00e5t ett h\u00e5ll vill vi inte att den ska g\u00e5 bakl\u00e4nges p\u00e5 sig sj\u00e4lv, \u00e4ven om det annars \u00e4r en giltig plats att flytta till \u2013 och en <strong>flytta()<\/strong> funktion, som tar en koordinat, en riktning och returnerar den nya koordinaten.<\/p>\n<p>De <strong>XYZ<\/strong> data typ, <strong>giltig()<\/strong>, <strong>flytta()<\/strong> och <strong>omv\u00e4nd()<\/strong> funktioner kan alla hittas i <strong>xyz.h<\/strong> fil i nedladdningarna.  Om du undrar varf\u00f6r detta lades in i en separat fil ist\u00e4llet f\u00f6r huvudprogramfilen, beror det p\u00e5 n\u00e5gra komplicerade Arduino-kompilatorregler som hindrar funktioner fr\u00e5n att <strong>returnera anpassade datatyper<\/strong>;  de m\u00e5ste placeras i sin egen fil och sedan importeras i b\u00f6rjan av huvudfilen.<\/p>\n<p>Tillbaka i huvudruntime-filen lagrar en rad anvisningar alla m\u00f6jliga r\u00f6relser som ormen kan g\u00f6ra;  vi kan helt enkelt v\u00e4lja en slumpm\u00e4ssig arraymedlem f\u00f6r att f\u00e5 en ny riktning.  Variabler skapas ocks\u00e5 f\u00f6r att lagra den aktuella platsen (nu), den f\u00f6reg\u00e5ende <em>riktning<\/em> och tidigare <em>plats<\/em>.  Resten av koden borde vara ganska uppenbar f\u00f6r dig;  bara f<strong>o<\/strong>r loopar och t\u00e4nda och sl\u00e4cka lysdioder.  I huvudslingan kontrollerar vi om den f\u00f6reslagna riktningen \u00e4r giltig, och om det \u00e4r s\u00e5 g\u00e5r vi den v\u00e4gen.  Om inte v\u00e4ljer vi en ny riktning.<\/p>\n<p>Det enda att p\u00e5peka i huvudslingan \u00e4r n\u00e5gra kontroller f\u00f6r att r\u00e4tta till en bugg som jag hittade som involverade multiplexering: om den nya platsen var p\u00e5 samma katodplan eller samma anodstift, skulle en avst\u00e4ngning av den tidigare lysdioden resultera i att b\u00e5da slocknade.  Det \u00e4r ocks\u00e5 vid denna tidpunkt som jag ins\u00e5g att det skulle bli om\u00f6jligt att g\u00e5 l\u00e4ngre \u00e4n en 2-segments orm med min nuvarande implementering: f\u00f6rs\u00f6k att t\u00e4nda 3 lysdioder i ett h\u00f6rn.  Det kan du inte, f\u00f6r med 2 lager och 2 LED-stift aktiverade skulle 4 lysdioder t\u00e4ndas, inte 3. Detta \u00e4r ett inneboende problem med v\u00e5r begr\u00e4nsade multiplexade kubdesign, men oroa dig inte: vi beh\u00f6ver helt enkelt anv\u00e4nda kraften hos <strong>ih\u00e5llande syn<\/strong> f\u00f6r att skriva om ritmetoden.<\/p>\n<p>Best\u00e4ndig syn inneb\u00e4r att n\u00e4r ljus n\u00e5r v\u00e5ra \u00f6gon sekventiellt \u2013 snabbare \u00e4n vi kan bearbeta det \u2013 verkar det vara en enda bild.  I v\u00e5rt fall, snarare \u00e4n att rita alla fyra skikten samtidigt, borde vi rita det f\u00f6rsta, inaktivera det, rita det andra och inaktivera det: snabbare \u00e4n vi kan s\u00e4ga att n\u00e5gon f\u00f6r\u00e4ndring till och med sker.  Detta \u00e4r principen efter vilken meddelandef\u00f6rfattare arbetar, som den h\u00e4r:<\/p>\n<h2 id=\"new-draw-method-using-persistence-of-vision\"><span class=\"ez-toc-section\" id=\"Ny_ritningsmetod_med_hjalp_av_Persistens_of_Vision\"><\/span>  Ny ritningsmetod med hj\u00e4lp av Persistens of Vision<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>F\u00f6rst och fr\u00e4mst, en ny ritrutin.  Jag har skapat en <strong>4 x 16 tv\u00e5dimensionell array<\/strong> av bitar (sant eller falskt) f\u00f6r att vara en bokstavlig representation av LED-kubens tillst\u00e5nd.  Ritningsrutinen kommer att implementera best\u00e4ndig syn genom att helt enkelt iterera \u00f6ver detta och spola ut varje lager till kuben en kort stund.  Den kommer att forts\u00e4tta att rita sig sj\u00e4lv i det aktuella tillst\u00e5ndet tills uppdateringstiden har f\u00f6rflutit, d\u00e5 vi skickar kontrollen tillbaka till huvudslingan().  Jag har sparat den h\u00e4r delen av koden i denna LED_cube_POV-fil, s\u00e5 om du bara vill hoppa in i att programmera dina egna spel och s\u00e5 free att anv\u00e4nda detta som bas.<\/p>\n<h2 id=\"app-2-game-of-life\"><span class=\"ez-toc-section\" id=\"App_2_Game_of_Life\"><\/span>  App 2: Game of Life<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>L\u00e5t oss f\u00f6r nu utveckla detta till en grundl\u00e4ggande version av Conways Game Of Life.  F\u00f6r er som inte \u00e4r bekanta <em>(f\u00f6rs\u00f6k att googla f\u00f6r att hitta en fantastisk p\u00e5sk\u00e4gg-animation)<\/em>den <strong>Game of Life<\/strong> \u00e4r ett exempel p\u00e5 cellul\u00e4ra automater som skapar ett fascinerande m\u00f6nster av framv\u00e4xande beteende med bara n\u00e5gra f\u00e5 enkla regler.<\/p>\n<p>Det \u00e4r till exempel hur myror verkar r\u00f6ra sig med intelligens och ett bikupa sinne, trots det biologiska faktum att de faktiskt bara f\u00f6ljer mycket grundl\u00e4ggande hormonella regler.  H\u00e4r \u00e4r hela koden f\u00f6r nedladdning: tryck p\u00e5 <em>\u00e5terst\u00e4lla<\/em> knappen f\u00f6r att starta om.  Om du m\u00e4rker att du f\u00e5r samma m\u00f6nster om och om igen, f\u00f6rs\u00f6k att h\u00e5lla ned viloknappen l\u00e4ngre.<\/p>\n<p>H\u00e4r \u00e4r reglerna f\u00f6r Game of Life:<\/p>\n<p>  Varje levande cell med f\u00e4rre \u00e4n tv\u00e5 levande grannar d\u00f6r, som om de orsakats av underbefolkning.  Varje levande cell med tv\u00e5 eller tre levande grannar lever vidare till n\u00e4sta generation.  Varje levande cell med fler \u00e4n tre levande grannar d\u00f6r, som av \u00f6verbefolkning.  Varje d\u00f6d cell med exakt tre levande grannar blir en levande cell, som genom reproduktion.  <\/p>\n<p>K\u00f6r koden.  Du kommer att m\u00e4rka inom 5 till 10 \u201cgenerationer\u201d, att automaterna f\u00f6rmodligen har stannat och stabiliserat sig p\u00e5 en viss position;  ibland kommer det h\u00e4r stabila m\u00f6nstret att byta plats och flytta runt p\u00e5 br\u00e4det.  I s\u00e4llsynta fall kan de till och med ha d\u00f6tt ut helt.  Detta \u00e4r en begr\u00e4nsning av att bara ha 4x4x4 lysdioder att arbeta med, men det \u00e4r en bra inl\u00e4rnings\u00f6vning \u00e4nd\u00e5.<\/p>\n<p>F\u00f6r att f\u00f6rklara koden:<\/p>\n<p>  Du kanske inte \u00e4r bekant med <strong>memcpy()<\/strong> fungera.  Jag har anv\u00e4nt detta f\u00f6r att spara det tidigare speltillst\u00e5ndet, eftersom arrayer inte bara kan tilldelas varandra som normala variabler \u2013 du m\u00e5ste faktiskt kopiera \u00f6ver minnesutrymmet (i det h\u00e4r fallet 64 bitar).   <strong>howManyNeighbours()<\/strong> funktionen b\u00f6r vara sj\u00e4lvf\u00f6rklarande, men om den inte \u00e4r det \u2013 den h\u00e4r metoden tar en enda koordinat och g\u00e5r genom varje m\u00f6jlig granne (samma riktningar som vi tidigare anv\u00e4nde i snake-appen), f\u00f6r att kontrollera om de \u00e4r giltiga.  Den kontrollerar sedan om dessa grannlysdioder var \u201cp\u00e5\u201d i det tidigare spell\u00e4get och r\u00e4knar hur m\u00e5nga det finns.  Huvudfunktionen f\u00f6r denna Game of Life-app \u00e4r <strong>progressGame()<\/strong>som till\u00e4mpar automatreglerna p\u00e5 det aktuella spell\u00e4get.  <\/p>\n<p><strong>F\u00f6rb\u00e4ttringar<\/strong>: Jag har \u00e4gnat alldeles f\u00f6r l\u00e5ng tid \u00e5t detta hittills, men du kanske vill prova att l\u00e4gga till en check som automatiskt \u00e5terst\u00e4ller tavlan efter 5 eller s\u00e5 generationer av samma m\u00f6nster.  sn\u00e4lla meddela mig d\u00e5!  Jag skulle ocks\u00e5 f\u00f6resl\u00e5 att du f\u00f6rs\u00f6ker l\u00e4gga till POV-metoden till ormspelet f\u00f6r att f\u00f6rhoppningsvis g\u00f6ra en l\u00e4ngre orm m\u00f6jlig.<\/p>\n<p>Det var det fr\u00e5n mig idag.  Jag kanske \u00e5terv\u00e4nder till n\u00e5gra fler Arduino LED-kubappar vid ett senare tillf\u00e4lle, men f\u00f6rhoppningsvis borde du kunna \u00e4ndra min kod och skapa dina egna spelregler: l\u00e5t oss veta vad du hittar p\u00e5 i kommentarerna, s\u00e5 att vi alla kan ladda ner dina skapelser!  Som alltid kommer jag att vara h\u00e4r f\u00f6r att svara p\u00e5 dina fr\u00e5gor och f\u00f6rsvara mina fruktansv\u00e4rda kodningsf\u00f6rm\u00e5ga.<\/p>\n<p>Bildkredit: kartesiska koordinater \u2013 Wikimedia-anv\u00e4ndare Sakurambo<\/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\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/#App_1_Mini_Snake\" >App 1: Mini Snake<\/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\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/#Ny_ritningsmetod_med_hjalp_av_Persistens_of_Vision\" >Ny ritningsmetod med hj\u00e4lp av Persistens of Vision<\/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\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/#App_2_Game_of_Life\" >App 2: Game of Life<\/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-4\" href=\"https:\/\/blogging-techies.com\/sw\/programmera-din-arduino-4x4x4-led-kub-for-att-gora-nagra-mer-fantastiska-saker\/#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>F\u00f6rra veckan byggde jag en LED-kub \u2013 64 lysdioder att du kan programmera f\u00f6r att g\u00f6ra fantastiska futuristiska ljusshower \u2013 och jag hoppas att du ocks\u00e5 gjorde det, f\u00f6r det \u00e4r ett fantastiskt projekt f\u00f6r att motivera dig och ut\u00f6ka din Arduino-f\u00e4rdighet. Jag l\u00e4mnade dig med n\u00e5gra grundl\u00e4ggande appar f\u00f6r att f\u00e5 dig att t\u00e4nka, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":65028,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/ipotek.net\/wp-content\/uploads\/2022\/01\/Programmera-din-Arduino-4x4x4-LED-kub-for-att-gora-nagra-mer.jpg","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[35688,34831,15,1235,1814,35,1064,35685,561,1269,9221,3371],"class_list":["post-65026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-4x4x4","tag-arduino","tag-att","tag-din","tag-fantastiska","tag-for","tag-gora","tag-ledkub","tag-mer","tag-nagra","tag-programmera","tag-saker"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65026","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=65026"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/65026\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/65028"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=65026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=65026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=65026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}