YEAAAUGH, WHHAT? OKKKAY! Lil Jon Easy Button (3 / 4 stap)

Stap 3: Hoe het werkt:


Hopelijk heb je een werkende Lil Jon Button nu. U misschien wel interesse in hoe de code werkt, dus ik zal het uitleggen van sommige secties. Omdat de code vrij lang is, zal ik gewoon verwijzen naar secties opeenvolgend.

Eerst, hier zijn een stelletje omvat. Natuurlijk zijn er degenen die voor de processor evenals sommige standaard bibliotheken. Wat is belangrijk dat hier is de header bestanden die overeenkomen met de monsters. Dit is een manier om een gunstige gegevens vanaf uw computer in de microcontroller geladen tijdens het compileren. Ik schreef een MATLAB-script dat WAV-bestanden leest en verklaart een grote reeks bijvoorbeeld:
int mydata [] = {1, 2, 3 of 4};

Dan is er het gedeelte:
ongeldig __attribute__((__interrupt__)) _T2Interrupt (void)
{

Het gaat hier om de interrupt voor Timer 2, die rijdt van de PWM. Een PWM (pulsbreedte Modulator) genereert een soort-van-analoog golfvorm door de snel veranderende het pulserend sproeien van een pulse golfvorm. Dit is omdat de digitale uitgangen van de microcontroller alleen genereren kunnen een logische 0 (die met de spanning van de grond) of een logische 1 (die is aan de accuspanning). Als we willen zeggen, een spanning die halverwege (bij benadering), kunnen we de PWM gebruiken inschakelen van de pin de helft van de tijd en het uitschakelen van de helft van de tijd. Zolang dit zeer snel gebeurt, kunnen we de spanning goed genoeg te klinken als de oorspronkelijke golfvorm benaderen.

De T2Interrupt functie is een interrupt handler voor Timer-2. Het betekent in feite dat de PWM een ander monster, moet zodat we een ander monster programmageheugen afgelezen en het in het OC1RS-register spullen. Dit is hoe PWM weet wat spanning te benaderen voor de volgende keer dat monster.

ongeldig __attribute__((__interrupt__)) _CNInterrupt (void)
{

Deze sectie is een interrupt handler voor de kennisgeving van de wijziging. Het wijzigingsbericht gooit een interrupt (dat wil zeggen, voert de bovenstaande functie) telkens wanneer u vanuit een van de pennen die u hebt ingeschakeld wijzigingen staat (gaat hoog -> laag of vice versa). Dit is hoe we detecteren de schakelaar wordt ingedrukt. Merk op dat we hier konden poll, maar de perifere wijzigingsmelding werkt zelfs wanneer de microcontroller in slaap is, waardoor wij een heleboel energie besparen. Wat wij hier doen, is afhankelijk van of een geluid al is afgespeeld. Als een geluid al is afgespeeld, maar we zijn in de eerste 375ms van het monster, zal het gewoon opnieuw de index van de steekproef (daardoor opnieuw afspelen aan het begin van hetzelfde monster is opgestart). Als er geen geluid spelen of we voorbij de eerste 375ms bent, wij willekeurig zullen kiezen van een nieuw geluid uit de 10 en die spelen. Hierdoor kan de Lil Jon Button te herhalen hetzelfde monster, maar nog steeds genoeg willekeurig gedrag interessant (bijvoorbeeld Ya-Ya-Ja! OKE!).

VOID setupHS()
VOID setupCN()
VOID setupPWM()

Hier zijn een aantal setup functies. Dit is vrij ingewikkeld en u zitten beste te raadplegen van het gegevensblad voor precies wat er hier gebeurt. Het volstaat te zeggen de eerste stelt de klok van de processor 66.33 Mhz, de tweede stelt het wijzigingsbericht en de derde stelt de PWM. Voor uw referentie, kan het gegevensblad hier worden gevonden:
http://www.microchip.com/wwwproducts/devices.aspx?dDocName=en532296

Tot slot de:
int main)
{

Immers de hoofdlus. Code begint uitvoeren van hier, dus het eerste ding dat het doet is ingesteld op de randapparatuur. Dan de hoofdlus niet zo heel veel. Het eigenlijk gewoon rond wacht een beetje en gaat slapen. Al het werk gebeurt omdat de interrupts hierboven zijn geregistreerd, dus wanneer iets moet aandacht (bijvoorbeeld de PWM moet in het volgende voorbeeld), de juiste interrupt automatisch zal worden genoemd. Meestal wanneer de microcontroller gaat slapen wordt geen code uitgevoerd. Echter omdat de perifere wijzigingsmelding is ingeschakeld, een druk op de knop zal leiden tot de microcontroller wakker worden en onmiddellijk service die onderbreken en beginnen met het spelen van een steekproef.

Laatste opmerking:
Een oplettende ingenieur zou kunnen vragen, waarom heeft u niet de functie van de DAC van de microcontroller gebruikt? In feite heeft de dsPIC33FJ128GP802 een audio DAC die is ontworpen voor dit soort dingen. De reden is het ontwerp te versimpelen. Bericht dat het enige dat nodig is om te rijden een spreker uit een PWM, één digitale is schakelen (een BJT in dit geval met geen weerstanden voor vertekenende). Als in plaats daarvan de output een DAC, een lineaire versterker gemaakt van transistoren (met extra weerstanden was) of een opamp nodig zou zijn. Dit verhoogt sterk de complexiteit van het ontwerp en de graaf deel. Merk op dat de invoer golfvormen gewoon 8kHz 8-bits audiobestanden, zijn zodat een volledige CD-kwaliteit DAC overkill in termen van audio kwaliteit is, maar verhoogt de totale kosten.

Andere laatste opmerking:
De dsPIC33FJ128GP802 van spanningsbereik is alleen 3.0-3.6V. Ik heb geconstateerd dat het op ongeveer 2.8V zonder problemen met deze code wordt uitgevoerd, maar stabiliteit voor de lange termijn kan niet worden gegarandeerd. Ik adviseer als je bent om te experimenteren met de code sommige AAA-lithiumbatterijen te gebruiken: http://www.amazon.com/Energizer-Ultimate-L92BP-4-Lithium-Battery/dp/B0002DUQDQ . Zij beweren 1.5V voor een veel langere tijd dan alkalische AAAs.

Bewerken: probleem opgelost met behulp van PIC18, die naar beneden naar 2V loopt

Gerelateerde Artikelen

Neem uw eigen bericht op Staples Easy button

Neem uw eigen bericht op Staples Easy button

Ik heb een paar andere web posten over het wijzigen van de Staples Easy button om te spelen van uw eigen bericht, maar nu dat Radio Shack heeft gesloten, sommige van deze berichten zijn niet langer geldig.Een andere methode nodig hebben van een 9-vol
DIY "iets" Staples Easy Button (spraakopname)

DIY "iets" Staples Easy Button (spraakopname)

De nietjes "Gemakkelijk" knop is al een klassieke desktop-item, maar het zou veel leuker als er gezegd wat u wilt. Ik weet dat sommige mensen hebben hacks als dit al gedaan, maar dit minder duur dan velen van hen is. Ook, Staples onlangs verande
Quiz Show zoemer systeem met behulp van Staples Easy Button

Quiz Show zoemer systeem met behulp van Staples Easy Button

**UPDATE** het is mij ter ore gekomen dat het bestuur van de huidige Staples easy knop veranderd door de jaren heen en is niet langer hetzelfde als de een die ik voor dit Instructable gebruikte terug in 2009. Verschuldigde beide tijdsdruk en het feit
Z-Wave Easy Button

Z-Wave Easy Button

Ik heb gemaakt deze Z-Wave gemakkelijk knop een draagbare, grote, makkelijk te gebruiken als besturingselement wilt toevoegen aan mijn SmartThings domotica netwerk. Met een eenvoudige knop, een deur sensor, en sommige relatief eenvoudig hacking heb i
Woordenschat Easy Button uitgebreid

Woordenschat Easy Button uitgebreid

The Easy Button is verkrijgbaar bij Staples voor $5 en het zegt gewoon "dat was gemakkelijk" elke keer dat u het smakken. De easy button is goed gebouwd voor de prijs, maar vereist een beetje werk en ongeveer 10 dollar waard van onderdelen om er
Staples Easy Button (tm) besturingselementen maken uw computer

Staples Easy Button (tm) besturingselementen maken uw computer

Dit project is geïnspireerd door verscheidene bestaande echt creatief Easy Button hacks ik op Instructables gezien heb.  Dit is een beetje goedkoper dan de anderen.  Het is niet draadloos, noch een spelshow en het kost een beetje meer werk, maar het
USB Easy Button

USB Easy Button

die Gemakkelijk knoppen van Staples zijn geweldig, maar ze hebben een kleine fout: ze niet daadwerkelijk iets nuttigs doen. Het is mijn bedoeling om dat te veranderen.Ik ga bouwen een USB Easy Button. Ik vond de meeste alles wat die ik nodig had uit
HOW TO MAKE EASY BUTTON oorbellen

HOW TO MAKE EASY BUTTON oorbellen

Vandaag ik heb een snelle DIY video gefilmd. Het is een leuk project. Het is hoe to Make Easy knop oorbellen in minder dan 2 minuten. We kunnen een heleboel geld besparen door het maken van onze eigen oorbellen.❤Please abonneren op mijn channel❤!http
Easy Button Hack - Wireless spelshow zoemer - tutorial

Easy Button Hack - Wireless spelshow zoemer - tutorial

Hi guys,Ik heb een flash gebaseerde trivia game voor een van mijn sceptici in de Pub-gebeurtenissen. Het gebruikt tot een oude toetsenbord, lange draden, handbediende knoppen, slechts drie deelnemers tegelijk worden bedraad. Exclusief voor de rest va
Aangepaste pluche Easy Button

Aangepaste pluche Easy Button

met persoonlijke Moederdag bericht of een bericht. Heb je de stem van iemand die alleen een moeder kan liefde en moet steeds opnieuw worden gehoord? Dit is het perfecte cadeau voor iemand die graag een persoonlijk bericht van hun lieve nakomelingen g
Hacken van de nieuwste versie van nietjes 'Easy' knop en het bouwen van een eenvoudige fysieke activiteit herinnering tool

Hacken van de nieuwste versie van nietjes 'Easy' knop en het bouwen van een eenvoudige fysieke activiteit herinnering tool

Ik volgde dit instructable hack de Staples Easy Button en bouwen van een hulpmiddel dat doet me denken aan elke 15 minuten om fysiek actief te zijn. De knop die ik bij Staples gekocht had interne circuits dat enigszins verschillend van degene die zij
Een Makers Wedding - Photo booth

Een Makers Wedding - Photo booth

Dit Instructable is over:het bouwen van een geautomatiseerde foto stand. De totale bouwen kosten waren rond $150 zoals ik opnieuw veel van de onderdelen en materialen die ik al in mijn garage gebruikt-naast wat ik van schroot werven redden kon.Why? -
(8) dat Was eenvoudig Mic Switch of CW Bug om gehandicapten

(8) dat Was eenvoudig Mic Switch of CW Bug om gehandicapten

ontmoette ik een Amateur Radio-Operator die is Quadriplegic.Hij zijn handen om Squeeze The Pickle (mic) niet gebruiken.Het beste wat hij kan doen is zijn arm te laten vallen van zijn hand op de tafel slingeren.Dus maakte ik een schakelaar van de Mic,
Gitaar Pick / iets houder

Gitaar Pick / iets houder

In mijn eerste ooit Instrutable, ik zal je leren hoe maak je een gitaar pick / iets anders dat is kleine houder. Ex: Paperclips, Rubberbands werkt.Stap 1: Benodigdheden De items die u nodig heeft voor dit project zijn als volgt:Staples Easy ButtonSch