สารบัญ:

HackerBox 0050: 8 ขั้นตอน
HackerBox 0050: 8 ขั้นตอน

วีดีโอ: HackerBox 0050: 8 ขั้นตอน

วีดีโอ: HackerBox 0050: 8 ขั้นตอน
วีดีโอ: Projects - July 2016 2024, กรกฎาคม
Anonim
HackerBox 0050
HackerBox 0050

สวัสดี HackerBox แฮกเกอร์ทั่วโลก! สำหรับ HackerBox 0050 เรากำลังประกอบและตั้งโปรแกรมบอร์ดโปรเซสเซอร์ HB50 แบบฝัง HB50 รองรับการทดลองกับไมโครคอนโทรลเลอร์ ESP32, IoT WiFi แบบฝัง, เสียงบิตแบง, ไฟ LED RGB, จอ TFT LCD แบบสี, อินพุตหน้าจอสัมผัส, บลูทูธ และอื่นๆ HackerBox 0050 ยังสำรวจโซลูชันแป้นพิมพ์ขนาดเล็กสำหรับโปรเจ็กต์ฝังตัว อินเทอร์เฟซ I2C การจัดทำงบประมาณด้านพลังงาน และออโตมาตาเซลลูลาร์

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

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

ขั้นตอนที่ 1: รายการเนื้อหาสำหรับ HackerBox 0050

  • พิเศษ HB50 แผงวงจรพิมพ์
  • ESP-WROOM-32 โมดูล WiFi Dual Core
  • QVGA สี TFT LCD 2.4 นิ้ว Display
  • หน้าจอสัมผัสแบบบูรณาการพร้อม Stylus
  • ไฟ LED RGB WS2812B หกดวง
  • ปุ่ม Tacile Mount Mount หกปุ่ม
  • Piezo Buzzer 12 มม. SMD
  • AMS1117 3.3V ลิเนียร์เรกูเลเตอร์ SOT223
  • ส่วนหัว Breakaway 40pin มุมขวา
  • ตัวเก็บประจุแทนทาลัม 22uF สองตัว 1206 SMD
  • ตัวต้านทาน 10K Ohm สองตัว 0805 SMD
  • คีย์บอร์ดขนาดเล็กของ CardKB
  • Grove to Female DuPont Breakout Cable
  • CP2102 USB Serial Module
  • จัมเปอร์ดูปองท์ หญิง-หญิง 10cm
  • Hokusai Great Wave PCB Decal
  • พิเศษ HackerBox WireHead Decal
  • Exclusive HackerBox 50 Challenge Coin

สิ่งอื่น ๆ ที่จะเป็นประโยชน์:

  • หัวแร้ง หัวแร้ง และเครื่องมือบัดกรีพื้นฐาน
  • คอมพิวเตอร์สำหรับใช้งานเครื่องมือซอฟต์แวร์

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

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

ขั้นตอนที่ 2: แผงวงจรพิมพ์ HB50

HB50 แผงวงจรพิมพ์
HB50 แผงวงจรพิมพ์

เพื่อเป็นการระลึกถึงหมายเลข HackerBox 0050 เราจึงได้สร้างแผงวงจร HackerBox ที่ได้รับความนิยมสูงสุดในเวอร์ชันที่อัปเดตแล้วตามความต้องการที่ได้รับความนิยม ชุดตรา HackerBox 0020 Summer Camp ขายหมดที่ DEF CON 25 ในเวลาไม่ถึงสองชั่วโมง ไฟล์ PCB นั้นได้รับการร้องขอบ่อยครั้ง บอร์ดนี้ถูกพิมพ์ซ้ำโดยบุคคลที่สามอย่างน้อยสองครั้ง การออกแบบได้สร้างแรงบันดาลใจให้กับตราสัญลักษณ์อื่นๆ จำนวนหนึ่งและโครงการ IoT ที่ฝังอยู่ที่เราทราบและหวังว่าจะมีอีกหลายอย่างที่เราไม่ทราบ

การอัปเดตที่พบใน HB50 PCB Kit ใหม่รวมถึงการสลับ ESP-32 DEVkitC เป็นโมดูล ESP-WROOM-32 ที่กะทัดรัดยิ่งขึ้น ปุ่มสัมผัสแบบ capacitive ห้าปุ่มถูกแทนที่ด้วยปุ่มสัมผัสแบบกลไก ไฟ LED RGB WS2812 ห้าดวงที่อยู่ในแพ็คเกจสีขาวได้เพิ่มขึ้นเป็นหกดวงและตอนนี้อยู่ในแพ็คเกจสีดำ piezo buzzer ถูกแทนที่ด้วยรุ่นติดตั้งบนพื้นผิวที่มีขนาดกะทัดรัดมากขึ้น แหล่งจ่ายไฟได้รับความเรียบง่าย หน้าจอสีแบบ TFT เพิ่มขึ้นจาก 2.2 นิ้ว เป็น 2.4 นิ้ว PCB นั้นกะทัดรัดกว่าและมีพิน IO สองสามตัวที่แตกออกเพื่อความสุขในการแฮ็คของคุณ ตั้งแต่เวลาของ HackerBox 20 มีโปรเจ็กต์ ตัวอย่าง และโค้ดอีกมากมายสำหรับ ESP32 ดังนั้น มาเตรียมตัวให้พร้อม…

คุณสมบัติ:

  • โปรเซสเซอร์ ESP32 Dual Core 160MHz
  • 2.4 นิ้ว QVGA สี TFT LCD Display
  • WiFi 802.11 b/g/n/d/e/i/k/r
  • บลูทูธ LE 5.0
  • ปุ่มกดสัมผัสห้าปุ่ม (+ หนึ่งปุ่มสำหรับรีเซ็ต)
  • ไฟ LED RGB WS2812 จำนวน 6 ดวง
  • Piezo Buzzer
  • ตัวควบคุมเชิงเส้น 3.3V
  • ส่วนหัวส่วนขยาย

เช่นเดียวกับรุ่นก่อน HB50 สามารถสวมใส่กับเชือกคล้อง ใช้เป็นมือถือ ติดตั้งบนผนัง หรือติดตั้งได้ทุกที่ในแอพพลิเคชั่นไร้สายและมีสีสันนับไม่ถ้วน

ขั้นตอนที่ 3: นำบอร์ด HB50 ขึ้นมา

นำบอร์ด HB50 ขึ้นมา
นำบอร์ด HB50 ขึ้นมา

เพื่อลดหรืออย่างน้อยแยกข้อผิดพลาด เราขอแนะนำให้เริ่มการประกอบโดยใส่เฉพาะส่วนประกอบขั้นต่ำสุดที่เปลือยเปล่าไปยัง HB50 PCB ที่จำเป็นสำหรับการเขียนโปรแกรม ESP32 แนวทางปฏิบัติขั้นต่ำนี้ได้อธิบายไว้ในขั้นตอนเหล่านี้:

  1. ดูวิดีโอนี้เกี่ยวกับการบัดกรีโมดูลหล่อหลอม
  2. ประสานโมดูล ESP-WROOM-32 เข้ากับ PCB ใช้เวลาของคุณ ไม่ต้องกังวลกับแผ่นกราวด์กลางใต้โมดูล สามารถบัดกรีโดยการรีโฟลว์เท่านั้นและมีไว้เพื่อการคัปปลิ้งด้วยความร้อนเพิ่มเติมเท่านั้น
  3. ใช้มัลติมิเตอร์เพื่อให้แน่ใจว่าไม่มีช่วงสั้นระหว่าง 3V3 และ GND หากมีช็อตสั้นจะต้องระบุและลบออกก่อนที่จะใช้พลังงานกับกระดาน มิฉะนั้น มอนสเตอร์ควันอาจออกมา
  4. ประสานตัวต้านทาน 10K สองตัวที่อยู่เหนือปุ่ม EN และ IO0
  5. ประสานปุ่ม EN และ IO0 ตอนนี้เหลือปุ่มอีกสี่ปุ่มที่เหลือไว้
  6. แยกแถบส่วนหัว 16 พินออก ใส่จากด้าน CPU ของ PCB โดยให้หมุดชี้ไปที่ขอบที่ใกล้ที่สุดของ PCB จากนั้นประสานส่วนหัวเข้าที่จากด้านปุ่มของ PCB
  7. ตรวจสอบอีกครั้งว่าไม่มี shorts ระหว่าง 3V3 และ GND
  8. ใช้สายจัมเปอร์ดูปองท์สี่เส้นเพื่อเชื่อมต่อโมดูล CP2102 ดังที่แสดง โปรดทราบว่าเรากำลังใช้แหล่งพลังงาน 3V3 ชั่วคราวเนื่องจากตัวควบคุมเชิงเส้นยังไม่ได้ติดตั้งบน PCB
  9. หากคอมพิวเตอร์ของคุณยังไม่ได้ติดตั้ง Arduino IDE ให้ดาวน์โหลดที่นี่
  10. กำหนดค่าการสนับสนุน ESP32 ภายใน Arduino IDE โดยใช้คู่มือนี้
  11. ใน IDE ให้ตั้งค่า tools > board เป็น "ESP32 Wrover Module"
  12. เสียบโมดูล CP2102 เข้ากับพอร์ต USB บนคอมพิวเตอร์
  13. ใน IDE ให้ตั้งค่า tools > port เป็นพอร์ต USB ที่ถูกต้องสำหรับ CP2102
  14. หากพอร์ตใหม่ไม่ปรากฏขึ้นเมื่อเสียบโมดูล CP2102 ให้ติดตั้งไดรเวอร์ USB ที่จำเป็นจาก Silicon Labs
  15. หยิบภาพร่าง button_demo
  16. รวบรวมและอัปโหลดภาพร่าง
  17. เมื่อเริ่มต้นการอัปโหลด ให้กดปุ่ม EN และ IO0 ค้างไว้ โดยทั่วไปแล้ว EN จะเป็นปุ่มรีเซ็ตและ IO0 เป็นหมุดรัดเพื่อบังคับให้ตั้งโปรแกรมแฟลชใหม่
  18. เมื่อจุดและเส้นประปรากฏขึ้นใน IDE ให้ปล่อยปุ่ม EN (รีลีสรีเซ็ต) แต่ให้กดปุ่ม IO0 ค้างไว้จนกว่าโปรแกรมแฟลชจะเริ่มตรวจสอบให้แน่ใจว่าหมุดรัดในนั้นรู้จักเมื่อบู๊ต
  19. เมื่อการเขียนโปรแกรมเสร็จสิ้น ให้กดปุ่ม EN อีกครั้งเพื่อรีเซ็ตและเริ่มต้นโค้ดที่แฟลชใหม่
  20. เปิด Arduino IDE Serial Monitor และตั้งค่าเป็น 115200 baud
  21. การกดปุ่ม IO0 ควรสร้างข้อความในมอนิเตอร์แบบอนุกรม

ขั้นตอนที่ 4: ปุ่ม Buzzers และ LED OH MY

ปุ่ม Buzzers และไฟ LED OH MY!
ปุ่ม Buzzers และไฟ LED OH MY!

ปุ่มเพิ่มเติม

เมื่อขั้นตอนการเขียนโปรแกรมเริ่มต้นสำเร็จแล้ว ให้ปิดบอร์ด HB50 และประสานบนปุ่มที่เหลืออีกสี่ปุ่ม ร่าง button_demo เดียวกันควรรายงานปุ่มทั้งห้า (IO0, A, B, C และ D) ไปยังจอภาพอนุกรมเมื่อกด

BUZZER

ปิดบอร์ด HB50 และประสานเสียงกริ่งเข้ากับแผ่นรอง ปรับจุดบนออดให้ใกล้กับแป้น "+" บนบอร์ด HB50 มากที่สุด ตั้งโปรแกรม buzzer_demo สเก็ตช์และรีเซ็ต (EN) บอร์ดเพื่อให้ทำงาน ฟังดูเข้าท่า?

WS2812B ไฟ LED RGB

ปิดบอร์ด HB50 และประสานไฟ LED หกดวงเข้ากับแผ่นรอง จัดตำแหน่งมุมที่ทำเครื่องหมายสีขาวของ LED แต่ละดวงให้สอดคล้องกับมุมแท็บดังที่แสดงบนซิลค์สกรีน PCB

จากเครื่องมือ Arduino IDE > จัดการไลบรารี ให้ติดตั้งไลบรารี FastLED

เปิดภาพร่าง: ไฟล์ > ตัวอย่าง > FastLED > ColorPalette

ในโค้ดแบบร่าง ให้เปลี่ยน LED_PIN เป็น 13, NUM_LEDS เป็น 6 และ LED_TYPE เป็น WS2812B

อัปโหลดภาพสเก็ตช์และรีเซ็ต (EN) บอร์ดเพื่อให้ทำงาน เพลิดเพลินไปกับไฟกะพริบทุกสี

ตัวควบคุมพลังงานเชิงเส้น

ด้วยไฟ LED ที่กำลังเล่น (และโดยเฉพาะอย่างยิ่งเมื่อเปิดใช้งานตัวส่งสัญญาณ WiFi) HB50 กำลังดึงกระแสไฟจำนวนมากจากแหล่งจ่าย 3V3 มาปรับปรุงความจุกำลังไฟฟ้า 3.3V กันดีกว่าโดยการบัดกรีตัวควบคุมเชิงเส้น AMS1117 (แพ็คเกจ SOT 233) เข้าที่ ใส่ตัวเก็บประจุตัวกรอง 22uF สองตัวที่อยู่ถัดจากตัวควบคุมด้วย โปรดทราบว่าด้านหนึ่งของซิลค์สกรีนตัวเก็บประจุแต่ละด้านเป็นรูปสี่เหลี่ยมผืนผ้า และอีกด้านหนึ่งถ้าเป็นแปดเหลี่ยม ตัวเก็บประจุควรวางแนวเพื่อให้แถบสีเข้มบนบรรจุภัณฑ์อยู่ในแนวเดียวกับด้านซิลค์สกรีนแปดเหลี่ยม ตัวควบคุมจะเปลี่ยนแหล่งจ่ายไฟ 5V บางส่วนเป็น 3.3V และสามารถจ่ายกระแสไฟได้มากกว่าโมดูล CP2102 ด้วยตัวเอง หากต้องการจ่ายไฟให้กับ HB50 ผ่านแหล่งจ่ายไฟ 5V ให้ย้ายปลายทั้งสองของจัมเปอร์ดูปองท์ 3V3 ไปที่ 5V นั่นคือแหล่งจ่าย 5V จากโมดูล CP2102 ลงในพินอินพุต 5V ตัวใดตัวหนึ่งบนส่วนหัว HB50 โปรดทราบว่าพิน 5V สามารถจ่ายแรงดันไฟฟ้าได้ระหว่าง 3.5V ถึง 5V

ขั้นตอนที่ 5: ILI9341 QVGA สี TFT LCD Display

ILI9341 QVGA จอแสดงผลสี TFT LCD
ILI9341 QVGA จอแสดงผลสี TFT LCD

จอแสดงผล MSP2402 (หน้า lcdwiki) เป็นโมดูลบัส SPI ที่ใช้ชิป ILI9341 ชิปขับเคลื่อนหน้าจอสี 2.4 นิ้วรองรับ 65,000 สีและความละเอียด 320X240 พิกเซล (QVGA)

โมดูลนี้ยังมีอินพุตหน้าจอสัมผัสและช่องเสียบการ์ด SD

PRE-TEST จอแสดงผล I/O PINS

หากคุณประสบปัญหากับการบัดกรีขา ESP-WROOM-32 จนถึงจุดนี้ อาจเป็นความคิดที่ดีที่จะทดสอบพิน I/O ของโมดูลการแสดงผลล่วงหน้าก่อนที่จะบัดกรีโมดูลการแสดงผลเข้าที่ ดังที่แสดงด้านล่างและบนแผนผังของ PCB, ESP32 IO ที่เล่นอยู่คือ 19, 23, 18, 5, 22, 21 และ 15 โปรดทราบว่านี่คือหมายเลข IO ไม่ใช่หมายเลขพิน หมุดสามารถทดสอบได้โดยการเขียนโปรแกรมขนาดเล็กที่ตั้งค่า IO ทั้งหมดเป็นเอาต์พุต จากนั้นวนซ้ำผ่าน IO เพื่อเปิดและปิดแต่ละรายการโดยมีการหน่วงเวลาระหว่างสองหรือสองวินาที LED ธรรมดาที่มีตัวต้านทานจำกัดกระแสติดอยู่สามารถใช้เป็นโพรบได้ เพื่อให้แน่ใจว่าพิน IO แต่ละอันที่แมปกับส่วนหัวของจอแสดงผล (ดูแผนผัง) เปิดและปิดอย่างถูกต้อง และไม่มีการต่อกัน

เมื่อตรวจสอบพินทั้งหมดแล้ว จอแสดงผล TFT สามารถบัดกรีให้เข้าที่โดยใช้ส่วนหัวแบบยาวและแบบสั้น

ติดตั้งและกำหนดค่าไลบรารี TFT

จาก Arduino IDE: tools > Manage Libraries ติดตั้ง TFT_eSPI Library

ไปที่โฟลเดอร์ Arduino Libraries เปิดโฟลเดอร์ TFT_eSPI และแก้ไขไฟล์ User_Setup.h เพื่อกำหนดค่าชิปไดรเวอร์โมดูล ความละเอียดพิกเซล และพิน IO ทำได้โดยตรวจสอบให้แน่ใจว่าคำจำกัดความนั้น (ไม่) แสดงความคิดเห็นตามที่แสดงด้านล่างและตั้งค่าเป็นค่าตามที่แสดง คุณสามารถตรวจสอบว่าสิ่งเหล่านี้สอดคล้องกับการเชื่อมต่อในแผนผัง PCB

// ส่วนที่ 1.

#define ILI9341_DRIVER #define TFT_WIDTH 240 #define TFT_HEIGHT 320 // Section 2 // สำหรับบอร์ด ESP32 Dev #define TFT_MISO 19 #define TFT_MOSI 23 #define TFT_SCLK 18 #define TFT_CS 5 #define TFT_DC 22 #define TFT_RST 21 //#define TFT_RST -1 //#define TFT_BL 32 #define TOUCH_CS 15

เปิดและอัปโหลดภาพร่าง:

ไฟล์ > ตัวอย่าง > TFT_eSPI > 320 x 240 > Cellular_Automata

ภาพร่างนี้เป็นภาพสาธิตเกมแห่งชีวิตของคอนเวย์

เครื่องร่อนของแฮ็กเกอร์อาจมีวิวัฒนาการมา… จับตาดูให้ดี!

แสดงโลโก้ HACKERBOX บน TFT LCD

ลองใช้ภาพร่าง BitHeadDemo

ขั้นตอนที่ 6: การป้อนข้อมูลผู้ใช้หน้าจอสัมผัส

อินพุตผู้ใช้หน้าจอสัมผัส
อินพุตผู้ใช้หน้าจอสัมผัส

สามารถใช้ภาพร่างต่อไปนี้เพื่อกำหนดค่าและทดสอบการทำงานของหน้าจอสัมผัส:

ไฟล์ > ตัวอย่าง > TFT_eSPI > 320 x 240 > Keypad_240x320

ปุ่ม "ส่ง" จะส่งหมายเลขที่ป้อนไปยังจอภาพแบบอนุกรมที่ 9600 บอด

ขั้นตอนที่ 7: คีย์บอร์ด CardKB I2C

คีย์บอร์ด CardKB I2C
คีย์บอร์ด CardKB I2C

บอร์ดขนาดเล็กนี้ใช้คีย์บอร์ด QWERTY ที่มีคุณสมบัติครบถ้วน ซึ่งสามารถใช้กับโปรเจ็กต์ไมโครคอนโทรลเลอร์ของคุณแทบทุกอย่าง แป้นพิมพ์สื่อสารโดยใช้พอร์ต GROVE A (อินเทอร์เฟซ I2C) บนที่อยู่ 0x5F รองรับการรวมปุ่ม (Sym+Key, Shift+Key, Fn+Key) เพื่อส่งออกค่าคีย์ที่หลากหลาย

เริ่มต้นด้วยตัวอย่างง่ายๆ ของ CardKB_Serial ซึ่งสื่อสารกับแป้นพิมพ์ผ่าน GROVE I2C และสะท้อนการกดปุ่มไปยัง Serial Monitor สเก็ตช์สามารถรันบน ESP32 (เช่น HB50), Arduino UNO, Arduino Nano หรือแพลตฟอร์มใดๆ ที่รองรับ I2C

โปรดทราบว่ามีการเรียก Wire.begin สองแบบสำหรับ ESP32 และ UNO/Nano ยกเลิกหมายเหตุบรรทัดที่เหมาะสมสำหรับโฮสต์ที่คุณใช้ ต่อสายไฟแยก GROVE สีเหลืองและสีขาวเข้ากับหมุดที่ระบุในบรรทัดของรหัสนั้น ต่อสายไฟ GROVE สีแดงไปที่ 5V และต่อสาย Black GROVE เข้ากับ GND

หน้าเอกสารผู้ผลิต โปรดทราบว่าแม้ว่าไมโครคอนโทรลเลอร์ออนบอร์ดของ CardKB จะตั้งโปรแกรมไว้ล่วงหน้า แต่แหล่งที่มาของเฟิร์มแวร์จะพร้อมใช้งานหากคุณต้องการแฮ็คแป้นพิมพ์

ขั้นตอนที่ 8:

ภาพ
ภาพ

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

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

แนะนำ: