» elektronikk »Hva vil være merket for Hackaday-konferansen i 2019, og hvordan du kan gjøre deg den samme

Hva vil være merket for Hackaday-konferansen i 2019, og hvordan du kan gjøre deg den samme



For tredje år, når Hackaday er vertskap for den neste konferansen, følger den en god tradisjon: det distribuerer merker til deltakerne, som samtidig er ganske kraftige datasystemer. Enheter er inkludert i billettprisen. De er produsert i små industrielle serier, men de er åpen maskinvare, noe som betyr at alle som ikke kan komme til konferansen, hvis de har lyst og evne til å gjøre seg til samme merke som hjemmelaget gjør det selv. Denne gangen er utviklingsteamet ganske stort: ​​dette er forfattere under kallenavnene Lutetium, Aleksandar Bradic, Mike Szczys, Sophi Kravitz, Mike Walters, Sprite_tm, Elliot Williams, de∫hipu, Kumar Abhishek, Piotr Esden-Tempski, Voja Antonic, Zapp, Roger, Hyr0n, Sylvain Munaut og Sean Cross. Og ja, Voya Antonich er igjen den samme, utvikleren av den nå årgangen, og den gang nye Galaksija-datamaskinen.

Hvis merket i tidligere tider ble laget i en formfaktor som ligner Cybiko eller en QWERTY-tastaturstelefon som Nokia Asha 200, og den kunne kjøre Z80-emulator, CP / M-operativsystem og tolk for grunnleggende språk, ser det nå mer ut som en lomme en spillkonsoll som Game Boy. Og til og med lar deg koble til 40-pinners kassetter. Og denne gangen ble den laget på FPGA Lattice LFE5U-45F.

Gjenta enheten bør begynne med maskinvaren. Den første tingen å gjøre er å laste ned alle filene herfra og installer nødvendig programvare, først og fremst - KiCad. Åpne diagrammet i den (filen Hadbadge2019.sch) og kjøp alle komponentene som er inkludert i den, etter å ha gjennomgått notatene (Hadbadge2019-bom-notes.txt-filen). Åpne kretskortet tegning (hadbadge2019.kicad_pcb fil) og eksporter til Gerber-format. Bestill produksjon av et brett i et selskap med passende profil. Selv om du er flytende i LUT, vil det i dette tilfellet ikke hjelpe. Bestill montering på et komponentkort i BGA-tilfeller i verkstedet for reparasjon av smarttelefoner. Du lodder lett alle andre komponenter selv, ved å fokusere på bildet nedenfor, og husk at noen komponenter, for eksempel lysdioder, er polare.



I FPGA må du fylle bootloader med programmereren ved å laste ned alle filene som er nødvendige for dette herfra. Etter dette vil all ytterligere interaksjon av PCen din med brettet skje via USB. For å "gjenopplive" FPGA-en, må du laste ned verktøysettet herfra, og koden for implementering på FPGA av RISC-V-prosessoren og samhandling med perifere enheter er herfra. Sett sammen og fyll ut koden.

Etter det vil brettet bli definert som en vanlig flash-stasjon, og det vil være mulig å legge filer med programmene som er beregnet på det. Programkortene som er lagret i minnet, kan velges med knappene gjennom skjermmenyen.

Kassetten er valgfri. Dette er et veldig enkelt brett som kan gjøres av LUT, eller til og med på perfboard. Nedenfor er et diagram av patronen og et bilde av brettet:




Du kan installere en flash-minnebrikke på kassetten, og deretter når den er installert, starter lasting fra den automatisk når den er slått på. Det er også plattformer for tilkobling av forskjellige periferiutstyr på patronkortet. Filer som trengs for å gjenta kassetten er herog KiCad, hvis du gjentok merket selv, har du det allerede.

Hvis du ikke er programmerer, er du i orden. Du kan ta eksempler her og her og eksperimentere. Hvis du bestemmer deg for å skrive noen merkeprogramvare selv, introduserer utviklerne alle metodene for å kontakte brukerprogrammene sine til periferien.

Knappenavn består av ordet KNAPP, en understreking, og ett av følgende ord: OPP, NED, VENSTRE, HØYRE, A, B, VELG, START.

Eksempelkode for polling av en knapp:

hvis ((MISC_REG (MISC_BTN_REG) & BUTTON_RIGHT)) {
    // Gjør noe når du trykker på høyre knapp.
}


Eksempelkode for lesing av en tidtaker som leses opp med en frekvens på 60 Hz:

uint32_t counter60hz (ugyldig) {
    returner GFX_REG (GFX_VBLCTR_REG);
}


Eksempelkode for lesing av et tall fra en maskinvare tilfeldig tallgenerator:

MISC_REG (MISC_RNG_REG)


Eksempelkode for LED-kontroll:

MISC_REG (MISC_LED_REG) = 0xF;


Den mest komplette informasjonen om grafikkmotoren til enheten er gitt i denne filen. Grafikk - fliser og sprite (som på NES). Bildet på skjermen består av fire lag (oppført fra topp til bunn): et sprittlag, et lag B, et lag A og et bakgrunnslag. Sett med fliser, som hver har en total oppløsning på 256x512 piksler, består av firkantede fliser med en side på 16 piksler. Paletten er 16-bit.

Laget inneholder 64x64 fliser, men et vindu med 30x20 fliser er synlig på skjermen. Når et lag er valgt, blir alle endringer i det synlig umiddelbart. Vinduet kan beveges jevnt i forhold til laget.

Lag med fliser kan skaleres og forvrenges, de aktuelle eksemplene er gitt i main.c-filen. Arbeidet med sprite-laget er ennå ikke implementert, det vil bli gjort nærmere konferansen. Eksemplene blir deretter plassert i den samme filen.

Her har et team av utviklere fått et interessant design. Noen vil si at i tidligere tider med et QWERTY-tastatur og BASIC var det mer interessant, men etterdatamaskiner husker begge verdener - og hjem datamaskiner og konsoller. Og det er sannsynligvis riktig.
0
0
0

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...