Stap 2: Programmeren van de Arduino
In dit gedeelte wordt ervan uitgegaan dat u hoe uw Arduino microcontroller verbinden met uw computer weet, het compileren en het uploaden van een schets. Als u niet weet hoe dat te doen niet zou moeten u waarschijnlijk doen dit Instructable. Maar enige tijd op deze pagina en doen sommige van de voorbeelden en tutorials er misschien brengen u tot snelheid.We gonna uploaden van onze schets alvorens om het even welk van de elektronica te doen zodat we de elektronica testen kunnen als we gaan.
#1: Downloaden
Download het bestand secret_knock_detector.pde aan de onderkant van deze sectie en kopieert u het naar uw schetsboek. (Of de tekst bekijken en knip en plak het in een nieuwe schets.)
(Tip: als de naam van het gedownloade bestand iets is zoals "BARS5HS13H8SW.tmp" gewoon naar secret_knock_detector.pde hernoemen. en je bent goed om te gaan.)
#2:
Open de schets en compileren. Het goed de eerste go moet compileren, maar het is goed om zeker te zijn.
#3:
Sluit je Arduino en uploaden van de schets.
Als u problemen ondervindt, Controleer de sectie troubleshooting op de website van Arduino.
Overzicht van de code:
Voor de nieuwsgierigen is hier een blik op een paar stukjes code als u geïnteresseerd in knutselen bent:
(Als u niet nieuwsgierig bent, gaat u naar de volgende sectie)
over lijn 28:const int drempel = 4;
Dit is de gevoeligheid van de detector knock. Als je een heleboel lawaai, verhogen dit (maximaal 1023), als u ondervindt een harde tijd hoorzitting klopt kun je het (zo laag als 1) verlagen.
over lijn 29:const int rejectValue = 25;
over lijn 30:const int averageRejectValue = 15;
Beide worden gebruikt om te bepalen hoe nauwkeurig iemand moet kloppen. Ze zijn percentages en moeten in het bereik van 0-100. Verlaging van deze middelen iemand moet hebben nauwkeuriger timing, hoger is meer vergevingsgezind. averageRejectValue moet altijd lager zijn dan rejectValue.
Instellingen van ongeveer 10 en 7 maken het moeilijk voor twee personen naar de dezelfde knock knock, zelfs als ze het ritme weten. Maar het verhoogt ook het aantal valse negatieven. (dwz: je knock correct en het nog steeds niet wordt geopend.)
over de lijn 31:const int knockFadeTime = 150;
Dit is een ruwe ontdendering timer voor de klop sensor. Nadat hij een klop hoort stopt het luisteren hiervoor veel milliseconden zodat het niet de dezelfde knock meer dan eens rekenen. Als u een enkele klop geteld als twee dan deze timer te verhogen. Als het niet registreren van twee snelle stoten dan verlagen.
over lijn 32:const int lockTurnTime = 650;
Dit is nu veel milliseconden lopen we de motor om te ontgrendelen van de deur. Hoe lang moet dit zijn, hangt af van het ontwerp van uw motor en uw slot. It's okay als het loopt een beetje lang, omdat ik een eenvoudige slipkoppeling in het ontwerp ontworpen heb, maar het is beter voor alle onderdelen als het niet teveel uitgevoerd.
over lijn 34:const int maximumKnocks = 20;
Hoeveel klopt we record. 20 is alot. U kunt dit verhogen als uw geheime schuilplaats is beveiligd door sluwe drummers met goede herinneringen. Verhoog het teveel en u uit geheugen zult lopen.
over de lijn 35:const int knockComplete = 1200;
Ook bekend als het maximum aantal milliseconden die het op een knock wachten zal. Als het niet hoor een klop hiervoor die lang wordt uitgegaan van dat het wordt gedaan en controleren om te zien als de knock goed is. Vergroten dit als je een trage knocker Verlagen als je een snelle knocker en ongeduldig zijn wachten 1,2 seconden voor uw deur te ontgrendelen.
over lijn 39:int secretCode [maximumKnocks] = {50, 25, 25, 50, 100, 5...
Dit is de standaard knock die het herkent wanneer u het inschakelt. Dit is raar ritmische notatie, omdat elke waarde een percentage van de langste knock is. Als u een harde tijd om het ondervindt te herkennen "scheren en een kapsel" verandering dit {100,100,100,0,0,0... en een eenvoudige reeks 3 stoten zal openen.
Foutopsporing:
over lijn 51: Serial.begin(9600);
over lijn 52:Serial.println ("programmastart.");
Uncomment deze lijnen om te zien sommige debug info op de seriële poort. Er zijn een paar andere regels van het opsporen van fouten code instellen in de rest van de code die u uncomment kunt om te zien wat er gaande intern.
Zorg ervoor dat uw seriële poort ingesteld op de juiste snelheid.
De rest van de code is toegelicht, zodat u kunt zien hoe het werkt maar hoeft u waarschijnlijk niet te wijzigen als u het ontwerp niet veranderen.