สารบัญ:

HackerBox 0040: PIC of Destiny: 9 ขั้นตอน
HackerBox 0040: PIC of Destiny: 9 ขั้นตอน

วีดีโอ: HackerBox 0040: PIC of Destiny: 9 ขั้นตอน

วีดีโอ: HackerBox 0040: PIC of Destiny: 9 ขั้นตอน
วีดีโอ: HackerBox 0045 Spark Net 2024, กรกฎาคม
Anonim
HackerBox 0040: PIC of Destiny
HackerBox 0040: PIC of Destiny

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

หัวข้อและวัตถุประสงค์การเรียนรู้สำหรับ HackerBox 0040:

  • พัฒนาระบบฝังตัวด้วยไมโครคอนโทรลเลอร์ PIC
  • สำรวจการเขียนโปรแกรมในวงจรของระบบฝังตัว
  • ทดสอบตัวเลือกการจ่ายไฟและการตอกบัตรสำหรับระบบฝังตัว
  • เชื่อมต่อไมโครคอนโทรลเลอร์ PIC กับโมดูลเอาต์พุต LCD
  • ทดลองกับเครื่องรับ GPS ในตัว
  • ควง PIC ของ Destiny

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

แฮ็คดาวเคราะห์

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

Image
Image
  • ไมโครคอนโทรลเลอร์ PIC PIC16F628 (กรมทรัพย์สินทางปัญญา 18)
  • ไมโครคอนโทรลเลอร์ PIC PIC12F675 (กรมทรัพย์สินทางปัญญา 8)
  • PICkit 3 โปรแกรมเมอร์และดีบักเกอร์ในวงจร
  • เป้าหมายการเขียนโปรแกรมซ็อกเก็ต ZIF สำหรับ PICkit 3
  • สาย USB และสายเฮดเดอร์สำหรับ PICkit 3
  • โมดูล GPS พร้อมเสาอากาศในตัว
  • 16x2 โมดูล LCD ตัวอักษรและตัวเลข
  • เขียงหั่นขนมพาวเวอร์ซัพพลายพร้อม MicroUSB
  • คริสตัล 16.00MHz (HC-49)
  • ปุ่มสัมผัสชั่วขณะ
  • ไฟ LED สีแดง 5 มม. แบบกระจาย
  • โพเทนชิโอมิเตอร์ทริมเมอร์ 5K โอห์ม
  • ตัวเก็บประจุเซรามิก 18pF
  • ตัวเก็บประจุเซรามิก 100nF
  • ตัวต้านทาน 1K Ohm 1/4W
  • ตัวต้านทาน 10K Ohm 1/4W
  • 830 Point (ใหญ่) Solderless Breadboard
  • ชุดสายจัมเปอร์ขึ้นรูป 140 ชิ้น
  • ปิ๊กกีตาร์เซลลูลอยด์
  • สติ๊กเกอร์ไดคัท PIC16C505 สุดพิเศษ

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

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

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

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

ขั้นตอนที่ 2: ไมโครคอนโทรลเลอร์ PIC

การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC ด้วย PICkit 3
การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC ด้วย PICkit 3

ไมโครคอนโทรลเลอร์ตระกูล PIC ผลิตโดย Microchip Technology เดิมชื่อ PIC อ้างถึง Peripheral Interface Controller แต่ภายหลังได้รับการแก้ไขให้เป็น Programmable Intelligent Computer ชิ้นส่วนแรกในตระกูลออกมาในปี 1976 ภายในปี 2013 มีการจัดส่งไมโครคอนโทรลเลอร์ PIC มากกว่า 12 พันล้านตัว อุปกรณ์ PIC ได้รับความนิยมจากทั้งนักพัฒนาอุตสาหกรรมและมือสมัครเล่น เนื่องจากราคาถูก ความพร้อมใช้งานที่กว้างขวาง ฐานผู้ใช้ขนาดใหญ่ คอลเลกชั่นบันทึกย่อของแอปพลิเคชันที่กว้างขวาง ความพร้อมใช้งานของเครื่องมือพัฒนาต้นทุนต่ำหรือฟรี การเขียนโปรแกรมแบบอนุกรม และความสามารถหน่วยความจำแฟลชแบบตั้งโปรแกรมซ้ำได้ (วิกิพีเดีย)

HackerBox 0040 ประกอบด้วยไมโครคอนโทรลเลอร์ PIC สองตัวที่ติดตั้งไว้ชั่วคราวสำหรับการขนส่งในซ็อกเก็ต ZIF (แรงแทรกเป็นศูนย์) ขั้นตอนแรกในการลบ PIC สองตัวออกจากซ็อกเก็ต ZIF กรุณาทำตอนนี้!

ไมโครคอนโทรลเลอร์สองตัวคือ PIC16F628A (แผ่นข้อมูล) ในแพ็คเกจ DIP18 และ PIC12F675 (เอกสารข้อมูล) ในแพ็คเกจ DIP 8

ตัวอย่างที่นี่ใช้ PIC16F628A อย่างไรก็ตาม PIC12F675 ทำงานคล้ายกัน เราขอแนะนำให้คุณลองใช้ในโครงการของคุณเอง ขนาดที่เล็กทำให้เป็นโซลูชันที่มีประสิทธิภาพเมื่อคุณต้องการพิน I/O จำนวนน้อยเท่านั้น

ขั้นตอนที่ 3: การเขียนโปรแกรมไมโครคอนโทรลเลอร์ PIC ด้วย PICkit 3

มีขั้นตอนการกำหนดค่าจำนวนมากที่ต้องแก้ไขเมื่อใช้เครื่องมือ PIC ดังนั้นนี่คือตัวอย่างพื้นฐานที่ค่อนข้างดี:

  • ติดตั้งซอฟต์แวร์ MPLAB X IDE จาก Microchip
  • เมื่อสิ้นสุดการติดตั้ง คุณจะเห็นลิงก์สำหรับติดตั้ง MPLAB XC8 C Compiler ให้แน่ใจว่าได้เลือกสิ่งนั้น XC8 เป็นคอมไพเลอร์ที่เราจะใช้
  • ใส่ชิป PIC16F628A (DIP18) ลงในซ็อกเก็ต ZIF สังเกตตำแหน่งและทิศทางที่ระบุไว้ที่ด้านหลังของ ZIF เป้าหมาย PCB
  • ตั้งสวิตช์จัมเปอร์ตามที่ระบุไว้ที่ด้านหลังของ ZIF target PCB (B, 2-3, 2-3)
  • เสียบส่วนหัวการเขียนโปรแกรมห้าพินของบอร์ดเป้าหมาย ZIF เข้ากับส่วนหัว PICkit 3
  • เชื่อมต่อ PICkit 3 กับคอมพิวเตอร์โดยใช้สาย miniUSB สีแดง
  • เรียกใช้ MPLAB X IDE
  • เลือกตัวเลือกเมนูเพื่อสร้างโครงการใหม่
  • กำหนดค่า: ไมโครชิปฝังโปรเจ็กต์แบบสแตนด์อโลน แล้วกด NEXT
  • เลือกอุปกรณ์: PIC16F628A แล้วกด NEXT
  • เลือกดีบักเกอร์: ไม่มี; เครื่องมือฮาร์ดแวร์: PICkit 3; คอมไพเลอร์: XC8
  • ป้อนชื่อโครงการ: กะพริบ
  • คลิกขวาที่ไฟล์ต้นฉบับและภายใต้ new select new main.c
  • ตั้งชื่อไฟล์ c เช่น "blink"
  • ไปที่ window > tag memory view > config bits
  • ตั้งค่าบิต FOSC เป็น INTOSCIO และตั้งค่าอื่นๆ เป็น OFF
  • กดปุ่ม "สร้างซอร์สโค้ด"
  • วางโค้ดที่สร้างลงในไฟล์ blink.c ด้านบน
  • วางสิ่งนี้ลงในไฟล์ c ด้วย: #define _XTAL_FREQ 4000000
  • ที่ผ่านมาในบล็อกหลักของรหัส c ด้านล่าง:

โมฆะหลัก(เป็นโมฆะ)

{ ทริสซ่า = 0b00000000; ในขณะที่ (1) { PORTAbits. RA3 = 1; _delay_ms(300); PORTAbits. RA3 = 0; _delay_ms(300); } }

  • กดไอคอนค้อนเพื่อคอมไพล์
  • ไปที่การผลิต > ตั้งค่าการกำหนดค่าโครงการ > ปรับแต่ง
  • เลือก PICkit 3 ในแผงด้านซ้ายของหน้าต่างป๊อปอัป จากนั้นเลือก Power จากช่องดรอปดาวน์ที่ด้านบน
  • คลิกกล่อง "เป้าหมายพลังงาน" ตั้งค่าแรงดันเป้าหมายเป็น 4.875V กดปุ่ม Apply
  • กลับมาที่หน้าจอหลัก ให้กดที่ไอคอนลูกศรสีเขียว
  • คำเตือนเกี่ยวกับแรงดันไฟฟ้าจะปรากฏขึ้น ตีต่อ.
  • ในที่สุดคุณควรได้รับ "การเขียนโปรแกรม/ยืนยันเสร็จสิ้น" ในหน้าต่างสถานะ
  • หากโปรแกรมเมอร์ไม่ทำงาน ก็สามารถช่วยปิด IDE และเรียกใช้อีกครั้งได้ ควรคงการตั้งค่าที่คุณเลือกทั้งหมดไว้

ขั้นตอนที่ 4: Breadboarding PIC โปรแกรมด้วย Blink.c

Breadboarding PIC โปรแกรมด้วย Blink.c
Breadboarding PIC โปรแกรมด้วย Blink.c

เมื่อตั้งโปรแกรม PIC แล้ว (ขั้นตอนก่อนหน้า) ก็สามารถวางลงบนเขียงหั่นขนมแบบไม่มีบัดกรีเพื่อทำการทดสอบได้

เนื่องจากเลือกออสซิลเลเตอร์ภายใน เราจำเป็นต้องต่อสายไฟสามพินเท่านั้น (กำลัง, กราวด์, LED)

สามารถจ่ายไฟให้กับเขียงหั่นขนมโดยใช้โมดูลแหล่งจ่ายไฟ ตัวชี้สำหรับการใช้โมดูลจ่ายไฟ:

  • ใส่บัดกรีเพิ่มเติมบนแถบด้านข้างของช่องเสียบ microUSB ก่อนที่มันจะขาด - ไม่ใช่หลังจากนั้น
  • ตรวจสอบให้แน่ใจว่า "หมุดสีดำ" เข้าไปในรางพื้น และ "หมุดสีขาว" ลงในรางไฟฟ้า หากกลับด้าน แสดงว่าคุณอยู่ผิดด้านของเขียงหั่นขนม
  • พลิกสวิตช์ทั้งสองไปที่ 5V สำหรับชิป PIC ที่รวมอยู่

หลังจากวางตำแหน่งไมโครคอนโทรลเลอร์ PIC แล้ว ให้สังเกตตัวบ่งชี้พิน 1 หมุดมีหมายเลขจากพิน 1 ในรูปแบบทวนเข็มนาฬิกา ต่อสายไฟ 5 (VSS) ถึง GND, พิน 14 (VDD) ถึง 5V และพิน 2 (RA3) ไปที่ LED โปรดสังเกตในรหัสของคุณ I/O pin RA3 ถูกปิดและเปิดเพื่อให้ไฟ LED กะพริบ พินที่ยาวกว่าของ LED ควรเชื่อมต่อกับ PIC ในขณะที่พินที่สั้นกว่าควรเชื่อมต่อกับตัวต้านทาน 1K (สีน้ำตาล สีดำ สีแดง) ปลายด้านตรงข้ามของตัวต้านทานควรเชื่อมต่อกับราง GND ตัวต้านทานทำหน้าที่เป็นขีด จำกัด กระแสเพื่อให้ LED ไม่ได้ดูเหมือนสั้นระหว่าง 5V และ GND และดึงกระแสมากเกินไป

ขั้นตอนที่ 5: การเขียนโปรแกรมในวงจร

การเขียนโปรแกรมในวงจร
การเขียนโปรแกรมในวงจร

สามารถใช้ดองเกิล PICkit 3 เพื่อตั้งโปรแกรมชิป PIC ในวงจรได้ ดองเกิลยังสามารถจ่ายพลังงานให้กับวงจร (เป้าหมายเขียงหั่นขนม) เช่นเดียวกับที่เราทำกับเป้าหมาย ZIF

  • ถอดแหล่งจ่ายไฟออกจากเขียงหั่นขนม
  • เชื่อมต่อ PICkit 3 กับเขียงหั่นขนมที่ 5V, GND, MCLR, PGC และ PGD
  • เปลี่ยนหมายเลขหน่วงเวลาในรหัส C
  • คอมไพล์ใหม่ (ไอคอนค้อน) จากนั้นตั้งโปรแกรม PIC

เนื่องจากหมายเลขการหน่วงเวลาเปลี่ยนไป ไฟ LED ควรกะพริบแตกต่างไปจากนี้

ขั้นตอนที่ 6: การใช้ Crystal Oscillator ภายนอก

การใช้ Crystal Oscillator ภายนอก
การใช้ Crystal Oscillator ภายนอก

สำหรับการทดลอง PIC นี้ ให้เปลี่ยนจากออสซิลเลเตอร์ภายในเป็นคริสตัลออสซิลเลเตอร์ภายนอกความเร็วสูง ไม่เพียงแต่ Crystal oscillator ภายนอกจะเร็วขึ้น 16MHz แทนที่จะเป็น 4MHz) แต่ยังแม่นยำกว่ามาก

  • เปลี่ยนบิตการกำหนดค่า FOSC จาก INTOSCIO เป็น HS
  • เปลี่ยนทั้งการตั้งค่า FOSC IDE และ #define ในโค้ด
  • เปลี่ยน #define _XTAL_FREQ 4000000 จาก 4000000 เป็น 16000000
  • ตั้งโปรแกรม PIC ใหม่ (อาจเปลี่ยนหมายเลขการหน่วงเวลาอีกครั้ง)
  • ตรวจสอบการทำงานด้วยคริสตัลภายนอก
  • จะเกิดอะไรขึ้นเมื่อคุณดึงคริสตัลออกจากเขียงหั่นขนม?

ขั้นตอนที่ 7: ขับโมดูลเอาต์พุต LCD

ขับเคลื่อนโมดูลเอาต์พุต LCD
ขับเคลื่อนโมดูลเอาต์พุต LCD

PIC16F628A สามารถใช้เพื่อขับเอาต์พุตไปยังโมดูล LCD ตัวอักษรและตัวเลขขนาด 16x2 (ข้อมูล) เมื่อต่อสายดังที่แสดงไว้ที่นี่ ไฟล์แนบ picLCD.c ให้ตัวอย่างโปรแกรมง่ายๆ สำหรับเขียนข้อความออกไปยังโมดูล LCD

ขั้นตอนที่ 8: ตัวรับเวลาและตำแหน่ง GPS

ตัวรับเวลาและตำแหน่ง GPS
ตัวรับเวลาและตำแหน่ง GPS

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

ไฟ LED "Power" สีแดงจะสว่างขึ้นเมื่อเชื่อมต่อกำลังไฟที่เหมาะสม เมื่อได้รับสัญญาณดาวเทียมแล้ว ไฟ LED สีเขียว "PPS" พร้อมเริ่มชีพจร

จ่ายไฟให้กับพิน GND และ VCC VCC สามารถทำงานได้ที่ 3.3V หรือ 5V

พินที่สามที่จำเป็นคือพิน TX พิน TX ส่งออกกระแสข้อมูลอนุกรมที่สามารถบันทึกลงในคอมพิวเตอร์ (ผ่านอะแดปเตอร์ TTL-USB) หรือในไมโครคอนโทรลเลอร์ มีโครงการตัวอย่างมากมายสำหรับรับข้อมูล GPS ลงใน Arduino

git repo นี้มีเอกสาร pdf สำหรับโมดูล GPS ประเภทนี้ ตรวจสอบ u-center ด้วยนะครับ

โปรเจ็กต์และวิดีโอนี้สาธิตตัวอย่างการบันทึกวันที่และเวลาที่มีความแม่นยำสูงจากโมดูล GPS ลงในไมโครคอนโทรลเลอร์ PIC16F628A

ขั้นตอนที่ 9: ใช้ชีวิต HackLife

ใช้ชีวิต HackLife
ใช้ชีวิต HackLife

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

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

แนะนำ: