Etch-i-Sketch (4 / 4 steg)
Steg 4: klar! Sista handen, kod och framtiden.
Cypress erbjuder några olika sätt att programmera denna sak, men vill du antagligen MiniProg USB programmerare. Använda den med programmering huvudet vi sätta på (med det sätt vi beställde stiften, hålla framsidan uppåt.
Håll ögonen öppna--jag kommer distribuera koden så snart det är rensade upp lite, gjorde presentabel och lättläst. Under tiden är den hex filen för en "demo" app bifogat nedan. Detta enkla program körs först genom en skärmkalibrering rutin--det kommer spåra runt kanten av skärmen. När det lägger sig i det övre vänstra hörnet, tryck och håll det pekar stadigt. Upprepa med det nedre högra hörnet när det lägger sig där. Etsare återgår till det nedre vänstra. När detta är gjort, spår någonstans på skärmen och etsare kommer att dra det. Observera att varvtal är vände en hel del just nu... Björn med det. Det bör inte missa något av dina rörelser hur som helst, bara ge det en chans att hänga.
Jag ska gå över vissa funktioner som är redo eller kommande snart, men inte presenterade i denna demo:
Raw crud bakom de flesta allt (och något för ivriga utvecklare att börja tänka på) är ett par C funktioner--en poll pekskärmen och tillbaka staten (berört eller inte) och koordinater (översatt med hjälp av kalibreringsdata till stepper position) för att touch. Den andra är funktionen att driver stegmotorer--argumenten är målet X och Y koordinater. Etsare kommer att gå i en rak linje till punkten. Motorn som behöver resa längst avstånd får högsta hastighet, medan hastigheten på den långsammare motorn är scalled proportionellt till lutningen på linjen måste resa över. Men ännu inte rent genomförts, det finns bestämmelser för att ändra är dessa hastigheter även i motorerna i rörelse. Utvecklaren har tillgång att etsare, aktuella position också.
Det finns ett allmänt meny/undermenyn system, med alternativ färg, spel eller program, och alternativ. Alternativ tillåter användaren att kalibrera om skärmen blir skiftade lite eller något (Ja, jag inser att detta innebär behöver användaren en tillförlitlig pekskärm för att göra pekskärmen tillförlitliga, det blir "akuta" sätt på boot-up). Kalibrering sparas normalt i den PSoC interna Flash, så inställningen sparas när enheten är avstängd.
Programmet paint liknar det som sett i demos, men med fler alternativ. Användare kan ladda/spara ritningar till och från EEPROMs. Just nu, detta är det enda användningsområdet för dessa marker--håller ett ständigt håller en logg över ingångarna. Om det blir strömavbrott, kan användaren återställa från säkerhetskopian. Annars, när användaren väljer att spara, detta kopieras till en av de andra EEPROMs. En "ladda" operation spår ut en sparad uppsättning ingångar så snabbt som möjligt--användaren kommer att få en kopia (aluminium?) av en bild som han eller hon har tidigare dragit att de ytterligare kan redigera.
Spel/apps är lite begränsad just nu. Jag återvunnet typ av lite kod från ett annat projekt att tillåta vissa fast punkt trig för några grundläggande 2D speldesign grejer. Det finns några pong-ish bollen studsande demos/tester och whatnot från och med nu.
Jag vill fortfarande att sätta i en slags standardiserad text-ritning system (en programvara tangentbord skulle vara praktiskt för vissa saker, också).
Hur som helst, det finns en hel del utrymme för framtida förbättringar för både hårdvara, alltför.
Du kanske har plockat upp på en av de... inconviences förknippas med denna högteknologiska skärm. Radera är lite av en röra. Enheten är inte mycket gynnsamt att skaka just nu, men ett X dras över skärmen när den behöver rensa. Användaren då... um... manuellt åsidosätter bild element staten och sedan vidrör skärmen någonstans och programmet fortsätter, i vad som behövs. I framtiden hårdvara versioner, jag hoppas att automatisera eller åtminstone rationalisera radering.
Uppenbarligen finns det en andra "funktion" som kan vara att hålla vissa människor från att hoppa från LCD-skärmar till denna nya teknik (människor som förtrogenhet, antar jag), och det är det faktum att etsare kan aldrig lyfta utanför skärmen. Medan ett stort fokus i denna version var att hålla Etch-A-Sketch oförfalskad, i framtida versioner, jag planerar att flytta några av prylar inuti. En sak som jag hoppas kunna göra är att byta lager etsare med en ny doodad med en elektromagnet och en fjäder, så denna "funktion" kan inaktiveras genom att de inte är redo att omfamna framtidens. Det skulle fungera mycket mer som en traditionell vektor display, med inte bara X och Y position kontroll, men en "beam" Aktivera/inaktivera (touch/release) också.
En annan förändring vill jag göra när öppnar som ersätter panelen Lager glas i etch-a-sketch med glas-stödda pekskärmen själv. Ingen aning om hur bra eller dåligt det kommer att gå.
Något annat som måste ändras är det faktum att denna sak inte kan auto-center vid start. Det är rent oreglerade just nu, så det bygger på att vara manuellt återställas av användaren till det nedre vänstra hörnet av skärmen innan uppstart.
Jag använde bara en bänkmonterade leverans för att testa, men för denna sak vara livskraftiga som en bärbar plattform, det behöver ett batteri (okej, så en ganska biffiga en) och integrerad laddning krets.
Helst skulle jag vilja ersätta EEPROMs med ett SD-kort.
Och om vi verkligen menar allvar konkurrera med Apple, denna sak uppenbarligen behöver GPS, 3G och Wi-Fi också. Japp.
Hur som helst, sära jag erbjuda dessa verkligen usel par-sekund långa klipp av tester från under utveckling, teasers för vad som väntar, som jag tog med den enda kameran jag har tillgängliga (jag är ledsen, verkligen!)
Oavsett, killar, ha kul! Jag ser fram emot att arbeta med dig! Håll i ditt hjärta bild av dagen där varje trendiga individ bär på en av dessa dåliga pojkar runt!