En studie i tilläggsavgifter distribueras datorarkitektur (8 / 9 steg)
Steg 8: Förstå systemet
Avsändaren koden gör några olika saker. Först fastställs vissa variabler, varav den viktigaste är instruktionerna för den sändande enheten, märkt "a" till "f" och är tecken matriser. Dessa matriser fungerar ungefär som CPU instruktionerna för något som en hacka CPU, även om det är så mycket enklare; den första flera av numren i dessa instruktioner behövs för att bestämma specifikationen av IR-signalen att skicka inte och är nödvändig för att förstå själva systemet. Den viktigaste av de "bitar" av anvisningen är de sista tre, som avgör vilken LED slås på (eller av). Detta är arbetshästar av våra mycket liten instruktionsuppsättning, och det är viktigt att notera att mer betydande data kunde skickas och handlat. Vi tror att om du byggt upp viss infrastruktur, kunde du skicka saker till exempel bilder eller objekt i klasser som du skapade som kunde användas som ingången på din mottagare noder eller mer komplicerade instruktion uppsättningar som skulle efterlikna något mer liknar en full dator eller CPU.
Den fjärde "lite" från höger kan genomföras som en kontroll 'lite' om du vill lägga till fler noder i ditt system. Du kan ändra det till olika nummer som skulle representera vilken enhet (eller grupp av enheter) anvisningen var avsedda för och sedan mottagaren enheterna skulle kontrollera för att se om instruktionen var för dem, och köra det så, och ignorera anvisningen om inte.
Mottagaren koden i huvudsak gör på IR-mottagaren och sedan lyssnar för indata. När någon form av IR-indata har tagits emot, tar det sedan denna data, som är en teckensträng i detta exempel, och utför en instruktion (slå på eller stänga av en LED) beroende på den instruktion som skickades. I detta system representerar de tre senaste "bitarna" som ledde till vända på och som att stänga av. Om bit är 1, då motsvarande lampan slås på, och av det är 0, då denna LED är avstängd. Om du skulle lägga till fler noder i ditt system, skulle det vara nödvändigt att koda varje enhet för att avgöra om sig undervisningen var faktiskt för det, som skulle kunna genomföras genom att kontrollera en kontroll "bit" innan du kör instruktionen.
Vad vi har lämnat är mer av en mall än ett komplett system, och det föreskrivs ett system för att bygga vidare på. Känn dig fri att prova egna program och testa funktionerna i plattformen. Våra ursprungliga avsikter var att bygga en distribuerad Harvard arkitektur, som är en plattform som fysiskt separerar data och instruktioner minne. Vi ville göra detta genom att separera varje verksamhet knuten till båda datatyperna i eget Arduino, med båda enheterna kommunicerar via infrarött ljus. Det finns säkert massor av coola saker som kan göras med denna setup, vilket vi hoppas du har kul testa ut nya konfigurationer eller program. Om du kommer med något häftigt, dela vänligen den tillbaka med oss, vi skulle vilja se den.