Combo block (7 / 8 steg)
Steg 7: Programmering låsa
Det första skapat vi några enkla felsökning kod för att hjälpa oss att ställa in våra sensorer. Att se till att din sensormätningar är förändring när att placera objekt på dem nödvändigt, eftersom många små misstag i ledningar eller setup kan förhindra att en liten sensor läsa alla värden på alla. Vi använde denna debug-kod att diagram våra sensormätningar och sedan bestämma vilken tryck sensortyp vi ska använda. Vi upptäckte att den hemlagade sensorer gjorde betydligt värre i konsekvent läsa viktförändringar.
I Arduino koden sätter vi combo i installationsprogrammet. I loop funktion satt vi värdena som de aktuella värdena för sensorerna. Om dörren är olåst, satt vi combo till värden. Vi jämför sedan combo till de aktuella värdena med en jämförelse funktion. Vi hittade det kvadratiska medelvärdet fel (RMSE) arbetat brunn (wikipedia ). För att göra detta, vi tog det absoluta värdet av skillnaden mellan combo för skala jag och värdet för skala jag (e.. g abs(combo[i]-value[i]) och dividerat med combo för skala jag. Vi fyrkant och sammanfattade dessa fel och sedan tog kvadratroten ur summan. RMSE gör ett mycket bra jobb på öka stora fel och minska effekten av små fel. Objekt som placeras och bort från vår sensorer gör stora förändringar i vårt fel att göra RMSE perfekt. Små fel på grund av olika luftfuktighet och olika andra miljöeffekter minimeras också när du använder RMSE.
Vi jämförde detta fel till ett värde av potentiometer vredet som kontrollerade det största felet. Om felet var konsekvent mindre för en halv sekund, olåst vi dörren med servo. De små lysdioderna anges aktuella felet var mindre än max, som det ljusa LED anges att dörren var låst eller olåst.
Bearbetning grafen användes att observera aktuella värden för variabler i Arduino koden. Vi använde ett enkelt protokoll för att skicka meddelanden över den seriella porten. Exempelvis anges 'COMBO < port >< värde >' kombination nuvärdet för porten. Vi visas dessa meddelanden som text i fönstret bearbetning. Dessutom diagram vi värdena av skalor över tid och felvärde över tiden.