Stap 7: Programmeren van de sluis
Voor het eerst, we enkele eenvoudige debugging code om te helpen ons onze sensoren ingesteld gemaakt. Ervoor te zorgen dat uw sensor lezingen is verandering bij het plaatsen van objecten op hen nodig, zoals veel kleine fouten in de bedrading of installatie voorkomen een kleine sensor dat kunnen uit het lezen van alle waarden helemaal. We gebruikten deze debug-code om de grafiek onze sensor lezingen en dan beslissen welke druk sensor type we moet gebruiken. We hebben ontdekt dat de zelfgemaakte sensoren deed aanzienlijk slechter in het consequent lezen van veranderingen in het lichaamsgewicht.
In de code van de Arduino zetten we de combo in setup. In de functie van de lus instellen we de waarden als de huidige waarden van de sensoren. Als de deur ontgrendeld wordt, stellen we de combo op de waarden. We vergelijken vervolgens de combo op de huidige waarden met een gebruikersfunctie. We vonden die fout (RMSE) van de kwadratische gemiddelde werkte goed (wikipedia ). Om dit te doen, hebben we de absolute waarde van het verschil tussen de combo voor schaal i en de waarde voor schaal ik (e.. g abs(combo[i]-value[i]) en verdeeld door de combo voor schaal i. We kwadraat en vatte deze fouten en nam daarna de vierkantswortel van de som. RMSE heeft een zeer goede baan bij het verhogen van grote fouten en het verminderen van het effect van kleine fouten. Objecten worden geplaatst en verwijderd uit onze sensoren maken grote veranderingen in onze fout maken RMSE ideaal. Kleine fouten als gevolg van verschillende humidities en verschillende andere milieueffecten zijn ook geminimaliseerd, bij het gebruik van RMSE.
We vergeleken deze fout aan de waarde van de potentiometer knop die de maximumfout gecontroleerd. Als de fout consequent minder voor een halve seconde was, ontgrendeld we de deur met behulp van de servo. De kleine LEDs aangegeven dat de huidige fout kleiner dan door de max was, en de heldere LED aangegeven dat de deur vergrendeld of ontgrendeld.
De verwerking grafiek werd gebruikt voor het observeren van de huidige waarden van variabelen in de code van de Arduino. We gebruikten een eenvoudig protocol om berichten te verzenden via de seriële poort. Bijvoorbeeld aangegeven 'COMBO < poort >< waarde >' de huidige waarde van de combinatie van poort. Wij weergegeven deze berichten als tekst in de verwerking venster. Bovendien, we opgenomen in een grafiek de waarden van de weegschaal na verloop van tijd, en de foutwaarde na verloop van tijd.