สารบัญ:

HackerBox 0058: เข้ารหัส: 7 ขั้นตอน
HackerBox 0058: เข้ารหัส: 7 ขั้นตอน

วีดีโอ: HackerBox 0058: เข้ารหัส: 7 ขั้นตอน

วีดีโอ: HackerBox 0058: เข้ารหัส: 7 ขั้นตอน
วีดีโอ: #105 HackerBox 0058 ENCode 2024, กรกฎาคม
Anonim
HackerBox 0058: เข้ารหัส
HackerBox 0058: เข้ารหัส

สวัสดี HackerBox แฮกเกอร์ทั่วโลก! ด้วย HackerBox 0058 เราจะสำรวจการเข้ารหัสข้อมูล, บาร์โค้ด, รหัส QR, การเขียนโปรแกรม Arduino Pro Micro, จอ LCD แบบฝัง, การรวมการสร้างบาร์โค้ดภายในโครงการ Arduino, การใช้ประโยชน์จากอุปกรณ์อินพุตของมนุษย์ และอื่นๆ

HackerBoxes เป็นบริการกล่องสมัครสมาชิกรายเดือนสำหรับผู้ที่ชื่นชอบอุปกรณ์อิเล็กทรอนิกส์และเทคโนโลยีคอมพิวเตอร์ - แฮ็กเกอร์ฮาร์ดแวร์ - ความฝันแห่งความฝัน

มีข้อมูลมากมายสำหรับสมาชิกปัจจุบันและที่คาดหวังในคำถามที่พบบ่อยของ HackerBoxes อีเมลสนับสนุนที่ไม่ใช่ด้านเทคนิคเกือบทั้งหมดที่เราได้รับนั้นมีคำตอบอยู่แล้ว เราจึงรู้สึกยินดีเป็นอย่างยิ่งที่คุณสละเวลาสักครู่เพื่ออ่านคำถามที่พบบ่อย

เสบียง

คำแนะนำนี้มีข้อมูลสำหรับการเริ่มต้นใช้งาน HackerBox 0058 เนื้อหาในกล่องทั้งหมดแสดงอยู่ในหน้าผลิตภัณฑ์สำหรับ HackerBox 0058 ซึ่งกล่องนี้ยังสามารถซื้อได้ในขณะที่สินค้าหมด หากคุณต้องการรับ HackerBox แบบนี้โดยอัตโนมัติในกล่องจดหมายของคุณทุกเดือนพร้อมส่วนลด 15 ดอลลาร์ คุณสามารถสมัครสมาชิกที่ HackerBoxes.com และเข้าร่วมการปฏิวัติ!

โดยทั่วไปจำเป็นต้องใช้หัวแร้ง หัวแร้ง บัดกรี และเครื่องมือบัดกรีพื้นฐานเพื่อทำงานกับ HackerBox รายเดือน จำเป็นต้องมีคอมพิวเตอร์สำหรับใช้งานเครื่องมือซอฟต์แวร์ด้วย ดูที่ HackerBox Deluxe Starter Workshop สำหรับชุดเครื่องมือพื้นฐานและกิจกรรมแนะนำและการทดลองมากมาย

ที่สำคัญที่สุด คุณจะต้องมีความรู้สึกของการผจญภัย จิตวิญญาณของแฮ็กเกอร์ ความอดทน และความอยากรู้อยากเห็น การสร้างและทดลองใช้อุปกรณ์อิเล็กทรอนิกส์ แม้จะให้ผลตอบแทนสูง แต่ก็อาจเป็นเรื่องยาก ท้าทาย และน่าหงุดหงิดในบางครั้ง เป้าหมายคือความก้าวหน้า ไม่ใช่ความสมบูรณ์แบบ เมื่อคุณยืนกรานและสนุกไปกับการผจญภัย งานอดิเรกนี้จะได้รับความพึงพอใจอย่างมาก ค่อยๆทำทีละก้าว ใส่ใจในรายละเอียด อย่ากลัวที่จะขอความช่วยเหลือ

ขั้นตอนที่ 1: การเข้ารหัส

การเข้ารหัส
การเข้ารหัส

การสื่อสาร บันทึก หรือจัดการข้อมูลจำเป็นต้องมีการเข้ารหัส เนื่องจากการประมวลผล การจัดเก็บ และการสื่อสารข้อมูลเป็นหัวใจสำคัญของอุปกรณ์อิเล็กทรอนิกส์สมัยใหม่ เราจึงมีการเข้ารหัสมากมายที่ต้องกังวล

ตัวอย่างง่ายๆ ของการเข้ารหัส อาจแสดงจำนวนตาหรือหูที่พวกเขามีโดยชูสองนิ้วหรือใช้ตัวเลข "2" หรือ "][" หรือใช้คำว่า "สอง" หรือ "dos" หรือ " เอ๋อ" หรือ "จ่วย" ไม่ง่ายอย่างนั้นจริงเหรอ? การเข้ารหัสที่ใช้ในภาษามนุษย์ โดยเฉพาะอย่างยิ่งในหัวข้อต่างๆ เช่น อารมณ์หรือสิ่งที่เป็นนามธรรม อาจมีความซับซ้อนสูง

ฟิสิกส์

ใช่ ทุกอย่างเริ่มต้นด้วยฟิสิกส์เสมอ ในระบบอิเล็กทรอนิกส์ เราเริ่มต้นด้วยการแสดงค่าที่ง่ายที่สุดโดยสัญญาณไฟฟ้า ซึ่งมักจะเป็นระดับแรงดันไฟฟ้า ตัวอย่างเช่น ZERO อาจแสดงเป็นกราวด์ (ประมาณ 0V) และ ONE เป็นค่าประมาณ 5V (หรือ 3.3V เป็นต้น) เพื่อสร้างระบบเลขฐานสองของศูนย์และหนึ่ง แม้จะมีเพียง ZERO และ ONE ก็มักจะมีความคลุมเครือให้แก้ไข เมื่อกดปุ่มจะเป็น ZERO หรือ ONE? สูงหรือต่ำ? ชิปเลือกสัญญาณ "แอ็คทีฟสูง" หรือ "แอ็คทีฟต่ำ" หรือไม่? สามารถอ่านสัญญาณได้ในเวลาใดและจะใช้งานได้นานเท่าใด ในระบบการสื่อสาร เรียกว่า "line coding"

ในระดับต่ำสุดนี้ การแสดงส่วนใหญ่เกี่ยวกับฟิสิกส์ของระบบ แรงดันไฟฟ้าที่สามารถรองรับได้, มันสามารถเปลี่ยนแปลงได้เร็วแค่ไหน, เลเซอร์เปิดและปิดอย่างไร, สัญญาณข้อมูลปรับคลื่นความถี่วิทยุได้อย่างไร, แบนด์วิดท์ของช่องสัญญาณคืออะไร, หรือแม้แต่ความเข้มข้นของไอออนสร้างศักยภาพในการดำเนินการอย่างไรใน เซลล์ประสาท สำหรับอุปกรณ์อิเล็กทรอนิกส์ ข้อมูลนี้มักมีอยู่ในตารางอันโอ่อ่าของแผ่นข้อมูลของผู้ผลิต

ฟิสิคัลเลเยอร์ (PHY) หรือเลเยอร์ 1 เป็นเลเยอร์แรกและต่ำสุดในโมเดล OSI เจ็ดเลเยอร์ของเครือข่ายคอมพิวเตอร์ ชั้นกายภาพกำหนดวิธีการส่งบิตดิบผ่านการเชื่อมโยงข้อมูลทางกายภาพที่เชื่อมต่อโหนดเครือข่าย ชั้นกายภาพมีส่วนต่อประสานทางไฟฟ้า ทางกล และขั้นตอนกับสื่อส่งสัญญาณ รูปร่างและคุณสมบัติของขั้วต่อไฟฟ้า ความถี่ในการออกอากาศ รหัสสายที่ใช้และพารามิเตอร์ระดับต่ำที่คล้ายกัน ถูกกำหนดโดยชั้นกายภาพ

NUMBERS

เราไม่สามารถทำอะไรได้มากมายด้วย ONE และ ZERO มิฉะนั้นเราจะพัฒนาเพื่อ "พูด" โดยกระพริบตาซึ่งกันและกัน ค่าไบนารีเป็นจุดเริ่มต้นที่ดีแม้ว่า ในระบบคอมพิวเตอร์และการสื่อสาร เรารวมเลขฐานสอง (บิต) เป็นไบต์และ "คำ" ที่มี เช่น 8, 16, 32 หรือ 64 บิต

คำไบนารีเหล่านี้สอดคล้องกับตัวเลขหรือค่าอย่างไร ในไบต์ 8 บิตอย่างง่าย 00000000 โดยทั่วไปจะเป็นศูนย์และ 11111111 โดยทั่วไปคือ 255 เพื่อระบุค่า 2 ต่อ 8 หรือ 256 ค่าที่แตกต่างกัน แน่นอนว่ามันไม่ได้หยุดอยู่แค่นั้น เพราะมีตัวเลขมากกว่า 256 ตัว และไม่ใช่ตัวเลขทั้งหมดที่เป็นจำนวนเต็มบวก แม้กระทั่งก่อนระบบการคำนวณ เราแสดงค่าตัวเลขโดยใช้ระบบตัวเลข ภาษา ฐาน และเทคนิคการใช้ต่างๆ เช่น จำนวนลบ ตัวเลขจินตภาพ สัญกรณ์วิทยาศาสตร์ ราก อัตราส่วน และมาตราส่วนลอการิทึมของฐานต่างๆ สำหรับค่าตัวเลขในระบบคอมพิวเตอร์ เราต้องต่อสู้กับปัญหาต่างๆ เช่น machine epsilon, endianness, fixed point และการแสดงแทนทศนิยม

ข้อความ(CETERA)

นอกเหนือจากการแสดงตัวเลขหรือค่าแล้ว ไบนารีไบต์และคำยังสามารถแทนตัวอักษรและสัญลักษณ์ข้อความอื่นๆ รูปแบบการเข้ารหัสข้อความที่พบบ่อยที่สุดคือ American Standard Code for Information Interchange (ASCII) แน่นอนว่าข้อมูลประเภทต่างๆ สามารถเข้ารหัสเป็นข้อความได้ เช่น หนังสือ หน้าเว็บนี้ เอกสาร xml

ในบางกรณี เช่น อีเมลหรือการโพสต์ Usenet เราอาจต้องการเข้ารหัสประเภทข้อมูลที่กว้างขึ้น (เช่น ไฟล์ไบนารีทั่วไป) เป็นข้อความ กระบวนการของ uuencoding เป็นรูปแบบทั่วไปของการเข้ารหัสแบบไบนารีเป็นข้อความ คุณยังสามารถ "เข้ารหัส" รูปภาพเป็นข้อความ: ASCII Art หรือดีกว่า ANSI Art

ทฤษฎีการเข้ารหัส

ทฤษฎีการเข้ารหัสคือการศึกษาคุณสมบัติของรหัสและความเหมาะสมสำหรับการใช้งานเฉพาะ รหัสใช้สำหรับการบีบอัดข้อมูล การเข้ารหัส การตรวจจับและแก้ไขข้อผิดพลาด การส่งข้อมูลและการจัดเก็บข้อมูล รหัสได้รับการศึกษาตามสาขาวิชาวิทยาศาสตร์ต่างๆ เพื่อจุดประสงค์ในการออกแบบวิธีการส่งข้อมูลที่มีประสิทธิภาพและเชื่อถือได้ ตัวอย่างสาขาวิชา ได้แก่ ทฤษฎีสารสนเทศ วิศวกรรมไฟฟ้า คณิตศาสตร์ ภาษาศาสตร์ และวิทยาการคอมพิวเตอร์

การบีบอัดข้อมูล (การลบความซ้ำซ้อน)

การบีบอัดข้อมูล การเข้ารหัสต้นทาง หรือการลดอัตราบิตเป็นกระบวนการของการเข้ารหัสข้อมูลโดยใช้บิตน้อยกว่าการแสดงต้นฉบับ การบีบอัดใด ๆ โดยเฉพาะมีทั้งแบบสูญเสียหรือแบบไม่สูญเสีย การบีบอัดแบบไม่สูญเสียข้อมูลช่วยลดบิตด้วยการระบุและขจัดความซ้ำซ้อนทางสถิติ ข้อมูลจะไม่สูญหายไปในการบีบอัดแบบไม่สูญเสียข้อมูล การบีบอัดแบบ Lossy ช่วยลดบิตโดยการลบข้อมูลที่ไม่จำเป็นหรือสำคัญน้อยกว่า

วิธีการบีบอัด Lempel–Ziv (LZ) เป็นหนึ่งในอัลกอริทึมที่ได้รับความนิยมมากที่สุดสำหรับการจัดเก็บแบบไม่สูญเสียข้อมูล ในช่วงกลางทศวรรษ 1980 ตามผลงานของ Terry Welch อัลกอริธึม Lempel–Ziv–Welch (LZW) ได้กลายเป็นวิธีการทางเลือกสำหรับระบบบีบอัดเอนกประสงค์ส่วนใหญ่อย่างรวดเร็ว LZW ใช้ในอิมเมจ-g.webp

เราใช้ข้อมูลที่บีบอัดสำหรับดีวีดี การสตรีมวิดีโอ MPEG, เสียง MP3, กราฟิก JPEG, ไฟล์ ZIP, tar ball ที่ถูกบีบอัด และอื่นๆ อย่างต่อเนื่อง

การตรวจจับข้อผิดพลาดและการแก้ไข (เพิ่มความซ้ำซ้อนที่มีประโยชน์)

การตรวจจับและแก้ไขข้อผิดพลาดหรือการควบคุมข้อผิดพลาดเป็นเทคนิคที่ช่วยให้สามารถส่งข้อมูลดิจิทัลผ่านช่องทางการสื่อสารที่ไม่น่าเชื่อถือได้ ช่องทางการสื่อสารจำนวนมากอาจมีสัญญาณรบกวนจากช่องสัญญาณ ดังนั้นจึงอาจมีข้อผิดพลาดเกิดขึ้นในระหว่างการส่งสัญญาณจากต้นทางไปยังเครื่องรับ การตรวจจับข้อผิดพลาดคือการตรวจจับข้อผิดพลาดที่เกิดจากเสียงหรือการด้อยค่าอื่น ๆ ระหว่างการส่งจากเครื่องส่งไปยังเครื่องรับ การแก้ไขข้อผิดพลาดคือการตรวจหาข้อผิดพลาดและสร้างข้อมูลเดิมที่ปราศจากข้อผิดพลาดขึ้นใหม่

การตรวจจับข้อผิดพลาดทำได้โดยง่ายที่สุดโดยใช้การส่งข้อมูลซ้ำ พาริตีบิต เช็คซัม หรือ CRC หรือฟังก์ชันแฮช ผู้รับสามารถตรวจพบข้อผิดพลาดในการส่งข้อมูล (แต่โดยทั่วไปไม่สามารถแก้ไขได้) ซึ่งสามารถร้องขอการส่งข้อมูลซ้ำได้

รหัสแก้ไขข้อผิดพลาด (ECC) ใช้สำหรับควบคุมข้อผิดพลาดในข้อมูลผ่านช่องทางการสื่อสารที่ไม่น่าเชื่อถือหรือมีเสียงรบกวน แนวคิดหลักคือผู้ส่งเข้ารหัสข้อความด้วยข้อมูลที่ซ้ำซ้อนในรูปแบบของ ECC ความซ้ำซ้อนช่วยให้ผู้รับตรวจพบข้อผิดพลาดในจำนวนจำกัดที่อาจเกิดขึ้นได้ทุกที่ในข้อความ และมักจะแก้ไขข้อผิดพลาดเหล่านี้โดยไม่ต้องส่งซ้ำ ตัวอย่างง่ายๆ ของ ECC คือการส่งข้อมูลแต่ละบิต 3 ครั้ง ซึ่งเรียกว่ารหัสการทำซ้ำ (3, 1) แม้ว่าจะมีการส่งเพียง 0, 0, 0 หรือ 1, 1, 1 ข้อผิดพลาดภายในช่องสัญญาณรบกวนสามารถแสดงค่าที่เป็นไปได้แปดค่า (สามบิต) ไปยังเครื่องรับ สิ่งนี้ทำให้ข้อผิดพลาดในตัวอย่างใดตัวอย่างหนึ่งจากสามตัวอย่างสามารถแก้ไขได้ด้วย "การลงคะแนนเสียงข้างมาก" หรือ "การลงคะแนนตามระบอบประชาธิปไตย" ความสามารถในการแก้ไขของ ECC นี้จึงแก้ไขข้อผิดพลาด 1 บิตในแต่ละ triplet ที่ส่ง แม้ว่าจะใช้งานง่ายและใช้กันอย่างแพร่หลาย แต่ความซ้ำซ้อนแบบโมดูลาร์สามส่วนนี้เป็น ECC ที่ค่อนข้างไม่มีประสิทธิภาพ โดยทั่วไปแล้ว รหัส ECC ที่ดีกว่าจะตรวจสอบหลายสิบหรือหลายร้อยบิตสุดท้ายที่ได้รับก่อนหน้านี้เพื่อกำหนดวิธีการถอดรหัสบิตขนาดเล็กจำนวนหนึ่งในปัจจุบัน

บาร์โค้ดสองมิติเกือบทั้งหมด เช่น QR Codes, PDF-417, MaxiCode, Datamatrix และ Aztec Code ใช้ Reed–Solomon ECC เพื่อให้อ่านได้อย่างถูกต้องแม้ว่าส่วนหนึ่งของบาร์โค้ดจะเสียหายก็ตาม

CRYPTOGRAPHY

การเข้ารหัสแบบเข้ารหัสได้รับการออกแบบโดยใช้สมมติฐานด้านความแข็งในการคำนวณ อัลกอริธึมการเข้ารหัสดังกล่าวตั้งใจที่จะทำลาย (ในทางปฏิบัติ) โดยฝ่ายตรงข้ามได้ยาก เป็นไปได้ในทางทฤษฎีที่จะทำลายระบบดังกล่าว แต่เป็นไปไม่ได้ที่จะทำเช่นนั้นด้วยวิธีการทางปฏิบัติที่เป็นที่รู้จัก แผนเหล่านี้จึงเรียกว่ามีความปลอดภัยทางคอมพิวเตอร์ มีรูปแบบการรักษาความปลอดภัยตามหลักทฤษฎีของข้อมูลซึ่งพิสูจน์ได้แล้วว่าไม่สามารถทำลายได้แม้จะมีพลังการประมวลผลแบบไม่จำกัด เช่น แพดแบบใช้ครั้งเดียว แต่รูปแบบเหล่านี้ยากต่อการใช้งานในทางปฏิบัติมากกว่ากลไกที่ดีที่สุดในทางทฤษฎีที่แตกหักได้ แต่มีความปลอดภัยในการคำนวณ

การเข้ารหัสลับแบบดั้งเดิมนั้นยึดตามรหัสการย้ายถิ่น ซึ่งจัดเรียงลำดับของตัวอักษรในข้อความ (เช่น 'hello world' กลายเป็น 'ehlol owrdl' ในรูปแบบการจัดเรียงใหม่ที่เรียบง่ายเล็กน้อย) และการเข้ารหัสการแทนที่ ซึ่งแทนที่ตัวอักษรหรือกลุ่มของ ตัวอักษรที่มีตัวอักษรอื่นหรือกลุ่มของตัวอักษร (เช่น 'บินในครั้งเดียว' กลายเป็น 'gmz bu podf' โดยแทนที่ตัวอักษรแต่ละตัวด้วยตัวอักษรละตินตามหลัง) เวอร์ชันง่าย ๆ ของทั้งสองไม่เคยเปิดเผยความลับมากนักจากคู่ต่อสู้ที่กล้าได้กล้าเสีย รหัสการแทนที่ช่วงแรกคือรหัสซีซาร์ ซึ่งแต่ละตัวอักษรในข้อความธรรมดาจะถูกแทนที่ด้วยตัวอักษรจำนวนหนึ่งที่แน่นอนของตำแหน่งที่อยู่ด้านล่างตัวอักษร ROT13 คือ a เป็นรหัสแทนที่ตัวอักษรธรรมดาที่แทนที่ตัวอักษรด้วยตัวอักษรตัวที่ 13 ต่อท้ายในตัวอักษร เป็นกรณีพิเศษของรหัสซีซาร์ ลองที่นี่!

ขั้นตอนที่ 2: รหัส QR

QR Codes
QR Codes

QR Codes (วิกิพีเดีย) หรือ "Quick Response Codes" เป็นประเภทเมทริกซ์หรือบาร์โค้ดสองมิติที่ออกแบบมาครั้งแรกในปี 1994 สำหรับอุตสาหกรรมยานยนต์ในญี่ปุ่น บาร์โค้ดคือฉลากแบบออปติคัลที่เครื่องอ่านได้ ซึ่งมีข้อมูลเกี่ยวกับสินค้าที่ติดมา ในทางปฏิบัติ รหัส QR มักจะมีข้อมูลสำหรับตัวระบุตำแหน่ง ตัวระบุ หรือตัวติดตามที่ชี้ไปยังเว็บไซต์หรือแอปพลิเคชัน โค้ด QR ใช้โหมดการเข้ารหัสมาตรฐานสี่โหมด (ตัวเลข ตัวเลขและตัวอักษร ไบต์/ไบนารี และคันจิ) เพื่อจัดเก็บข้อมูลอย่างมีประสิทธิภาพ

ระบบการตอบสนองอย่างรวดเร็วได้รับความนิยมนอกอุตสาหกรรมยานยนต์ เนื่องจากสามารถอ่านได้เร็วและความจุในการจัดเก็บที่มากกว่าเมื่อเทียบกับบาร์โค้ด UPC มาตรฐาน แอปพลิเคชันรวมถึงการติดตามผลิตภัณฑ์ การระบุรายการ การติดตามเวลา การจัดการเอกสาร และการตลาดทั่วไป โค้ด QR ประกอบด้วยสี่เหลี่ยมสีดำที่จัดเรียงเป็นตารางสี่เหลี่ยมจัตุรัสบนพื้นหลังสีขาว ซึ่งสามารถอ่านได้โดยอุปกรณ์สร้างภาพ เช่น กล้อง และประมวลผลโดยใช้การแก้ไขข้อผิดพลาดของ Reed–Solomon จนกว่าจะตีความภาพได้อย่างเหมาะสม จากนั้นข้อมูลที่จำเป็นจะถูกดึงออกมาจากรูปแบบที่มีอยู่ในองค์ประกอบทั้งแนวนอนและแนวตั้งของภาพ

สมาร์ทโฟนสมัยใหม่มักจะอ่านรหัส QR (และบาร์โค้ดอื่นๆ) โดยอัตโนมัติ เพียงเปิดแอปกล้องถ่ายรูป กำหนดทิศทางกล้องให้ไปที่บาร์โค้ด แล้วรอสักครู่เพื่อให้แอปกล้องถ่ายรูประบุว่าได้ล็อกไว้บนบาร์โค้ดแล้ว บางครั้งแอพจะแสดงเนื้อหา barcone ทันที แต่โดยปกติแอพจะต้องเลือกการแจ้งเตือนบาร์โค้ดเพื่อแสดงข้อมูลใด ๆ ที่ดึงมาจากบาร์โค้ด ในช่วงเดือนมิถุนายน 2011 ผู้ใช้มือถือชาวอเมริกัน 14 ล้านคนสแกนรหัส QR หรือบาร์โค้ด

คุณใช้สมาร์ทโฟนเพื่ออ่านข้อความที่เข้ารหัสด้านนอกของ HackerBox 0058 หรือไม่?

วิดีโอที่น่าสนใจ: คุณใส่ทั้งเกมลงในโค้ด QR ได้ไหม

คนรุ่นเก่าอาจจำ Cauzin Softstrip จากนิตยสารคอมพิวเตอร์ยุค 80 ได้ (วิดีโอสาธิต)

ขั้นตอนที่ 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro ใช้ไมโครคอนโทรลเลอร์ ATmega32U4 ซึ่งมีอินเทอร์เฟซ USB ในตัว ซึ่งหมายความว่าไม่มี FTDI, PL2303, CH340 หรือชิปอื่นๆ ที่ทำหน้าที่เป็นสื่อกลางระหว่างคอมพิวเตอร์ของคุณและไมโครคอนโทรลเลอร์ Arduino

เราขอแนะนำให้ทดสอบ Pro Micro ก่อนโดยไม่ต้องบัดกรีหมุดให้เข้าที่ คุณสามารถดำเนินการกำหนดค่าพื้นฐานและทดสอบได้โดยไม่ต้องใช้หมุดส่วนหัว นอกจากนี้ การล่าช้าในการบัดกรีไปยังโมดูลยังช่วยลดตัวแปรหนึ่งตัวในการดีบักหากคุณพบปัญหาใดๆ

หากคุณไม่ได้ติดตั้ง Arduino IDE บนคอมพิวเตอร์ของคุณ ให้เริ่มต้นด้วยการดาวน์โหลดแบบฟอร์ม IDE arduino.cc คำเตือน: อย่าลืมเลือกเวอร์ชัน 3.3V ใต้เครื่องมือ > โปรเซสเซอร์ ก่อนที่จะตั้งโปรแกรม Pro Micro การมีชุดนี้สำหรับ 5V จะทำงานเพียงครั้งเดียว จากนั้นอุปกรณ์จะไม่เชื่อมต่อกับพีซีของคุณจนกว่าคุณจะทำตามคำแนะนำ "รีเซ็ตเป็น Bootloader" ในคู่มือที่กล่าวถึงด้านล่าง ซึ่งอาจยุ่งยากเล็กน้อย

Sparkfun มีคู่มือ Pro Micro Hookup ที่ยอดเยี่ยม Hookup Guide มีภาพรวมโดยละเอียดของบอร์ด Pro Micro และส่วนสำหรับ "การติดตั้ง: Windows" และส่วนสำหรับ "การติดตั้ง: Mac & Linux" ทำตามคำแนะนำในเวอร์ชันที่เหมาะสมของคำแนะนำในการติดตั้งเหล่านั้น เพื่อให้ Arduino IDE ของคุณได้รับการกำหนดค่าเพื่อรองรับ Pro Micro เรามักจะเริ่มทำงานกับบอร์ด Arduino โดยการโหลดและ/หรือแก้ไขร่าง Blink มาตรฐาน อย่างไรก็ตาม Pro Micro ไม่รวม LED ปกติที่ขา 13 โชคดีที่เราควบคุมไฟ LED RX/TX ได้ Sparkfun ได้จัดเตรียมภาพร่างเล็ก ๆ ไว้เพื่อสาธิตวิธีการ อยู่ในหัวข้อ Hookup Guide เรื่อง "Example 1: Blinkies!" ตรวจสอบว่าคุณสามารถคอมไพล์และตั้งโปรแกรม Blinkies นี้ได้! ตัวอย่างลงบน Pro Micro ก่อนดำเนินการต่อไป

เมื่อทุกอย่างดูเหมือนจะทำงานเพื่อตั้งโปรแกรม Pro Micro ก็ถึงเวลาที่ต้องประสานหมุดส่วนหัวเข้ากับโมดูลอย่างระมัดระวัง หลังจากบัดกรีแล้ว ให้ทดสอบบอร์ดอีกครั้งอย่างระมัดระวัง

FYI: ด้วยตัวรับส่งสัญญาณ USB ในตัว ทำให้ Pro Micro สามารถใช้จำลองอุปกรณ์อินเทอร์เฟซสำหรับมนุษย์ (HID) เช่น แป้นพิมพ์หรือเมาส์ได้อย่างง่ายดาย และเล่นกับการฉีดการกดแป้นพิมพ์

ขั้นตอนที่ 4: รหัส QR บนจอแสดงผล LCD แบบเต็มสี

รหัส QR บนจอแสดงผล LCD แบบเต็มสี
รหัส QR บนจอแสดงผล LCD แบบเต็มสี

จอแสดงผล LCD มีพิกเซลสีเต็มรูปแบบ 128 x 160 และวัดได้ 1.8 นิ้วในแนวทแยง ชิปไดรเวอร์ ST7735S (เอกสารข้อมูล) สามารถเชื่อมต่อจากไมโครคอนโทรลเลอร์เกือบทุกชนิดโดยใช้บัส Serial Peripheral Interface (SPI) มีการระบุอินเทอร์เฟซสำหรับการส่งสัญญาณและแหล่งจ่ายไฟ 3.3V

โมดูล LCD สามารถต่อสายโดยตรงกับ 3.3V Pro Micro โดยใช้สายจัมเปอร์ 7 FF:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL----15 SDA -----16 RES -----9 DC -----8 CS -----10 BL ----- ไม่มีการเชื่อมต่อ

การกำหนดพินเฉพาะนี้ช่วยให้ตัวอย่างไลบรารีทำงานได้ตามค่าเริ่มต้น

ไลบรารีชื่อ "Adafruit ST7735 และ ST7789" สามารถพบได้ใน Arduino IDE โดยใช้เมนู Tools > Manage Libraries ขณะติดตั้ง ตัวจัดการไลบรารีจะแนะนำไลบรารีที่ขึ้นต่อกันบางไลบรารีที่เข้ากับไลบรารีนั้น อนุญาตให้ติดตั้งเหล่านั้นด้วย

เมื่อติดตั้งไลบรารี่นั้นแล้ว ให้เปิดไฟล์ > ตัวอย่าง > Adafruit ST7735 และ ST7789 Library > graphicstest

รวบรวมและอัปโหลดกราฟิกทดสอบ มันจะสร้างการสาธิตกราฟิกบนจอ LCD แต่มีบางแถวและคอลัมน์ของ "พิกเซลที่มีเสียงดัง" ที่ขอบของจอแสดงผล

"พิกเซลที่มีเสียงดัง" เหล่านี้สามารถแก้ไขได้โดยการเปลี่ยนฟังก์ชัน TFT init ที่ใช้ใกล้กับด้านบนสุดของฟังก์ชันการตั้งค่า (เป็นโมฆะ)

แสดงความคิดเห็นในบรรทัดของรหัส:

tft.initR(INITR_BLACKTAB);

และ uncomment บรรทัดสองสามบรรทัดลง:

tft.initR(INITR_GREENTAB);

ตั้งโปรแกรมการสาธิตใหม่และทุกอย่างจะดูดี

ตอนนี้เราสามารถใช้ LCD เพื่อแสดง QR Codes

กลับไปที่เมนู Arduino IDE เครื่องมือ > จัดการไลบรารี

ค้นหาและติดตั้งไลบรารี QRCode

ดาวน์โหลดแบบร่าง QR_TFT.ino ที่แนบมาที่นี่

รวบรวมและตั้งโปรแกรม QR_TFT ลงใน ProMicro และดูว่าคุณสามารถใช้แอปกล้องถ่ายรูปของโทรศัพท์เพื่ออ่านรหัส QR ที่สร้างขึ้นบนจอ LCD ได้หรือไม่

บางโครงการใช้การสร้าง QR Code เพื่อเป็นแรงบันดาลใจ

การควบคุมการเข้าถึง

QR Clock

ขั้นตอนที่ 5: สายแบนแบบยืดหยุ่น

สายแบนแบบยืดหยุ่น
สายแบนแบบยืดหยุ่น

สายเคเบิลแบบแบนแบบยืดหยุ่น (FFC) คือสายไฟฟ้าแบบต่างๆ ที่ทั้งแบบแบนและแบบยืดหยุ่น พร้อมด้วยตัวนำแบบแบนแข็ง FFC คือสายเคเบิลที่ประกอบขึ้นจากหรือคล้ายกับวงจรพิมพ์แบบยืดหยุ่น (FPC) คำว่า FPC และ FFC บางครั้งใช้แทนกันได้ คำเหล่านี้โดยทั่วไปหมายถึงสายเคเบิลแบบแบนที่บางมากซึ่งมักพบในการใช้งานอิเล็กทรอนิกส์ที่มีความหนาแน่นสูง เช่น แล็ปท็อปและโทรศัพท์มือถือ เป็นสายแพแบบย่อขนาดที่มักจะประกอบด้วยฐานฟิล์มพลาสติกแบบแบนและยืดหยุ่น โดยมีตัวนำโลหะแบนหลายตัวยึดติดกับพื้นผิวเดียว

FFC มีพิทช์พินที่หลากหลาย โดย 1.0 มม. และ 0.5 มม. เป็นสองตัวเลือกทั่วไป บอร์ดฝ่าวงล้อม FPC ที่รวมอยู่นั้นมีร่องรอยสำหรับทั้งสองระดับเสียง แต่ละด้านของ PCB ใช้ PCB เพียงด้านเดียวเท่านั้นขึ้นอยู่กับระยะพิทช์ที่ต้องการ ในกรณีนี้คือ 0.5 มม. ตรวจสอบให้แน่ใจว่าใช้หมายเลขพินส่วนหัวที่พิมพ์บนด้านเดียวกัน 0.5 มม. ของ PCB หมายเลขพินที่ด้าน 1.0 มม. ไม่ตรงกัน และใช้สำหรับการใช้งานอื่น

ตัวเชื่อมต่อ FFC ที่จุดฝ่าวงล้อมและเครื่องสแกนบาร์โค้ดเป็นตัวเชื่อมต่อ ZIF (แรงแทรกเป็นศูนย์) ซึ่งหมายความว่าตัวเชื่อมต่อ ZIF มีตัวเลื่อนแบบกลไกที่เปิดอยู่ก่อนที่จะเสียบ FFC แล้วปิดบานพับเพื่อขันขั้วต่อเข้ากับ FFC ให้แน่นโดยไม่ต้องวางและเสียบแรงบนสายเคเบิล สิ่งสำคัญสองประการที่ควรทราบเกี่ยวกับตัวเชื่อมต่อ ZIF เหล่านี้:

1. ทั้งสองเป็น "หน้าสัมผัสด้านล่าง" ซึ่งหมายความว่าหน้าสัมผัสโลหะบน FFC ต้องคว่ำหน้าลง (ไปทาง PCB) เมื่อเสียบเข้าไป

2. ตัวเลื่อนแบบบานพับบนฝ่าวงล้อมอยู่ที่ด้านหน้าของขั้วต่อ ซึ่งหมายความว่า FFC จะเข้าไปใต้/ผ่านตัวเลื่อนแบบบานพับในทางตรงกันข้าม ตัวเลื่อนแบบบานพับบนเครื่องสแกนบาร์โค้ดจะอยู่ที่ด้านหลังของขั้วต่อ ซึ่งหมายความว่า FFC จะเข้าสู่ขั้วต่อ ZIF จากฝั่งตรงข้ามและไม่ผ่านตัวเลื่อนแบบบานพับ

โปรดทราบว่าตัวเชื่อมต่อ FFC/FPC ZIF ประเภทอื่นๆ มีตัวเลื่อนด้านข้าง ซึ่งต่างจากตัวเลื่อนแบบบานพับที่เรามีที่นี่ แทนที่จะบานพับขึ้นและลง ตัวเลื่อนด้านข้างจะเลื่อนเข้าและออกภายในระนาบของขั้วต่อ ดูให้ดีก่อนใช้ตัวเชื่อมต่อ ZIF ชนิดใหม่ทุกครั้ง พวกมันค่อนข้างเล็กและสามารถเสียหายได้ง่ายหากถูกบังคับนอกระยะหรือระนาบการเคลื่อนที่ที่ต้องการ

ขั้นตอนที่ 6: เครื่องสแกนบาร์โค้ด

เครื่องสแกนบาร์โค้ด
เครื่องสแกนบาร์โค้ด

เมื่อเครื่องสแกนบาร์โค้ดและเครื่องฝ่าวงล้อม FPC เชื่อมต่อกันด้วยสาย Flat Flat (FFC) แล้ว สายจัมเปอร์ตัวเมียห้าเส้นสามารถใช้เชื่อมต่อ PCB ฝ่าวงล้อมกับ Arduino Pro Micro:

FPC ---- โปรไมโคร

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

เมื่อเชื่อมต่อแล้ว ให้โปรแกรม Sketch barcandemo.ino ลงใน Pro Micro เปิด Serial Monitor และสแกนทุกสิ่ง! น่าแปลกใจที่มีสิ่งของมากมายรอบๆ บ้านและสำนักงานของเราที่มีบาร์โค้ดติดอยู่ คุณอาจรู้จักใครบางคนที่มีรอยสักบาร์โค้ด

คู่มือเครื่องสแกนบาร์โค้ดที่แนบมามีรหัสที่สามารถสแกนเพื่อกำหนดค่าโปรเซสเซอร์ที่ฝังอยู่ภายในเครื่องสแกน

ขั้นตอนที่ 7: แฮ็กดาวเคราะห์

Hack the Planet
Hack the Planet

เราหวังว่าคุณจะสนุกกับการผจญภัยของ HackerBox ในเดือนนี้ในด้านอิเล็กทรอนิกส์และเทคโนโลยีคอมพิวเตอร์ เข้าถึงและแบ่งปันความสำเร็จของคุณในความคิดเห็นด้านล่างหรือโซเชียลมีเดียอื่น ๆ นอกจากนี้ โปรดจำไว้ว่า คุณสามารถส่งอีเมลถึง [email protected] ได้ทุกเมื่อ หากคุณมีคำถามหรือต้องการความช่วยเหลือ

อะไรต่อไป? เข้าร่วมการปฏิวัติ ใช้ชีวิต HackLife รับกล่องอุปกรณ์แฮ็คสุดเจ๋งที่ส่งตรงถึงกล่องจดหมายของคุณทุกเดือน ท่องไปที่ HackerBoxes.com และสมัครสมาชิก HackerBox รายเดือนของคุณ

แนะนำ: