Indholdsfortegnelse:

HackerBox 0058: Kode: 7 trin
HackerBox 0058: Kode: 7 trin

Video: HackerBox 0058: Kode: 7 trin

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

Hilsen til HackerBox Hackere rundt om i verden! Med HackerBox 0058 vil vi undersøge informationskodning, stregkoder, QR -koder, programmering af Arduino Pro Micro, integrerede LCD -skærme, integrering af stregkodegenerering i Arduino -projekter, menneskelige inputenheder og mere.

HackerBoxes er den månedlige abonnementskassetjeneste for entusiaster inden for elektronik og computerteknologi - Hardware Hackers - The Dreamers of Dreams.

Der er et væld af oplysninger til nuværende og potentielle medlemmer i HackerBoxes ofte stillede spørgsmål. Næsten alle de ikke-tekniske support-e-mails, vi modtager, besvares allerede der, så vi sætter stor pris på, at du tager et par minutter på at læse FAQ.

Forbrugsvarer

Denne instruktionsbog indeholder oplysninger om, hvordan du kommer i gang med HackerBox 0058. Den fulde boksindhold er angivet på produktsiden for HackerBox 0058, hvor kassen også kan købes, så længe lager haves. Hvis du automatisk vil modtage en HackerBox som denne direkte i din postkasse med en rabat på $ 15, kan du abonnere på HackerBoxes.com og deltage i revolutionen!

Et loddejern, lodde og grundlæggende loddeværktøjer er generelt nødvendige for at arbejde på den månedlige HackerBox. En computer til at køre softwareværktøjer er også påkrævet. Tag et kig på HackerBox Deluxe Starter Workshop for et sæt grundlæggende værktøjer og en bred vifte af indledende aktiviteter og eksperimenter.

Vigtigst af alt har du brug for en følelse af eventyr, hackerånd, tålmodighed og nysgerrighed. At bygge og eksperimentere med elektronik, selvom det er meget givende, kan til tider være svært, udfordrende og endda frustrerende. Målet er fremskridt, ikke perfektion. Når du vedvarer og nyder eventyret, kan der opnås stor tilfredshed fra denne hobby. Tag hvert trin langsomt, vær opmærksom på detaljerne, og vær ikke bange for at bede om hjælp

Trin 1: Kodning

Indkodning
Indkodning

Kommunikation, registrering eller manipulation af oplysninger kræver kodning. Da behandling, lagring og kommunikation af information er essensen af moderne elektronik, har vi meget kodning at bekymre os om.

Som et meget enkelt eksempel på kodning kan man repræsentere, hvor mange øjne eller ører de har ved at holde to fingre opad, eller ved at bruge tallene "2" eller "] [" eller ved at bruge ordene "to" eller "dos" eller " Er "eller" zwei ". Faktisk ikke så simpelt, ikke? Kodning brugt på menneskeligt sprog, især vedrørende emner som følelser eller abstraktion, kan blive meget kompleks.

FYSIK

Ja, alt starter altid med fysik. I elektroniske systemer starter vi med at repræsentere de enkleste værdier ved elektriske signaler, normalt spændingsniveauer. F.eks. Kan ZERO repræsenteres som jorden (ca. 0V) og ONE som ca. 5V (eller 3.3V osv.) For at danne et binært system af nuller og enere. Selv med bare ZERO og ONE er der ofte uklarhed at løse. Når der trykkes på knappen, er det NUL eller EN? HØJ eller LAV? Er chip -valgsignalet "aktivt højt" eller "aktivt lavt"? På hvilket tidspunkt kan et signal læses, og hvor længe vil det være gyldigt? I kommunikationssystemer betegnes dette som "linjekodning".

På dette laveste niveau handler repræsentationerne stort set om systemets fysik. Hvilke spændinger kan den understøtte, hvor hurtigt kan den overgå, hvordan tændes og slukkes laseren, hvordan modulerer informationssignaler en radiofrekvensbærer, hvad er kanalens båndbredde, eller endda hvordan genererer ionkoncentrationer aktionspotentialer i en neuron. For elektronik findes disse oplysninger ofte i de imponerende tabeller i producentens datablad.

Det fysiske lag (PHY) eller lag 1 er det første og laveste lag i den syv-lags OSI-model for computernetværk. Det fysiske lag definerer midlerne til at transmittere rå bits over et fysisk datalink, der forbinder netværksnoder. Det fysiske lag tilvejebringer en elektrisk, mekanisk og proceduremæssig grænseflade til transmissionsmediet. De elektriske konnektors former og egenskaber, de frekvenser, der skal udsendes på, den linjekode, der skal bruges og lignende parametre på lavt niveau, er specificeret af det fysiske lag.

TAL

Vi kan ikke gøre meget med bare ONE og NUL, eller vi ville have udviklet os til at "tale" ved at blinke med øjnene til hinanden. Binære værdier er dog en god start. I computer- og kommunikationssystemer kombinerer vi binære cifre (bits) til bytes og "ord", der f.eks. Indeholder 8, 16, 32 eller 64 bit.

Hvordan svarer disse binære ord til tal eller værdier? I en simpel 8-bit byte er 00000000 generelt nul, og 11111111 er generelt 255 for at give 2-til-8 eller 256 forskellige værdier. Det stopper selvfølgelig ikke der, for der er meget mere end 256 tal og ikke alle tal er positive heltal. Selv før computingsystemer repræsenterede vi numeriske værdier ved hjælp af forskellige nummersystemer, sprog, baser og anvendte teknikker som negative tal, imaginære tal, videnskabelig notation, rødder, forhold og logaritmiske skalaer af forskellige forskellige baser. For numeriske værdier i edb -systemer skal vi kæmpe med problemer som maskine epsilon, udholdenhed, fast punkt og flydende repræsentationer.

TEKST (CETERA)

Ud over at repræsentere tal eller værdier kan binære bytes og ord repræsentere bogstaver og andre tekstsymboler. Den mest almindelige form for tekstkodning er American Standard Code for Information Interchange (ASCII). Selvfølgelig kan forskellige former for information kodes som tekst: en bog, denne webside, et xml -dokument.

I nogle tilfælde, f.eks. E -mail eller Usenet -opslag, vil vi måske kode større informationstyper (f.eks. Generelle binære filer) som tekst. Processen med uuencoding er en almindelig form for binær-til-tekst-kodning. Du kan endda "kode" billeder som tekst: ASCII Art eller endnu bedre ANSI Art.

KODINGSTEORI

Kodningsteori er studiet af kodenes egenskaber og deres respektive egnethed til specifikke applikationer. Koder bruges til datakomprimering, kryptografi, fejlregistrering og korrektion, datatransmission og datalagring. Koder studeres af forskellige videnskabelige discipliner med henblik på at designe effektive og pålidelige datatransmissionsmetoder. Eksempeldiscipliner omfatter informationsteori, elektroteknik, matematik, lingvistik og datalogi.

DATAKOMPRESSION (fjernelse af redundans)

Datakomprimering, kildekodning eller bithastighedsreduktion er processen med at kode oplysninger ved hjælp af færre bits end den originale repræsentation. Enhver bestemt komprimering er enten tabende eller tabsfri. Tab uden komprimering reducerer bits ved at identificere og eliminere statistisk redundans. Ingen information går tabt i tabsfri komprimering. Tabt komprimering reducerer bits ved at fjerne unødvendige eller mindre vigtige oplysninger.

Lempel – Ziv (LZ) komprimeringsmetoder er blandt de mest populære algoritmer til tabsfri lagring. I midten af 1980'erne, efter arbejde fra Terry Welch, blev algoritmen Lempel – Ziv – Welch (LZW) hurtigt den foretrukne metode til de fleste generelle komprimeringssystemer. LZW bruges i-g.webp

Vi bruger konstant komprimerede data til dvd'er, streaming af MPEG -video, MP3 -lyd, JPEG -grafik, ZIP -filer, komprimerede tjærebolde og så videre.

FEJLDETEKTION OG KORRIGERING (tilføjer nyttig redundans)

Fejldetektering og korrektion eller fejlkontrol er teknikker, der muliggør pålidelig levering af digitale data via upålidelige kommunikationskanaler. Mange kommunikationskanaler udsættes for kanalstøj, og der kan således indføres fejl under transmission fra kilden til en modtager. Fejldetektering er påvisning af fejl forårsaget af støj eller andre funktionsnedsættelser under transmission fra senderen til modtageren. Fejlkorrektion er påvisning af fejl og rekonstruktion af de originale, fejlfrie data.

Fejlsøgning udføres mest enkelt ved hjælp af transmittering, paritetsbit, kontrolsummer eller CRC'er eller hashfunktioner. En fejl i transmissionen kan registreres (men normalt ikke korrigeres) af modtageren, som derefter kan anmode om videresendelse af dataene.

Fejlkorrigeringskoder (ECC) bruges til at kontrollere fejl i data over upålidelige eller støjende kommunikationskanaler. Den centrale idé er, at afsenderen koder meddelelsen med redundante oplysninger i form af en ECC. Redundansen gør det muligt for modtageren at registrere et begrænset antal fejl, der kan forekomme overalt i meddelelsen, og ofte at rette disse fejl uden videresendelse. Et forenklet eksempel på ECC er at transmittere hver databit 3 gange, hvilket er kendt som en (3, 1) gentagelseskode. Selvom kun 0, 0, 0 eller 1, 1, 1 transmitteres, kan fejl inden for støjende kanal præsentere en hvilken som helst af otte mulige værdier (tre bits) for modtageren. Dette gør det muligt at rette en fejl i en af de tre prøver ved "flertalsafstemning" eller "demokratisk afstemning". Korrektionsevnen for denne ECC korrigerer således 1 fejlbit i hver transmitteret trilling. Selvom den er enkel at implementere og meget udbredt, er denne tredobbelte modulære redundans en relativt ineffektiv ECC. Bedre ECC -koder undersøger typisk de sidste flere tiere eller endda de sidste flere hundrede af tidligere modtagne bits for at afgøre, hvordan den aktuelle lille håndfuld bits skal dekodes.

Næsten alle todimensionale stregkoder som QR-koder, PDF-417, MaxiCode, Datamatrix og Aztec Code bruger Reed – Solomon ECC til at tillade korrekt læsning, selvom en del af stregkoden er beskadiget.

KRYPTOGRAFI

Kryptografisk kodning er designet omkring antagelser om beregningsmæssig hårdhed. Sådanne kodningsalgoritmer er forsætligt svære at bryde (i praktisk forstand) af enhver modstander. Det er teoretisk muligt at bryde et sådant system, men det er umuligt at gøre det på enhver kendt praktisk måde. Disse ordninger betegnes derfor beregningsmæssigt sikre. Der findes informationsteoretisk sikre ordninger, der beviseligt ikke kan brydes, selv med ubegrænset computerkraft, såsom engangspuden, men disse ordninger er vanskeligere at bruge i praksis end de bedste teoretisk brydbare, men beregningsmæssigt sikre mekanismer.

Traditionel kryptering er baseret på en transponeringskryptering, der omarrangerer rækkefølgen af bogstaver i en besked (f.eks. 'Hej verden' bliver til 'ehlol owrdl' i et trivielt enkelt omlægningsskema) og substitutionskiffer, som systematisk erstatter bogstaver eller grupper af bogstaver med andre bogstaver eller grupper af bogstaver (f.eks. 'flyv på en gang' bliver til 'gmz bu podf' ved at udskifte hvert bogstav med det bogstav, der følger det i det latinske alfabet). Enkle versioner af enten har aldrig tilbudt megen fortrolighed fra initiativrige modstandere. En tidlig substitutionschiffer var Cæsar -chifferet, hvor hvert bogstav i klarteksten blev erstattet af et bogstav et bestemt antal positioner længere nede i alfabetet. ROT13 er a er en simpel bogstavsubstitutionskoder, der erstatter et bogstav med det 13. bogstav efter det, i alfabetet. Det er et specielt tilfælde af Cæsar -chifferet. Prøv det her!

Trin 2: QR -koder

QR -koder
QR -koder

QR-koder (wikipedia) eller "Quick Response Codes" er en type matrix eller todimensionel stregkode, der først blev designet i 1994 til bilindustrien i Japan. En stregkode er en maskinlæsbar optisk etiket, der indeholder oplysninger om den vare, den er knyttet til. I praksis indeholder QR -koder ofte data for en lokalisator, identifikator eller tracker, der peger på et websted eller en applikation. En QR -kode bruger fire standardiserede kodningstilstande (numerisk, alfanumerisk, byte/binær og kanji) til at lagre data effektivt.

Quick Response -systemet blev populært uden for bilindustrien på grund af dets hurtige læsbarhed og større lagerkapacitet sammenlignet med standard UPC -stregkoder. Ansøgninger omfatter produktsporing, varegenkendelse, tidssporing, dokumenthåndtering og generel markedsføring. En QR -kode består af sorte firkanter arrangeret i et firkantet gitter på en hvid baggrund, som kan læses af en billeddannelsesenhed, f.eks. Et kamera, og behandles ved hjælp af Reed – Solomon -fejlkorrektion, indtil billedet kan tolkes korrekt. De nødvendige data ekstraheres derefter fra mønstre, der er til stede i både vandrette og lodrette komponenter i billedet.

Moderne smartphones læser normalt automatisk QR -koder (og andre stregkoder). Du skal blot åbne kameraappen, rette kameraet ind på stregkoden og vente et sekund eller to, indtil kameraappen viser, at det er låst på stregkoden. Appen viser undertiden stregindholdet med det samme, men normalt kræver appen valg af stregkodemeddelelse for at vise de oplysninger, der er hentet fra stregkoden. I løbet af juni 2011 scannede 14 millioner amerikanske mobilbrugere en QR -kode eller en stregkode.

Brugte du din smartphone til at læse de meddelelser, der er kodet på ydersiden af HackerBox 0058?

Interessant video: Kan du passe et helt spil ind i en QR -kode?

Gamle timere husker måske Cauzin Softstrip fra 80'ernes computermagasiner. (video demo)

Trin 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro er baseret på ATmega32U4 mikrokontroller, der har en indbygget USB -grænseflade. Det betyder, at der ikke er nogen FTDI, PL2303, CH340 eller nogen anden chip, der fungerer som mellemled mellem din computer og Arduino -mikrokontrolleren.

Vi foreslår, at du først tester Pro Micro uden at lodde stifterne på plads. Du kan udføre den grundlæggende konfiguration og test uden at bruge overskriftsstifterne. Også forsinkelse af lodning til modulet giver en mindre variabel til fejlfinding, hvis du skulle støde på eventuelle komplikationer.

Hvis du ikke har Arduino IDE installeret på din computer, skal du starte med at downloade IDE -formularen arduino.cc. ADVARSEL: Sørg for at vælge 3.3V -versionen under værktøjer> processor, før du programmerer Pro Micro. At have dette sæt til 5V fungerer én gang, og derefter ser det ud til, at enheden aldrig opretter forbindelse til din pc, før du følger instruktionerne "Reset to Bootloader" i guiden diskuteret nedenfor, hvilket kan være lidt vanskeligt.

Sparkfun har en fantastisk Pro Micro -tilslutningsguide. Tilslutningsguiden har en detaljeret oversigt over Pro Micro -kortet og derefter et afsnit om "Installation: Windows" og et afsnit om "Installation: Mac & Linux." Følg anvisningerne i den relevante version af disse installationsinstruktioner for at få din Arduino IDE konfigureret til at understøtte Pro Micro. Vi begynder normalt at arbejde med et Arduino -bord ved at indlæse og/eller ændre standard Blink -skitsen. Pro Micro inkluderer imidlertid ikke den sædvanlige LED på pin 13. Heldigvis kan vi styre RX/TX LED'erne. Sparkfun har givet en pæn lille skitse til at demonstrere hvordan. Dette er i afsnittet i tilslutningsguiden med titlen "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 ud til at fungere for at programmere Pro Micro, er det tid til omhyggeligt at lodde headerstifterne på modulet. Efter lodning testes omhyggeligt brættet igen.

FYI: Takket være den integrerede USB -transceiver kan Pro Micro let bruges til at efterligne en human interface -enhed (HID), såsom et tastatur eller en mus, og lege med injektion med tastetryk.

Trin 4: QR -koder på LCD -skærm i fuld farve

QR -koder på LCD -skærm i fuld farve
QR -koder på LCD -skærm i fuld farve

LCD -skærmen har 128 x 160 pixel i fuld farve, og den måler 1,8 tommer på diagonalen. ST7735S Driver Chip (datablad) kan tilsluttes grænseflader fra næsten enhver mikrokontroller ved hjælp af en Serial Peripheral Interface (SPI) bus. Interfacet er specificeret til 3.3V signalering og strømforsyning.

LCD -modulet kan forbindes direkte til 3.3V Pro Micro ved hjælp af 7 FF -jumperwire:

LCD ---- Pro Micro

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

Denne specifikke pin -tildeling giver bibliotekets eksempler mulighed for at fungere som standard.

Biblioteket kaldet "Adafruit ST7735 og ST7789" kan findes i Arduino IDE ved hjælp af menuen Værktøjer> Administrer biblioteker. Under installationen vil biblioteksadministratoren foreslå et par afhængige biblioteker, der følger med biblioteket. Tillad det også at installere dem.

Når biblioteket er installeret, skal du åbne Filer> Eksempler> Adafruit ST7735 og ST7789 Library> graphicstest

Kompiler og upload grafisk test. Det vil generere en grafisk demo på LCD -displayet, men med nogle rækker og kolonner med "støjende pixels" i kanten af skærmen.

Disse "støjende pixels" kan rettes ved at ændre TFT init -funktionen, der bruges nær toppen af opsætningsfunktionen (void).

Kommenter kodelinjen:

tft.initR (INITR_BLACKTAB);

Og kommenter linjen et par linjer ned:

tft.initR (INITR_GREENTAB);

Omprogrammer demoen, og alt skal se godt ud.

Nu kan vi bruge LCD'et til at vise QR -koder

Tilbage til menuen Arduino IDE Værktøjer> Administrer biblioteker.

Find og installer bibliotekets QRCode.

Download QR_TFT.ino -skitsen vedhæftet her.

Kompilér og programmer QR_TFT i ProMicro, og se om du kan bruge telefonens kamera -app til at læse den genererede QR -kode på LCD -displayet.

Nogle projekter, der anvender QR -kodegenerering til inspiration

Adgangskontrol

QR Ur

Trin 5: Fleksibelt fladt kabel

Fleksibelt fladt kabel
Fleksibelt fladt kabel

Et fleksibelt fladkabel (FFC) er enhver slags elektrisk kabel, der er både flad og fleksibel, med flade, solide ledere. En FFC er et kabel dannet af eller ligner et fleksibelt trykt kredsløb (FPC). Udtrykkene FPC og FFC bruges undertiden i flæng. Disse udtryk refererer generelt til et ekstremt tyndt fladt kabel, der ofte findes i elektroniske applikationer med høj densitet som bærbare computere og mobiltelefoner. De er en miniaturiseret form for båndkabel, der normalt består af en flad og fleksibel plastfilmbase, hvor flere flade metalliske ledere er bundet til en overflade.

FFC'er fås i en række forskellige stifter, hvor 1,0 mm og 0,5 mm er to almindelige muligheder. Det medfølgende FPC breakout board har spor for begge disse pladser, en på hver side af printkortet. Kun den ene side af printkortet bruges afhængigt af den ønskede stigning, 0,5 mm i dette tilfælde. Sørg for at bruge nummeret på headerstiften, der er trykt på den samme 0,5 mm side af printkortet. Pin -nummereringen på 1,0 mm -siden matcher ikke og bruges til en anden applikation.

FFC -stik på både breakout og stregkodescanneren er ZIF -stik (zero insertion force). Det betyder, at ZIF -stikkene har en mekanisk skyder, der er hængslet åben, før FFC indsættes og derefter hængslet lukket for at stramme stikket på FFC uden at lægge og indsætte kraft på selve kablet. To vigtige ting at bemærke om disse ZIF -stik:

1. De er begge "bundkontakt", hvilket betyder, at metalkontakterne på FFC'en skal vende nedad (mod PCB), når de indsættes.

2. Den hængslede skyder på breakout er på forsiden af stikket. Det betyder, at FFC vil gå under/gennem den hængslede skyder. I modsætning hertil er den hængslede skyder på stregkodescanneren på bagsiden af stikket. Det betyder, at FFC kommer ind i ZIF -stikket fra den modsatte side og ikke gennem den hængslede skyder.

Husk, at andre typer FFC/FPC ZIF -stik har laterale skydere i modsætning til de hængslede skydere, vi har her. I stedet for at hænge op og ned, glider laterale skydere ind og ud inden i konnektorens plan. Se altid grundigt efter, før du først bruger en ny type ZIF -stik. De er ret små og kan let blive beskadiget, hvis de tvinges uden for deres påtænkte rækkevidde eller bevægelsesplan.

Trin 6: Stregkodescanner

Stregkodescanner
Stregkodescanner

Når stregkodescanneren og FPC -breakout er forbundet med det fleksible flade kabel (FFC), kan fem hunkabletråde bruges til at forbinde breakout -printkortet til Arduino Pro Micro:

FPC ---- Pro Micro

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

Når du er tilsluttet, skal du programmere sketch barscandemo.ino i Pro Micro, åbne den serielle skærm og scanne alle tingene! Det kan være overraskende, hvor mange objekter omkring vores hjem og kontorer har stregkoder på dem. Du kender måske endda nogen med en stregkodetatovering.

Den vedlagte stregkodescannerhåndbog har koder, der kan scannes for at konfigurere processoren, der er integreret i scanneren.

Trin 7: Hack planeten

Hack planeten
Hack planeten

Vi håber, at du nyder denne måneds HackerBox -eventyr inden for elektronik og computerteknologi. Nå ud og del din succes i kommentarerne herunder eller andre sociale medier. Husk også, at du når som helst kan e -maile [email protected], hvis du har et spørgsmål eller har brug for hjælp.

Hvad er det næste? Deltag i revolutionen. Live HackLife. Få en kølig æske med hackbart udstyr leveret direkte til din postkasse hver måned. Surf over til HackerBoxes.com og tilmeld dig dit månedlige HackerBox -abonnement.

Anbefalede: