Innholdsfortegnelse:

HackerBox 0058: Kode: 7 trinn
HackerBox 0058: Kode: 7 trinn

Video: HackerBox 0058: Kode: 7 trinn

Video: HackerBox 0058: Kode: 7 trinn
Video: #105 HackerBox 0058 ENCode 2024, Juli
Anonim
HackerBox 0058: Kode
HackerBox 0058: Kode

Hilsen HackerBox Hackere rundt om i verden! Med HackerBox 0058 utforsker vi informasjonskoding, strekkoder, QR -koder, programmering av Arduino Pro Micro, innebygde LCD -skjermer, integrering av strekkodegenerering i Arduino -prosjekter, menneskelige inndataenheter og mer.

HackerBoxes er den månedlige abonnementstjenesten for entusiaster innen elektronikk og datateknologi - Hardware Hackers - The Dreamers of Dreams.

Det er et vell av informasjon for nåværende og potensielle medlemmer i HackerBoxes FAQ. Nesten alle de ikke-tekniske support-e-postene vi mottar, er allerede besvart der, så vi setter stor pris på at du tar deg noen minutter til å lese vanlige spørsmål.

Rekvisita

Denne instruksjonsboken inneholder informasjon om hvordan du kommer i gang med HackerBox 0058. Hele innholdet i esken er oppført på produktsiden for HackerBox 0058, hvor esken også er tilgjengelig for kjøp så lenge lageret rekker. Hvis du ønsker å motta en HackerBox som denne rett i postkassen din hver måned med en rabatt på $ 15, kan du abonnere på HackerBoxes.com og bli med i revolusjonen!

Et loddejern, loddetinn og grunnleggende loddeverktøy er vanligvis nødvendig for å jobbe med den månedlige HackerBox. En datamaskin for kjøring av programvareverktøy er også nødvendig. Ta en titt på HackerBox Deluxe Starter Workshop for et sett med grunnleggende verktøy og et bredt spekter av innledende aktiviteter og eksperimenter.

Viktigst av alt, trenger du en følelse av eventyr, hackerånd, tålmodighet og nysgjerrighet. Å bygge og eksperimentere med elektronikk, selv om det er veldig givende, kan være vanskelig, utfordrende og til og med frustrerende til tider. Målet er fremgang, ikke perfeksjon. Når du fortsetter og liker eventyret, kan du få mye tilfredshet fra denne hobbyen. Ta hvert trinn sakte, vær oppmerksom på detaljene, og ikke vær redd for å be om hjelp

Trinn 1: Koding

Koding
Koding

Kommunikasjon, registrering eller manipulering av informasjon krever koding. Siden behandling, lagring og kommunikasjon av informasjon er essensen i moderne elektronikk, har vi mye koding å bekymre oss for.

Som et veldig enkelt eksempel på koding kan man representere hvor mange øyne eller ører de har ved å holde opp to fingre, eller ved å bruke tallene "2" eller "] [" eller ved å bruke ordene "to" eller "dos" eller " Er "eller" zwei ". Ikke så enkelt egentlig, ikke sant? Koding som brukes på menneskelig språk, spesielt om emner som følelser eller abstraksjon, kan bli svært kompleks.

FYSIK

Ja, alt starter alltid med fysikk. I elektroniske systemer starter vi med å representere de enkleste verdiene med elektriske signaler, vanligvis spenningsnivåer. For eksempel kan NULL representeres som bakken (omtrent 0V) og ÉN som omtrent 5V (eller 3.3V, etc.) for å utgjøre et binært system med nuller og enere. Selv med bare ZERO og ONE, er det ofte tvetydighet å løse. Når knappen trykkes er det NULL eller EN? HØYT eller LAVT? Er chip -valgsignalet "aktivt høyt" eller "aktivt lavt"? Når kan et signal leses og hvor lenge vil det være gyldig? I kommunikasjonssystemer kalles dette "linjekoding".

På dette laveste nivået handler representasjonene i stor grad om systemets fysikk. Hvilke spenninger kan den støtte, hvor raskt kan den overgå, hvordan slås laseren på og av, hvordan modulerer informasjonssignaler en radiofrekvensbærer, hva er båndbredden til kanalen, eller til og med hvordan ionekonsentrasjoner genererer handlingspotensialer i en nevron. For elektronikk er denne informasjonen ofte gitt i de imponerende tabellene i produsentens datablad.

Det fysiske laget (PHY) eller lag 1 er det første og laveste laget i den syv-lags OSI-modellen for datanettverk. Det fysiske laget definerer virkemidlene for overføring av råbiter over en fysisk datalink som forbinder nettverksnoder. Det fysiske laget gir et elektrisk, mekanisk og prosessuelt grensesnitt til overføringsmediet. Formene og egenskapene til de elektriske kontaktene, frekvensene å kringkaste på, linjekoden som skal brukes og lignende lavnivåparametere, er spesifisert av det fysiske laget.

TALL

Vi kan ikke gjøre mye med bare ONE og NULL, eller vi ville ha utviklet oss til å "snakke" ved å blunke med øynene for hverandre. Binære verdier er imidlertid en god start. I databehandlings- og kommunikasjonssystemer kombinerer vi binære sifre (bits) til byte og "ord" som inneholder for eksempel 8, 16, 32 eller 64 bits.

Hvordan tilsvarer disse binære ordene tall eller verdier? I en enkel 8-bits byte er 00000000 generelt null og 11111111 er generelt 255 for å gi 2-til-8 eller 256 forskjellige verdier. Selvfølgelig stopper det ikke der, fordi det er mye mer enn 256 tall og ikke alle tall er positive heltall. Selv før vi beregnet systemer, representerte vi numeriske verdier ved bruk av forskjellige tallsystemer, språk, baser og bruk av teknikker som negative tall, imaginære tall, vitenskapelig notasjon, røtter, forhold og logaritmiske skalaer av forskjellige baser. For numeriske verdier i datasystemer må vi slite med problemer som maskin epsilon, endianness, fix point og floating point representasjoner.

TEKST (CETERA)

I tillegg til å representere tall eller verdier, kan binære byte og ord representere bokstaver og andre tekstsymboler. Den vanligste formen for tekstkoding er American Standard Code for Information Interchange (ASCII). Selvfølgelig kan forskjellige typer informasjon kodes som tekst: en bok, denne websiden, et xml -dokument.

I noen tilfeller, for eksempel e -post eller Usenet -innlegg, kan det være lurt å kode bredere informasjonstyper (for eksempel generelle binære filer) som tekst. Uuenkodingsprosessen er en vanlig form for binær-til-tekst-koding. Du kan til og med "kode" bilder som tekst: ASCII Art eller enda bedre ANSI Art.

KODETEORI

Kodeteori er studiet av egenskapene til koder og deres respektive egnethet for spesifikke applikasjoner. Koder brukes til datakomprimering, kryptografi, feiloppdagelse og korreksjon, dataoverføring og datalagring. Koder studeres av forskjellige vitenskapelige disipliner for å designe effektive og pålitelige dataoverføringsmetoder. Eksempeldisipliner inkluderer informasjonsteori, elektroteknikk, matematikk, lingvistikk og informatikk.

DATAKOMPRESSJON (fjerner redundans)

Datakomprimering, kildekoding eller bithastighetsreduksjon er prosessen med å kode informasjon med færre biter enn den opprinnelige representasjonen. Enhver spesiell komprimering er enten tapende eller tapsfri. Tapsløs komprimering reduserer biter ved å identifisere og eliminere statistisk redundans. Ingen informasjon går tapt ved komprimering uten tap. Tapskomprimering reduserer biter ved å fjerne unødvendig eller mindre viktig informasjon.

Komprimeringsmetodene Lempel – Ziv (LZ) er blant de mest populære algoritmene for tapsfri lagring. På midten av 1980-tallet, etter arbeid av Terry Welch, ble algoritmen Lempel-Ziv-Welch (LZW) raskt den foretrukne metoden for de fleste generelle komprimeringssystemer. LZW brukes i-g.webp

Vi bruker stadig komprimerte data for DVDer, streaming av MPEG -video, MP3 -lyd, JPEG -grafikk, ZIP -filer, komprimerte tjæreballer og så videre.

FEILDETEKSJON OG KORRIGERING (legger til nyttig redundans)

Feiloppdagelse og korreksjon eller feilkontroll er teknikker som muliggjør pålitelig levering av digitale data over upålitelige kommunikasjonskanaler. Mange kommunikasjonskanaler er utsatt for kanalstøy, og dermed kan det innføres feil under overføring fra kilden til en mottaker. Feildeteksjon er deteksjon av feil forårsaket av støy eller andre svekkelser under overføring fra senderen til mottakeren. Feilretting er påvisning av feil og rekonstruksjon av de opprinnelige, feilfrie dataene.

Feildeteksjon utføres ganske enkelt ved bruk av overføringsrepetisjon, paritetsbiter, kontrollsummer eller CRC -er eller hashfunksjoner. En feil i overføringen kan oppdages (men vanligvis ikke korrigert) av mottakeren som deretter kan be om gjenoverføring av dataene.

Feilkorrigeringskoder (ECC) brukes til å kontrollere feil i data over upålitelige eller støyende kommunikasjonskanaler. Den sentrale ideen er at avsenderen koder meldingen med overflødig informasjon i form av en ECC. Redundansen gjør at mottakeren kan oppdage et begrenset antall feil som kan oppstå hvor som helst i meldingen, og ofte for å rette opp disse feilene uten videresending. Et forenklet eksempel på ECC er å overføre hver databit 3 ganger, som er kjent som en (3, 1) repetisjonskode. Selv om bare 0, 0, 0 eller 1, 1, 1 overføres, kan feil i støyende kanalen presentere en av åtte mulige verdier (tre biter) for mottakeren. Dette gjør at en feil i en av de tre prøvene kan korrigeres med "flertallstemme" eller "demokratisk avstemning". Korrigeringsevnen til denne ECC er altså å korrigere 1 feilbit i hver trilling som sendes. Selv om den er enkel å implementere og mye brukt, er denne trippel modulære redundansen en relativt ineffektiv ECC. Bedre ECC -koder undersøker vanligvis de siste flere tiere eller til og med de siste hundrevis av tidligere mottatte biter for å bestemme hvordan de nåværende små håndfull biter skal dekodes.

Nesten alle todimensjonale strekkoder som QR-koder, PDF-417, MaxiCode, Datamatrix og Aztec Code bruker Reed-Solomon ECC for å tillate korrekt lesing selv om en del av strekkoden er skadet.

KRYPTOGRAFI

Kryptografisk koding er designet rundt forutsetninger for beregningshardhet. Slike kodingsalgoritmer er bevisst vanskelig å bryte (i praktisk forstand) av noen motstander. Det er teoretisk mulig å bryte et slikt system, men det er umulig å gjøre det på noen kjente praktiske måter. Disse ordningene kalles derfor beregningsmessig sikre. Det finnes informasjonsteoretisk sikre ordninger som beviselig ikke kan brytes selv med ubegrenset datakraft, for eksempel engangspute, men disse ordningene er vanskeligere å bruke i praksis enn de beste teoretisk brytbare, men beregningsmessig sikre mekanismene.

Tradisjonell kryptering er basert på en transponeringskryptering, som omorganiserer rekkefølgen på bokstaver i en melding (f.eks. 'Hei verden' blir 'ehlol owrdl' i et trivielt enkelt omorganiseringsopplegg), og substitusjonskiffer, som systematisk erstatter bokstaver eller grupper av bokstaver med andre bokstaver eller grupper av bokstaver (f.eks. 'fly på en gang' blir 'gmz bu podf' ved å erstatte hver bokstav med den som følger den i det latinske alfabetet). Enkle versjoner av begge har aldri gitt mye konfidensialitet fra driftige motstandere. En tidlig substitusjonskoder var Cæsar -chifferet, der hver bokstav i klarteksten ble erstattet av en bokstav med et bestemt antall posisjoner lenger ned i alfabetet. ROT13 er a er en enkel bokstavsubstitusjonskryptering som erstatter en bokstav med den 13. bokstaven etter den, i alfabetet. Det er et spesielt tilfelle av Cæsar -chifferet. Prøv det her!

Trinn 2: QR -koder

QR -koder
QR -koder

QR-koder (wikipedia) eller "Quick Response Codes" er en type matrise eller todimensjonal strekkode som først ble designet i 1994 for bilindustrien i Japan. En strekkode er en maskinlesbar optisk etikett som inneholder informasjon om elementet den er festet til. I praksis inneholder QR -koder ofte data for en lokalisator, identifikator eller tracker som peker til et nettsted eller en applikasjon. En QR -kode bruker fire standardiserte kodingsmoduser (numerisk, alfanumerisk, byte/binær og kanji) for å lagre data effektivt.

Quick Response -systemet ble populært utenfor bilindustrien på grunn av sin raske lesbarhet og større lagringskapasitet sammenlignet med standard UPC -strekkoder. Søknadene inkluderer produktsporing, elementidentifikasjon, tidssporing, dokumenthåndtering og generell markedsføring. En QR -kode består av svarte firkanter arrangert i et firkantet rutenett på en hvit bakgrunn, som kan leses av en bildebehandlingsenhet som et kamera, og behandles ved hjelp av feilkorrigering av Reed - Solomon til bildet kan tolkes på riktig måte. De nødvendige dataene trekkes deretter ut fra mønstre som finnes i både horisontale og vertikale komponenter i bildet.

Moderne smarttelefoner vil vanligvis automatisk lese QR -koder (og andre strekkoder). Bare åpne kameraappen, rett kameraet inn på strekkoden og vent et par sekunder før kameraappen viser at den har låst seg på strekkoden. Appen vil noen ganger vise strekkoneinnholdet umiddelbart, men vanligvis krever appen valg av strekkodemelding for å vise all informasjon som er hentet fra strekkoden. I løpet av juni 2011 skannet 14 millioner amerikanske mobilbrukere en QR -kode eller en strekkode.

Brukte du smarttelefonen din til å lese meldingene som er kodet på utsiden av HackerBox 0058?

Interessant video: Kan du passe et helt spill inn i en QR -kode?

Gamle tidtakere husker kanskje Cauzin Softstrip fra datamaskinblader fra 80 -tallet. (videodemo)

Trinn 3: Arduino Pro Micro 3.3V 8MHz

Arduino Pro Micro 3.3V 8MHz
Arduino Pro Micro 3.3V 8MHz

Arduino Pro Micro er basert på ATmega32U4 mikrokontroller som har et innebygd USB -grensesnitt. Dette betyr at det ikke er noen FTDI, PL2303, CH340 eller annen brikke som fungerer som mellomledd mellom datamaskinen og Arduino -mikrokontrolleren.

Vi foreslår at du først tester Pro Micro uten å lodde pinnene på plass. Du kan utføre den grunnleggende konfigurasjonen og testingen uten å bruke topptekstene. Forsinkelse av lodding til modulen gir også en variabel mindre til å feilsøke hvis du skulle støte på komplikasjoner.

Hvis du ikke har Arduino IDE installert på datamaskinen, starter du med å laste ned IDE -skjemaet arduino.cc. ADVARSEL: Sørg for å velge 3.3V -versjonen under verktøy> prosessor før du programmerer Pro Micro. Å ha dette settet for 5V vil fungere en gang, og det ser ut til at enheten aldri kommer til å koble til PC -en din før du følger instruksjonene for "Reset to Bootloader" i guiden som er diskutert nedenfor, noe som kan være litt vanskelig.

Sparkfun har en flott Pro Micro Hookup Guide. Tilkoblingsguiden har en detaljert oversikt over Pro Micro -kortet og deretter en seksjon for "Installering: Windows" og en seksjon for "Installering: Mac og Linux." Følg instruksjonene i den riktige versjonen av disse installasjonsinstruksjonene for å få Arduino IDE konfigurert til å støtte Pro Micro. Vi begynner vanligvis å jobbe med et Arduino -bord ved å laste inn og/eller endre standard Blink -skisse. Pro Micro inkluderer imidlertid ikke den vanlige LED -en på pinne 13. Heldigvis kan vi styre RX/TX -lysdiodene. Sparkfun har gitt en fin liten skisse for å demonstrere hvordan. Dette er i delen av tilkoblingsguiden med tittelen "Eksempel 1: Blink!" Kontroller at du kan kompilere og programmere denne Blinkies! eksempel på Pro Micro før du går videre.

Når alt ser ut til å fungere for å programmere Pro Micro, er det på tide å lodde toppnålene forsiktig på modulen. Etter lodding, test forsiktig ut brettet igjen.

FYI: Takket være den integrerte USB -transceiveren kan Pro Micro enkelt brukes til å etterligne en menneskelig grensesnittenhet (HID) som et tastatur eller en mus, og leke med tastetrykkinjeksjon.

Trinn 4: QR -koder på LCD -skjerm i full farge

QR -koder på LCD -skjerm i full farge
QR -koder på LCD -skjerm i full farge

LCD -skjermen har 128 x 160 fullfargepiksler, og den måler 1,8 tommer på diagonalen. ST7735S Driver Chip (datablad) kan grensesnitt fra nesten hvilken som helst mikrokontroller ved hjelp av en Serial Peripheral Interface (SPI) buss. Grensesnittet er spesifisert for 3.3V signalering og strømforsyning.

LCD -modulen kan kobles direkte til 3.3V Pro Micro ved å bruke 7 FF -jumperledninger:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Ingen tilkobling

Denne spesifikke pin -tilordningen lar bibliotekseksemplene fungere som standard.

Biblioteket kalt "Adafruit ST7735 og ST7789" finnes i Arduino IDE ved hjelp av menyen Verktøy> Administrer biblioteker. Under installasjonen vil biblioteksjefen foreslå noen få avhengige biblioteker som følger med biblioteket. La den også installere dem.

Når biblioteket er installert, åpner du Filer> Eksempler> Adafruit ST7735 og ST7789 Library> graphicstest

Kompiler og last opp grafisk test. Det vil generere en grafisk demo på LCD -skjermen, men med noen rader og kolonner med "støyende piksler" i kanten av skjermen.

Disse "støyende pikslene" kan fikses ved å endre TFT init -funksjonen som brukes nær toppen av oppsettfunksjonen (void).

Kommenter kodelinjen:

tft.initR (INITR_BLACKTAB);

Og kommenter linjen et par linjer ned:

tft.initR (INITR_GREENTAB);

Omprogrammer demo og alt skal se bra ut.

Nå kan vi bruke LCD -skjermen til å vise QR -koder

Tilbake til Arduino IDE -menyen Verktøy> Administrer biblioteker.

Finn og installer bibliotekets QRCode.

Last ned QR_TFT.ino -skissen som er vedlagt her.

Kompiler og programmer QR_TFT i ProMicro og se om du kan bruke telefonens kamera -app til å lese den genererte QR -koden på LCD -skjermen.

Noen prosjekter som bruker QR -kodegenerering for inspirasjon

Adgangskontroll

QR -klokke

Trinn 5: Fleksibel flatkabel

Fleksibel flatkabel
Fleksibel flatkabel

En fleksibel flatkabel (FFC) er en hvilken som helst type elektrisk kabel som er både flat og fleksibel, med flate, solide ledere. En FFC er en kabel som er dannet av eller lik en fleksibel trykt krets (FPC). Begrepene FPC og FFC brukes noen ganger om hverandre. Disse begrepene refererer vanligvis til en ekstremt tynn flat kabel som ofte finnes i elektroniske applikasjoner med høy tetthet som bærbare datamaskiner og mobiltelefoner. De er en miniatyrisert form for båndkabel som vanligvis består av en flat og fleksibel plastfilmbase, med flere flate metalliske ledere festet til en overflate.

FFC -er finnes i en rekke pin -pitcher, med 1,0 mm og 0,5 mm som to vanlige alternativer. Det inkluderte FPC breakout -kortet har spor for begge disse banene, en på hver side av kretskortet. Bare den ene siden av kretskortet brukes avhengig av ønsket stigning, 0,5 mm i dette tilfellet. Sørg for å bruke toppnålens nummerering trykt på samme 0,5 mm side av kretskortet. Pinnummereringen på 1,0 mm -siden stemmer ikke overens og brukes til en annen applikasjon.

FFC -kontaktene på både breakout og strekkodeskanneren er ZIF -kontakter (zero insertion force). Dette betyr at ZIF -kontaktene har en mekanisk glidebryter som er hengslet åpen før FFC settes inn og deretter hengsles lukket for å stramme kontakten på FFC uten å sette og sette inn kraft på selve kabelen. To viktige ting å merke seg om disse ZIF -kontaktene:

1. De er begge "bunnkontakt", noe som betyr at metallkontaktene på FFC må vende nedover (mot PCB) når de settes inn.

2. Den hengslede glidebryteren på breakout er på forsiden av kontakten. Dette betyr at FFC vil gå under/gjennom den hengslede glidebryteren. I kontrast er den hengslede glidebryteren på strekkodeskanneren på baksiden av kontakten. Dette betyr at FFC kommer inn i ZIF -kontakten fra motsatt side og ikke gjennom glidebryteren.

Husk at andre typer FFC/FPC ZIF -kontakter har laterale glidebrytere i motsetning til de hengslede glidebryterne vi har her. I stedet for å henge opp og ned, glir sideveis glidebrytere inn og ut i kontaktens plan. Se alltid nøye etter før du bruker en ny type ZIF -kontakt. De er ganske små og kan lett bli skadet hvis de blir tvunget utenfor det tiltenkte området eller bevegelsesplanet.

Trinn 6: Strekkodeskanner

Strekkode skanner
Strekkode skanner

Når strekkodeskanneren og FPC -utbruddet er koblet til med den fleksible flatkabelen (FFC), kan fem kvinnelige jumper -ledninger brukes til å koble utbrytningskortet til Arduino Pro Micro:

FPC ---- Pro Micro

3 ------ GND 2 ------ VCC 12 ----- 7 4 ------ 8 5 ------ 9

Når du er koblet til, programmerer du sketch barscandemo.ino i Pro Micro, åpner opp seriell monitor og skanner alle tingene! Det kan være overraskende hvor mange gjenstander rundt våre hjem og kontorer som har strekkoder på dem. Du kjenner kanskje til og med noen med en strekkodetatovering.

Den vedlagte strekkodeskannerhåndboken har koder som kan skannes for å konfigurere prosessoren innebygd i skanneren.

Trinn 7: Hack the Planet

Hack the Planet
Hack the Planet

Vi håper du nyter denne månedens HackerBox -eventyr innen elektronikk og datateknologi. Nå ut og del suksessen din i kommentarene nedenfor eller andre sosiale medier. Husk også at du når som helst kan sende en e -post til [email protected] hvis du har spørsmål eller trenger hjelp.

Hva blir det neste? Bli med på revolusjonen. Lev HackLife. Få en kul boks med hackbart utstyr levert rett i postkassen din hver måned. Surf over til HackerBoxes.com og registrer deg for ditt månedlige HackerBox -abonnement.

Anbefalt: