Inhoudsopgave:

HackerBox 0040: PIC of Destiny - Ajarnpa
HackerBox 0040: PIC of Destiny - Ajarnpa

Video: HackerBox 0040: PIC of Destiny - Ajarnpa

Video: HackerBox 0040: PIC of Destiny - Ajarnpa
Video: HackerBox 0040 PIC of Destiny 2024, Juli-
Anonim
HackerBox 0040: PIC van Destiny
HackerBox 0040: PIC van Destiny

Groeten aan HackerBox-hackers over de hele wereld. HackerBox 0040 laat ons experimenteren met PIC-microcontrollers, breadboarding, LCD-schermen, GPS en meer. Deze Instructable bevat informatie om aan de slag te gaan met HackerBox 0040, die hier kan worden gekocht zolang de voorraad strekt. Als je elke maand zo'n HackerBox in je mailbox wilt ontvangen, schrijf je dan in op HackerBoxes.com en doe mee aan de revolutie!

Onderwerpen en leerdoelen voor HackerBox 0040:

  • Ontwikkel embedded systemen met PIC Microcontrollers
  • Ontdek in-circuit programmering van embedded systemen
  • Test voeding en klokopties voor embedded systemen
  • Interface een PIC-microcontroller naar een LCD-uitgangsmodule
  • Experimenteer met een geïntegreerde GPS-ontvanger
  • Hanteer de PIC van het lot

HackerBoxes is de maandelijkse abonnementsservice voor doe-het-zelf-elektronica en computertechnologie. Wij zijn hobbyisten, makers en experimenteerders. Wij zijn de dromers van dromen.

HACK DE PLANEET

Stap 1: Inhoudslijst voor HackerBox 0040

Image
Image
  • PIC-microcontroller PIC16F628 (DIP 18)
  • PIC-microcontroller PIC12F675 (DIP 8)
  • PICkit 3 In-Circuit Programmer en Debugger
  • ZIF Socket Programming Target voor PICkit 3
  • USB-kabel en headerdraden voor PICkit 3
  • GPS-module met ingebouwde antenne
  • 16x2 alfanumerieke LCD-module
  • Breadboard-voeding met MicroUSB
  • 16,00 MHz Kristallen (HC-49)
  • Tactiele kortstondige knoppen
  • Diffuus RODE 5 mm LED's
  • 5K Ohm Trimmer Potentiometer
  • 18pF keramische condensatoren
  • 100nF keramische condensatoren
  • 1K Ohm 1/4W Weerstanden
  • 10K Ohm 1/4W Weerstanden
  • 830 punt (groot) soldeerloze breadboard
  • Formed Jumper Wire Kit met 140 Stuks
  • Celluloid plectrums
  • Exclusieve PIC16C505 Die Decal

Enkele andere dingen die nuttig zullen zijn:

  • Soldeerbout, soldeer en standaard soldeergereedschappen
  • Computer voor het uitvoeren van softwaretools

Het belangrijkste is dat je gevoel voor avontuur, hackergeest, geduld en nieuwsgierigheid nodig hebt. Het bouwen van en experimenteren met elektronica, hoewel zeer de moeite waard, kan soms lastig, uitdagend en zelfs frustrerend zijn. Het doel is vooruitgang, niet perfectie. Als je volhoudt en geniet van het avontuur, kan er veel voldoening uit deze hobby worden gehaald. Neem elke stap langzaam, let op de details en wees niet bang om hulp te vragen.

Er is een schat aan informatie voor huidige en toekomstige leden in de HackerBoxes FAQ. Bijna alle niet-technische ondersteunings-e-mails die we ontvangen, worden daar al beantwoord, dus we stellen het zeer op prijs dat u een paar minuten de tijd neemt om de veelgestelde vragen te lezen.

Stap 2: PIC-microcontrollers

Programmeren van PIC-microcontrollers met PICkit 3
Programmeren van PIC-microcontrollers met PICkit 3

De PIC-familie van microcontrollers is gemaakt door Microchip Technology. De naam PIC verwees aanvankelijk naar Peripheral Interface Controller, maar werd later gecorrigeerd naar Programmable Intelligent Computer. De eerste onderdelen van de familie kwamen uit in 1976. In 2013 waren er meer dan twaalf miljard individuele PIC-microcontrollers verzonden. PIC-apparaten zijn populair bij zowel industriële ontwikkelaars als hobbyisten vanwege hun lage kosten, brede beschikbaarheid, grote gebruikersbasis, uitgebreide verzameling applicatie-opmerkingen, beschikbaarheid van goedkope of gratis ontwikkelingstools, seriële programmering en herprogrammeerbare Flash-geheugenmogelijkheden. (Wikipedia)

HackerBox 0040 bevat twee PIC-microcontrollers die tijdelijk voor transport in een ZIF-socket (zero insertion force) zijn geplaatst. De eerste stap is om de twee PIC's uit de ZIF-socket te verwijderen. Doe dat alsjeblieft nu!

De twee microcontrollers zijn een PIC16F628A (datasheet) in een DIP18-pakket en een PIC12F675 (datasheet) in een DIP 8-pakket.

De voorbeelden hier gebruiken de PIC16F628A, maar de PIC12F675 werkt op dezelfde manier. We moedigen je aan om het uit te proberen in een eigen project. Het kleine formaat zorgt voor een efficiënte oplossing wanneer u slechts een klein aantal I/O-pinnen nodig heeft.

Stap 3: PIC-microcontrollers programmeren met PICkit 3

Er zijn veel configuratiestappen die moeten worden aangepakt bij het gebruik van de PIC-tools, dus hier is een vrij eenvoudig voorbeeld:

  • Installeer de MPLAB X IDE-software van Microchip
  • Aan het einde van de installatie krijgt u een link te zien om de MPLAB XC8 C Compiler te installeren. Zorg ervoor dat u dat selecteert. XC8 is de compiler die we zullen gebruiken.
  • Steek de PIC16F628A (DIP18)-chip in de ZIF-socket. Let op de positie en oriëntatie op de achterkant van de ZIF-doel-PCB.
  • Stel de jumperschakelaars in zoals aangegeven op de achterkant van de ZIF-doel-PCB (B, 2-3, 2-3).
  • Steek de 5-pins programmeerheader van het ZIF-doelbord in de PICkit 3-header.
  • Sluit de PICkit 3 aan op de computer met behulp van de rode miniUSB-kabel.
  • Voer de MPLAB X IDE uit.
  • Selecteer de menuoptie om een nieuw project aan te maken.
  • Configureren: microchip embedded standalone project, en klik op VOLGENDE.
  • Selecteer apparaat: PIC16F628A en druk op VOLGENDE
  • Selecteer debugger: Geen; Hardware-tools: PICkit 3; Compiler: XC8
  • Voer de projectnaam in: blink.
  • Klik met de rechtermuisknop op de bronbestanden en selecteer onder nieuw nieuwe main.c
  • Geef het c-bestand een naam zoals "blink"
  • Navigeer naar venster > taggeheugenweergave > configuratiebits
  • Stel de FOSC-bit in op INTOSCIO en al het andere op UIT.
  • Druk op de knop "broncode genereren".
  • Plak de gegenereerde code in je blink.c bestand hierboven
  • Plak dit ook in het c-bestand: #define _XTAL_FREQ 4000000
  • Past in het hoofdblok van c-code hieronder:

nietig hoofd (nietig)

{ TRISA = 0b00000000; terwijl (1) { PORTAbits. RA3 = 1; _delay_ms(300); PORTAbits. RA3 = 0; _delay_ms(300); } }

  • Druk op het hamerpictogram om te compileren
  • Navigeer naar productie > stel projectconfiguratie in > aanpassen
  • Selecteer PICkit 3 in het linkerdeel van het pop-upvenster en vervolgens Power in het vervolgkeuzeveld bovenaan.
  • Klik op het vak "vermogensdoel", stel de doelspanning in op 4,875 V, druk op Toepassen.
  • Terug naar het hoofdscherm, klik op het groene pijlpictogram.
  • Er verschijnt een waarschuwing over spanning. Druk op doorgaan.
  • U zou uiteindelijk "Programmeren / verifiëren voltooid" in het statusvenster moeten krijgen.
  • Als de programmeur zich niet gedraagt, kan het helpen om de IDE af te sluiten en gewoon opnieuw te starten. Al uw geselecteerde instellingen moeten behouden blijven.

Stap 4: Breadboarden van de PIC geprogrammeerd met Blink.c

Breadboarden van de PIC geprogrammeerd met Blink.c
Breadboarden van de PIC geprogrammeerd met Blink.c

Zodra de PIC is geprogrammeerd (vorige stap), kan deze op een soldeerloze breadboard worden geplaatst om te testen.

Omdat de interne oscillator is geselecteerd, hoeven we slechts drie pinnen (power, ground, LED) aan te sluiten.

Met behulp van de voedingsmodule kan stroom worden geleverd aan het breadboard. Aanwijzingen voor het gebruik van de voedingsmodule:

  • Doe wat meer soldeer op de zijlipjes van de microUSB-aansluiting voordat deze afbreekt - niet daarna.
  • Zorg ervoor dat de "zwarte pinnen" in de grondrail gaan en de "witte pinnen" in de stroomrail. Als ze omgekeerd zijn, zit je aan het verkeerde eind van het breadboard.
  • Zet beide schakelaars op 5V voor de meegeleverde PIC-chips.

Let na het positioneren van de PIC-microcontroller op de pin 1-indicator. De pinnen zijn vanaf pin 1 tegen de klok in genummerd. Draad pin 5 (VSS) naar GND, pin 14 (VDD) naar 5V, en pin 2 (RA3) naar de LED. Merk op in uw code dat I/O-pin RA3 aan en uit wordt geschakeld om de LED te laten knipperen. De langere pin van de LED moet worden aangesloten op de PIC, terwijl de kortere pin moet worden aangesloten op een weerstand van 1K (bruin, zwart, rood). Het andere uiteinde van de weerstand moet worden aangesloten op de GND-rail. De weerstand fungeert gewoon als een stroombegrenzing, zodat de LED er niet uitziet als een kortsluiting tussen 5V en GND en te veel stroom trekt.

Stap 5: In-circuit programmeren

In-circuit programmeren
In-circuit programmeren

De PICkit 3 dongle kan gebruikt worden om de PIC chip in-circuit te programmeren. De dongle kan ook het circuit (het breadboard-doel) van stroom voorzien, net zoals we deden met het ZIF-doel.

  • Verwijder de voeding van het breadboard.
  • Sluit de PICkit 3-draden aan op het breadboard op 5V, GND, MCLR, PGC en PGD.
  • Wijzig de vertragingsnummers in de C-code.
  • Hercompileer (hamerpictogram) en programmeer vervolgens de PIC.

Omdat de vertragingsnummers zijn gewijzigd, zou de LED nu anders moeten knipperen.

Stap 6: Een externe kristaloscillator gebruiken

Een externe kristaloscillator gebruiken
Een externe kristaloscillator gebruiken

Schakel voor dit PIC-experiment over van de interne oscillator naar een snelle externe kristaloscillator. De externe kristaloscillator is niet alleen sneller 16 MHz in plaats van 4 MHz), maar is ook veel nauwkeuriger.

  • Wijzig de FOSC-configuratiebit van INTOSCIO in HS.
  • Wijzig zowel de FOSC IDE-instelling als de #define in de code.
  • Wijzig #define _XTAL_FREQ 4000000 van 4000000 in 16000000.
  • Herprogrammeer de PIC (misschien wijzig de vertragingsnummers opnieuw)
  • Controleer de werking met het externe kristal.
  • Wat gebeurt er als je het kristal uit het breadboard trekt?

Stap 7: Een LCD-uitgangsmodule aansturen

Een LCD-uitgangsmodule aansturen
Een LCD-uitgangsmodule aansturen

De PIC16F628A kan worden gebruikt om de uitvoer naar een 16x2 alfanumerieke LCD-module (data) te sturen wanneer deze is aangesloten zoals hier wordt weergegeven. Het bijgevoegde bestand picLCD.c geeft een eenvoudig voorbeeldprogramma voor het schrijven van tekstuitvoer naar de LCD-module.

Stap 8: GPS-ontvanger voor tijd en locatie

GPS-ontvanger voor tijd en locatie
GPS-ontvanger voor tijd en locatie

Deze GPS-module kan de tijd en locatie vrij nauwkeurig bepalen uit signalen die vanuit de ruimte worden ontvangen in zijn kleine geïntegreerde antenne. Voor de basiswerking zijn slechts drie pinnen nodig.

De rode "Power" LED zal oplichten wanneer de juiste stroom is aangesloten. Zodra de satellietsignalen zijn ontvangen, begint de groene "PPS"-led te pulseren.

Er wordt stroom geleverd aan de GND- en VCC-pinnen. De VCC kan werken op 3,3V of 5V.

De derde pin die nodig is, is de TX-pin. De TX-pin voert een seriële stream uit die kan worden vastgelegd in een computer (via TTL-USB-adapter) of in een microcontroller. Er zijn talloze voorbeeldprojecten voor het ontvangen van GPS-gegevens in een Arduino.

Deze git repo bevat pdf-documentatie voor dit type GPS-module. Kijk ook eens bij u-center.

Dit project en deze video demonstreren een voorbeeld van het vastleggen van datum en tijd met hoge nauwkeurigheid van een GPS-module in een PIC16F628A-microcontroller.

Stap 9: Leef de HackLife

Leef het HackLife
Leef het HackLife

We hopen dat je genoten hebt van de reis van deze maand naar doe-het-zelf-elektronica. Reik uit en deel uw succes in de reacties hieronder of op de HackerBoxes Facebook Group. Laat het ons zeker weten als je vragen hebt of ergens hulp bij nodig hebt.

Doe mee met de revolutie. Leef het HackLife. Je kunt elke maand een coole doos met hackbare elektronica en computertechnologieprojecten rechtstreeks in je mailbox krijgen. Surf gewoon naar HackerBoxes.com en abonneer u op de maandelijkse HackerBox-service.

Aanbevolen: