Innehållsförteckning:

HackerBox 0058: Kodning: 7 steg
HackerBox 0058: Kodning: 7 steg

Video: HackerBox 0058: Kodning: 7 steg

Video: HackerBox 0058: Kodning: 7 steg
Video: #105 HackerBox 0058 ENCode 2024, Juli
Anonim
HackerBox 0058: Koda
HackerBox 0058: Koda

Hälsningar till HackerBox Hackare runt om i världen! Med HackerBox 0058 utforskar vi informationskodning, streckkoder, QR -koder, programmering av Arduino Pro Micro, inbäddade LCD -skärmar, integrering av streckkodsgenerering inom Arduino -projekt, mänskliga inmatningsenheter och mer.

HackerBoxes är den månatliga prenumerationstjänsten för entusiaster inom elektronik och datorteknik - Hardware Hackers - The Dreamers of Dreams.

Det finns en mängd information för nuvarande och potentiella medlemmar i HackerBoxes FAQ. Nästan alla icke-tekniska support-e-postmeddelanden som vi får besvaras redan där, så vi uppskattar verkligen att du tar några minuter att läsa vanliga frågor.

Tillbehör

Denna instruktionsbok innehåller information för att komma igång med HackerBox 0058. Hela lådans innehåll visas på produktsidan för HackerBox 0058 där lådan också finns att köpa så länge lagret räcker. Om du automatiskt vill få en sån här HackerBox direkt i din brevlåda med en rabatt på $ 15 kan du prenumerera på HackerBoxes.com och gå med i revolutionen!

Ett lödkolv, löd och grundläggande lödningsverktyg behövs generellt för att arbeta med den månatliga HackerBox. En dator för att köra mjukvaruverktyg krävs också. Ta en titt på HackerBox Deluxe Starter Workshop för en uppsättning grundläggande verktyg och ett brett utbud av inledande aktiviteter och experiment.

Viktigast av allt, du behöver en känsla av äventyr, hackeranda, tålamod och nyfikenhet. Att bygga och experimentera med elektronik, samtidigt som det är mycket givande, kan vara svårt, utmanande och till och med frustrerande ibland. Målet är framsteg, inte perfektion. När du fortsätter och njuter av äventyret kan du få stor tillfredsställelse från denna hobby. Ta varje steg långsamt, tänk på detaljerna och var inte rädd för att be om hjälp

Steg 1: Kodning

Kodning
Kodning

För att kommunicera, spela in eller manipulera information krävs kodning. Eftersom behandling, lagring och kommunikation av information är kärnan i modern elektronik har vi mycket kodning att oroa oss för.

Som ett mycket enkelt exempel på kodning kan man representera hur många ögon eller öron de har genom att hålla upp två fingrar, eller genom att använda siffrorna "2" eller "] [" eller med orden "två" eller "dos" eller " Er "eller" zwei ". Inte så enkelt faktiskt, eller hur? Kodning som används på mänskligt språk, särskilt när det gäller ämnen som känslor eller abstraktion, kan bli mycket komplex.

FYSIK

Ja, allt börjar alltid med fysik. I elektroniska system börjar vi med att representera de enklaste värdena med elektriska signaler, vanligtvis spänningsnivåer. Till exempel kan NOLL representeras som mark (ungefär 0V) och EN som ungefär 5V (eller 3.3V, etc.) för att bilda ett binärt system med nollor och enor. Även med bara ZERO och ONE finns det ofta oklarheter att lösa. När knappen trycks är det NOLL eller EN? HÖG eller LÅG? Är chipvalsignalen "aktiv hög" eller "aktiv låg"? Vid vilken tid kan en signal läsas och hur länge är den giltig? I kommunikationssystem kallas detta "linjekodning".

På denna lägsta nivå handlar representationerna till stor del om systemets fysik. Vilka spänningar kan den stödja, hur snabbt kan den övergå, hur slås lasern på och av, hur modulerar informationssignaler en radiofrekvensbärare, vad är kanalens bandbredd, eller till och med hur genererar jonkoncentrationer aktionspotentialer i en nervcell. För elektronik finns denna information ofta i de imponerande tabellerna i tillverkarens datablad.

Det fysiska lagret (PHY) eller skiktet 1 är det första och lägsta lagret i OSI-modellen med sju lager för datornätverk. Det fysiska lagret definierar sättet att överföra råa bitar över en fysisk datalänk som ansluter nätverksnoder. Det fysiska lagret tillhandahåller ett elektriskt, mekaniskt och procedurmässigt gränssnitt till överföringsmediet. De elektriska kontaktdonens former och egenskaper, frekvenserna att sända på, den linjekod som ska användas och liknande lågnivåparametrar specificeras av det fysiska lagret.

TAL

Vi kan inte göra mycket med bara ETT och NOLL, annars hade vi utvecklats till att "tala" genom att blinka med ögonen på varandra. Binära värden är dock en bra början. I dator- och kommunikationssystem kombinerar vi binära siffror (bitar) till byte och "ord" som innehåller till exempel 8, 16, 32 eller 64 bitar.

Hur motsvarar dessa binära ord siffror eller värden? I en enkel 8-bitars byte är 00000000 generellt noll och 11111111 är i allmänhet 255 för att tillhandahålla 2-till-8 eller 256 olika värden. Naturligtvis slutar det inte där, eftersom det finns mycket mer än 256 nummer och inte alla siffror är positiva heltal. Redan före beräkningssystem representerade vi numeriska värden med hjälp av olika talsystem, språk, baser och med hjälp av tekniker som negativa tal, imaginära tal, vetenskaplig notation, rötter, förhållanden och logaritmiska skalor av olika olika baser. För numeriska värden i datorsystem måste vi kämpa med frågor som maskin epsilon, endianness, fixpunkt och flytande punktrepresentationer.

TEXT (CETERA)

Förutom att representera siffror eller värden kan binära byte och ord representera bokstäver och andra textsymboler. Den vanligaste formen för textkodning är American Standard Code for Information Interchange (ASCII). Naturligtvis kan olika typer av information kodas som text: en bok, denna webbsida, ett xml -dokument.

I vissa fall, till exempel e -post eller Usenet -inlägg, kanske vi vill koda bredare informationstyper (t.ex. allmänna binära filer) som text. Uuenkodningsprocessen är en vanlig form av binär-till-text-kodning. Du kan till och med "koda" bilder som text: ASCII Art eller ännu bättre ANSI Art.

KODNINGSTEORI

Kodningsteori är att studera egenskaper hos koder och deras respektive lämplighet för specifika tillämpningar. Koder används för datakomprimering, kryptografi, feldetektering och korrigering, dataöverföring och datalagring. Koder studeras av olika vetenskapliga discipliner för att utforma effektiva och tillförlitliga dataöverföringsmetoder. Exempel discipliner inkluderar informationsteori, elektroteknik, matematik, lingvistik och datavetenskap.

DATAKOMPRESSION (tar bort redundans)

Datakomprimering, källkodning eller bithastighetsreduktion är processen för kodning av information med färre bitar än den ursprungliga representationen. Varje särskild komprimering är antingen förlustfri eller förlustfri. Förlustfri komprimering minskar bitar genom att identifiera och eliminera statistisk redundans. Ingen information går förlorad vid förlustfri komprimering. Förlorad komprimering minskar bitar genom att ta bort onödig eller mindre viktig information.

Komprimeringsmetoderna Lempel – Ziv (LZ) är bland de mest populära algoritmerna för förlustfri lagring. I mitten av 1980-talet, efter arbete av Terry Welch, blev algoritmen Lempel – Ziv – Welch (LZW) snabbt den valbara metoden för de flesta komprimeringssystem för allmänna ändamål. LZW används i-g.webp

Vi använder ständigt komprimerad data för DVD -skivor, strömmande MPEG -video, MP3 -ljud, JPEG -grafik, ZIP -filer, komprimerade tjärbollar och så vidare.

FELDETEKTION OCH KORRIGERING (lägger till användbar redundans)

Feldetektering och korrigering eller felkontroll är tekniker som möjliggör tillförlitlig leverans av digital data över opålitliga kommunikationskanaler. Många kommunikationskanaler utsätts för kanalbrus, och därför kan fel införas under överföring från källan till en mottagare. Feldetektering är detektering av fel som orsakas av buller eller andra störningar under överföring från sändaren till mottagaren. Felkorrigering är upptäckt av fel och rekonstruktion av den ursprungliga, felfria data.

Feldetektering utförs enklast med hjälp av sändningsrepetition, paritetsbitar, kontrollsummor eller CRC eller hashfunktioner. Ett fel i överföringen kan upptäckas (men vanligtvis inte korrigeras) av mottagaren som sedan kan begära vidarebefordran av data.

Felkorrigeringskoder (ECC) används för att kontrollera fel i data över opålitliga eller bullriga kommunikationskanaler. Den centrala idén är att avsändaren kodar meddelandet med redundant information i form av en ECC. Redundansen gör att mottagaren kan upptäcka ett begränsat antal fel som kan uppstå var som helst i meddelandet, och ofta för att korrigera dessa fel utan vidarebefordran. Ett förenklat exempel på ECC är att sända varje databit 3 gånger, vilket är känt som en (3, 1) upprepningskod. Även om endast 0, 0, 0 eller 1, 1, 1 överförs kan fel i den bullriga kanalen presentera vilket som helst av åtta möjliga värden (tre bitar) för mottagaren. Detta gör att ett fel i något av de tre urvalen kan korrigeras med "majoritetsröst" eller "demokratisk omröstning". Korrigeringsförmågan hos denna ECC är således att korrigera 1 felbit i varje överförd trilling. Även om den är enkel att implementera och ofta används, är denna tredubbla modulära redundans en relativt ineffektiv ECC. Bättre ECC -koder undersöker vanligtvis de sista flera tiotalen eller till och med de senaste hundratals tidigare mottagna bitarna för att bestämma hur man avkodar den nuvarande lilla handfull bitarna.

Nästan alla tvådimensionella streckkoder som QR-koder, PDF-417, MaxiCode, Datamatrix och Aztec Code använder Reed – Solomon ECC för att möjliggöra korrekt avläsning även om en del av streckkoden är skadad.

KRYPTOGRAFI

Kryptografisk kodning är utformad kring antaganden om beräkningshårdhet. Sådana kodningsalgoritmer är avsiktligt svåra att bryta (i praktisk mening) av någon motståndare. Det är teoretiskt möjligt att bryta ett sådant system, men det är omöjligt att göra det på något känt praktiskt sätt. Dessa system kallas därför beräkningssäkert. Det finns informationsteoretiskt säkra system som bevisligen inte kan brytas även med obegränsad datorkraft, till exempel engångskudden, men dessa system är svårare att använda i praktiken än de bästa teoretiskt brytbara men beräkningsmässigt säkra mekanismerna.

Traditionell kryptering är baserad på en transponeringskryptering, som ordnar om ordningen på bokstäver i ett meddelande (t.ex. 'hejvärlden' blir 'ehlol owrdl' i ett trivialt enkelt omorganisationsschema) och substitutionschiffer, som systematiskt ersätter bokstäver eller grupper av bokstäver med andra bokstäver eller grupper av bokstäver (t.ex. "flyga på en gång" blir "gmz bu podf" genom att ersätta varje bokstav med den som följer efter det i det latinska alfabetet). Enkla versioner av antingen har aldrig erbjudit mycket konfidentialitet från driftiga motståndare. En tidig substitutionskod var Caesar -chiffran, där varje bokstav i klartext ersattes av en bokstav ett visst antal positioner längre ner i alfabetet. ROT13 är a är en enkel bokstavsersättningskodare som ersätter en bokstav med den 13: e bokstaven efter den, i alfabetet. Det är ett specialfall av Caesar -chifferet. Prova det här!

Steg 2: QR -koder

QR -koder
QR -koder

QR-koder (wikipedia) eller "Quick Response Codes" är en typ av matris eller tvådimensionell streckkod som först designades 1994 för bilindustrin i Japan. En streckkod är en maskinläsbar optisk etikett som innehåller information om objektet som den är ansluten till. I praktiken innehåller QR -koder ofta data för en sökare, identifierare eller spårare som pekar på en webbplats eller applikation. En QR -kod använder fyra standardiserade kodningslägen (numeriska, alfanumeriska, byte/binära och kanji) för att lagra data effektivt.

Quick Response -systemet blev populärt utanför bilindustrin på grund av dess snabba läsbarhet och större lagringskapacitet jämfört med vanliga UPC -streckkoder. Tillämpningarna inkluderar produktspårning, artikelidentifiering, tidsspårning, dokumenthantering och allmän marknadsföring. En QR -kod består av svarta rutor arrangerade i ett fyrkantigt rutnät på en vit bakgrund, som kan läsas av en bildanordning som en kamera, och bearbetas med hjälp av Reed -Solomon -felkorrigering tills bilden kan tolkas på lämpligt sätt. Den data som krävs extraheras sedan från mönster som finns i både horisontella och vertikala komponenter i bilden.

Moderna smartphones läser vanligtvis automatiskt QR -koder (och andra streckkoder). Öppna helt enkelt kameraappen, rikta kameran mot streckkoden och vänta en eller två sekunder tills kameraappen visar att den har låst sig på streckkoden. Appen visar ibland streckkodsinnehållet direkt, men vanligtvis kräver appen val av streckkodsavisering för att visa all information som har extraherats från streckkoden. Under juni 2011 skannade 14 miljoner amerikanska mobilanvändare en QR -kod eller en streckkod.

Användte du din smartphone för att läsa meddelandena som är kodade på utsidan av HackerBox 0058?

Intressant video: Kan du passa in ett helt spel i en QR -kod?

Gamla tiders kanske kommer ihåg Cauzin Softstrip från 80 -talet datortidningar. (videodemo)

Steg 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro är baserad på ATmega32U4 mikrokontroller som har ett inbyggt USB -gränssnitt. Det betyder att det inte finns någon FTDI, PL2303, CH340 eller något annat chip som fungerar som mellanhand mellan din dator och Arduino -mikrokontrollern.

Vi föreslår att du först testar Pro Micro utan att löda stiften på plats. Du kan utföra den grundläggande konfigurationen och testningen utan att använda rubrikstiften. Fördröjning av lödning till modulen ger också en mindre variabel att felsöka om du skulle stöta på några komplikationer.

Om du inte har Arduino IDE installerat på din dator, börja med att ladda ner IDE -formuläret arduino.cc. VARNING: Var noga med att välja 3.3V -versionen under verktyg> processor innan du programmerar Pro Micro. Att ha den här uppsättningen för 5V kommer att fungera en gång och då verkar det som om enheten aldrig kommer att ansluta till din dator förrän du följer instruktionerna "Återställ till bootloader" i guiden som diskuteras nedan, vilket kan vara lite knepigt.

Sparkfun har en bra Pro Micro Hookup Guide. Kopplingsguiden har en detaljerad översikt över Pro Micro -kortet och sedan ett avsnitt för "Installera: Windows" och ett avsnitt för "Installera: Mac och Linux." Följ anvisningarna i lämplig version av dessa installationsanvisningar för att få din Arduino IDE konfigurerad för att stödja Pro Micro. Vi börjar vanligtvis arbeta med ett Arduino -kort genom att ladda och/eller ändra standard Blink -skissen. Pro Micro innehåller dock inte den vanliga lysdioden på stift 13. Lyckligtvis kan vi styra RX/TX -lysdioderna. Sparkfun har gett en snygg liten skiss för att demonstrera hur. Detta finns i avsnittet i anslutningsguiden med titeln "Exempel 1: Blinkar!" Verifiera att du kan kompilera och programmera denna Blinkies! exempel på Pro Micro innan du går vidare.

När allt verkar fungera för att programmera Pro Micro är det dags att noggrant löda huvudstiften på modulen. Efter lödning, testa noggrant brädan igen.

FYI: Tack vare den integrerade USB -transceivern kan Pro Micro enkelt användas för att emulera en human interface -enhet (HID) som ett tangentbord eller en mus och leka med knapptryckning.

Steg 4: QR -koder på fullfärgs LCD -skärm

QR -koder på fullfärgs LCD -skärm
QR -koder på fullfärgs LCD -skärm

LCD -skärmen har 128 x 160 pixlar i fullfärg och den mäter 1,8 tum på diagonalen. ST7735S Driver Chip (datablad) kan anslutas från nästan vilken mikrokontroller som helst med hjälp av en Serial Peripheral Interface (SPI) -buss. Gränssnittet är specificerat för 3.3V signalering och strömförsörjning.

LCD -modulen kan anslutas direkt till 3.3V Pro Micro med 7 FF -bygelkablar:

LCD ---- Pro Micro

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

Denna specifika pin -tilldelning gör att biblioteksexemplen fungerar som standard.

Biblioteket som heter "Adafruit ST7735 och ST7789" finns i Arduino IDE med hjälp av menyn Verktyg> Hantera bibliotek. Under installationen föreslår bibliotekshanteraren några beroende bibliotek som följer med det biblioteket. Låt den installera dem också.

När det biblioteket är installerat öppnar du Filer> Exempel> Adafruit ST7735 och ST7789 Library> graphicstest

Kompilera och ladda upp grafiska test. Det kommer att generera en grafisk demo på LCD -skärmen, men med några rader och kolumner med "bullriga pixlar" vid kanten av skärmen.

Dessa "bullriga pixlar" kan fixas genom att ändra TFT init -funktionen som används nära toppen av inställningsfunktionen (void).

Kommentera koderaden:

tft.initR (INITR_BLACKTAB);

Och kommentera raden ett par rader ner:

tft.initR (INITR_GREENTAB);

Omprogrammera demoen och allt ska se bra ut.

Nu kan vi använda LCD -skärmen för att visa QR -koder

Tillbaka till Arduino IDE -menyn Verktyg> Hantera bibliotek.

Leta upp och installera bibliotekets QRCode.

Ladda ner QR_TFT.ino -skissen bifogad här.

Kompilera och programmera QR_TFT i ProMicro och se om du kan använda telefonens kameraapp för att läsa den genererade QR -koden på LCD -skärmen.

Några projekt som använder QR -kodgenerering för inspiration

Åtkomstkontroll

QR -klocka

Steg 5: Flexibel platt kabel

Flexibel platt kabel
Flexibel platt kabel

En flexibel platt kabel (FFC) är alla typer av elektriska kablar som är både platta och flexibla, med platta solida ledare. En FFC är en kabel bildad av eller liknande en flexibel tryckt krets (FPC). Termerna FPC och FFC används ibland omväxlande. Dessa termer hänvisar i allmänhet till en extremt tunn platt kabel som ofta finns i elektroniska högdensitetsapplikationer som bärbara datorer och mobiltelefoner. De är en miniatyriserad form av bandkabel som vanligtvis består av en platt och flexibel plastfilmbas, med flera plana metalliska ledare bundna till en yta.

FFC finns i en mängd olika stiftsteg med 1,0 mm och 0,5 mm som två vanliga alternativ. Den medföljande FPC -utbrottskortet har spår för båda dessa platser, en på varje sida av kretskortet. Endast en sida av kretskortet används beroende på önskad delning, 0,5 mm i detta fall. Var noga med att använda rubrikstiftet som är tryckt på samma 0,5 mm sida av kretskortet. Stiftnumreringen på 1,0 mm -sidan matchar inte och används för en annan applikation.

FFC -kontakterna på både breakout och streckkodsläsaren är ZIF -kontakter (zero insertion force). Det betyder att ZIF -kontakterna har ett mekaniskt reglage som är gångjärnt öppet innan FFC sätts in och sedan stängs för att dra åt kontakten på FFC utan att sätta på och sätta in kraft på själva kabeln. Två viktiga saker att notera om dessa ZIF -kontakter:

1. De är båda "bottenkontakt" vilket innebär att metallkontakterna på FFC måste vända nedåt (mot kretskortet) när de sätts in.

2. Det gångjärnsreglage på breakout är på framsidan av kontakten. Det betyder att FFC kommer att gå under/genom det gångjärnsreglage. Däremot finns det gångjärnsreglage på streckkodsläsaren på baksidan av kontakten. Det betyder att FFC kommer in i ZIF -kontakten från motsatt sida och inte genom det gångjärnsreglage.

Tänk på att andra typer av FFC/FPC ZIF -kontakter har laterala reglage i motsats till de gångjärnsreglage vi har här. Istället för att svänga upp och ner, glider sidoföraren in och ut i kontaktdonets plan. Titta alltid noga innan du använder en ny typ av ZIF -kontakt. De är ganska små och kan lätt skadas om de tvingas utanför avsett avstånd eller rörelseplan.

Steg 6: Streckkodsläsare

Streckkodsläsare
Streckkodsläsare

När streckkodsläsaren och FPC -brytningen är anslutna med den flexibla platta kabeln (FFC) kan fem kvinnliga bygelkablar användas för att ansluta utbrytningskortet till Arduino Pro Micro:

FPC ---- Pro Micro

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

När du är ansluten, programmerar du sketch barscandemo.ino i Pro Micro, öppnar seriemonitorn och skannar allt! Det kan vara förvånande hur många objekt runt våra hem och kontor har streckkoder på dem. Du kanske till och med känner någon med en streckkodstatuering.

Den bifogade streckkodsläsarmanualen har koder som kan skannas för att konfigurera processorn inbäddad i skannern.

Steg 7: Hacka planeten

Hacka planeten
Hacka planeten

Vi hoppas att du njuter av månadens HackerBox -äventyr inom elektronik och datorteknik. Nå ut och dela din framgång i kommentarerna nedan eller andra sociala medier. Kom också ihåg att du kan skicka e -post till [email protected] när som helst om du har en fråga eller behöver hjälp.

Vad kommer härnäst? Gå med i revolutionen. Lev HackLife. Få en cool låda med hackbar utrustning levererad direkt till din brevlåda varje månad. Surfa över till HackerBoxes.com och registrera dig för ditt månatliga HackerBox -abonnemang.

Rekommenderad: