DinoCalc Version 1.0 (1 / 40 steg)
Steg 1: "Hur äter du en elefant?"
Tips: även ett litet projekt kan vara överväldigande och riskerar inte att vara färdig om du försöker och gör alltför mycket på en gång. I stället fastställa vissa mål och riktlinjer och arbete för att möta dem ett steg i taget. Du kommer må bättre efter varje prestation och det bidrar till att förhindra att projektet likvidation i några oavslutade förvaringsbox.
Vi har alla hört frågan om att äta en elefant en gång eller en annan och vi vet svaret, "En tugga i taget".
Jag har ofta varit skyldiga till ett projekt och sedan placera det oavslutade projektet i en låda eller på en hylla att samla damm eftersom antingen jag slår en "road block" eller bara överväldigade mig själv med att försöka göra alltför mycket på en gång. Ofta försöker jag äta elefanten i en tugga.
Denna gång bestämde jag mig att prova en annan strategi (plus jag lovat min fru jag skulle faktiskt avsluta något denna gång).
Så det första jag ställa ett antal mål för mitt projekt och jag bestämde mig att hålla sig till dem. Sedan delade jag alla mina mål in i två huvudgrupper: program - och maskinvara. När jag fick tid att arbeta med mitt projekt vill jag fokusera på ett mål och försöka att inte bli distraherad. Om jag kom med en idé som hörde hemma med ett annat mål, skulle jag skriva det så jag kunde se över min idé när jag arbetade på det särskilda målet. Om det var en idé som skulle vara trevligt att ha men egentligen hörde hemma i en framtida version (dvs, anpassade etsade PCB ombord, low driver funktionsläge, batteriladdning, etc) skulle jag skriva ner det i min anteckningsboken under "Framtidsmål". Detta sätt jag inte överväldiga mig själv genom att göra mitt projekt så stora att det skulle aldrig slutar växa och blir aldrig färdig. Min bärbara dator höll mitt projekt tillsammans.
Jag rekommenderar starkt du också hålla en bärbar dator att skriva ned dina experiment, referenser och även dina misslyckanden. Jag har lärt mig mycket, även från mina misslyckanden. Framgång består av går från misslyckande till misslyckande utan förlust av entusiasm.--Winston Churchill
HÅRDVARA
1) behöver för att kunna ställas in på en skärbräda för utvecklingsfasen programvara
Jag började med en knappsats, Arduino Uno och några LED. Jag använde detta bakbord setup tills min kod var klar.
2) Vad används under utveckling måste omsättas lätt till en prototyp produkt
Jag behövde något mindre då Uno och Arduino Pro Mini passa räkningen. Jag kunde använda mitt program som jag utvecklat på Uno och Arduino Pro Mini skulle vara liten nog att passa i "Sparkfun" skåpet jag tittade på. Jag tänkte på custom etsade PCB med bara en låg powered ATMega328P men bestämde mig för att sticka med min ursprungliga mål att använda "från hyllan" objekt och spara anpassade PCB för en framtida version.
3) måste vara lätt att hålla och fungerar med 4 års gammal fingrar
Jag sökte många olika kapslingar och var på väg att sätta sig på med "Sparkfun" kammaren när jag kan över Hammond inneslutningen med batterihållare. Det var precis vad jag tänkt.
4) måste vara tilltalande utseende så den 4 år gammal vill använda den
Min son älskar varma hjul, ödlor och dinosaurier. Så jag sökte runt tills jag hittade en dinosaurie ansikte som skulle skalas enkelt på framsidan av den handhållna inhägnad. Bilden hittades på: http://www.arthursclipart.org/dinosaurs/dinosaurs/page_02.htm
PROGRAMVARA
1) måste kunna upptäcka knapptryckningar från en knappsats
Första målet, jag behövde för att kunna berätta vilken knapp trycktes.
2) behöver för att kunna mata in knapptryckningar i variabler
Sedan behövde jag har min programmet lagra min knapptryckningar. Jag behövde för att kunna använda siffror större än bara enstaka siffror.
3) behöver för att kunna utföra addition eller subtraktion (multiplikation och division kan komma senare, sedan min son är endast 4 år gammal)
Med mitt program vet när du ska lägga till eller dra ifrån blev en utmaning. Och detta blev en stor utmaning när jag bestämde mig att ta med negativa tal. Om jag inte hade bröt min kod mjukvaruutveckling i "mindre" biter, detta kunde ha varit "road block" som skulle ha dödat detta projekt. Jag lägga till decimaltal i planeringen så att när jag lägger till division det redan kommer att vara där.
4) behöver för att kunna beräkna rätt svar och sedan jämföra den till svaret som gissade användarinmatad
Detta mål ledde till min upptäckt om begränsning av flytande antal math som löstes genom att jämföra det absoluta värdet av skillnaden mellan det rätta svaret och gissade svaret.
5) behöver för att kunna svara på användaren med ett rätt eller fel svar.
Ljus röd lysdiod för fel; Grön LED för rätt.
Så nu när du vet strategin jag tog, kan komma igång på att bygga din DinoCalc!