Hand Held PC (3 / 3 steg)

Steg 3: Tweaks & provning



Ardunio klon hade inte någon starthanterare så jag var tvungen att få den gamla trogna GQ4-X programmeraren och blixtrade klon men ICSP hamnen.

Arduino micro klonen jag hade hade inte funktionaliteten i ändra usb funktion än en seriell port emulering så jag var tvungen att skriva två program i stället för en.

Arduino programmet i princip fångar knappar och analog pinne och skickar data via seriell

Analog X -> A0

Analogt -> A1

Andra knappar D0 <> - D8

Här är koden för mikro

Dessa konstanter ändras inte. De är vana att ge namn < br > / / till stiften används:
CONST int analogInPinY = A0; Analog ingång pin som potentiometern är kopplad till
CONST int analogInPinX = A1; Analog ingång pin som potentiometern är kopplad till
int outputValueY = 0; värdet utdata till PWM (analog utgång)
int outputValueX = 0; värdet utdata till PWM (analog utgång)
int centreY = 0; Kalibrera
int centreX = 0; Kalibrera
int Ypos = 0;
int TempY = 0;
int NegY = 0;
int Xpos = 0;
int TempX = 0;
int NegX = 0;

konstanter ändras inte. De används här till
Ange pin-koder:
CONST int buttonup = 2; numrera av tryckknapp PIN-koden
CONST int buttonright = 3; numrera av tryckknapp PIN-koden
CONST int buttonleft = 4; numrera av tryckknapp PIN-koden
CONST int buttondown = 5; numrera av tryckknapp PIN-koden
CONST int buttonDiamond = 9; numrera av tryckknapp PIN-koden
CONST int buttonTriangle = 8; numrera av tryckknapp PIN-koden
CONST int buttonRed = 7. numrera av tryckknapp PIN-koden
CONST int buttonYellow = 6;
CONST int buttonAnalog = 10;
CONST int buttonMode = 11;
CONST int ledPin = 13. antal LED stift
CONST int led2Pin = A2;
variabler som ändras:
int dirState = 0; variabel för att läsa tryckknapp status
int buttonState = 0; variabel för att läsa tryckknapp status
int CTX;
int AnalogNegs = 0;
int PadMode;
int Fader = 0;
int FaderDir = 0;

void setup() {
Serial.BEGIN(19200);
initiera LED stift som en utgång:
pinMode (ledPin, produktionen);
pinMode (led2Pin, produktionen);

initiera tryckknapp PIN-koden som indata:
pinMode (buttonup, INPUT_PULLUP);
pinMode (buttondown, INPUT_PULLUP);
pinMode (buttonleft, INPUT_PULLUP);
pinMode (buttonright, INPUT_PULLUP);
pinMode (buttonTriangle, INPUT_PULLUP);
pinMode (buttonDiamond, INPUT_PULLUP);
pinMode (buttonYellow, INPUT_PULLUP);
pinMode (buttonRed, INPUT_PULLUP);
pinMode (buttonAnalog, INPUT_PULLUP);
pinMode (buttonMode, INPUT_PULLUP);
CTX = analogRead(analogInPinX);
centreY = map(analogRead(analogInPinY), 0, 1023, 0, 254);
centreX = map(analogRead(analogInPinX), 0, 1023, 0, 254);
Callib;}

void Callib() {
FÖRSÖK! Kalibrera centrum
centreY = map(analogRead(analogInPinY), 0, 1023, 0, 254);
centreX = map(analogRead(analogInPinX), 0, 1023, 0, 254); }

void loop() {
Läs statligt av tryckknapp värdet:

outputValueY = map(analogRead(analogInPinY), 0, 1023, 0, 254);
outputValueX = map(analogRead(analogInPinX), 0, 1023, 0, 254);
Ypos = 0;
NegY = 0;
TempY = (outputValueY - centreY);
om (TempY > 5 || TempY < -5) {
digitalWrite (ledPin, hög);
NegY = TempY < -5;
Ypos = TempY & 254;
};

Xpos = 0;
NegX = 0;
TempX = (outputValueX - centreX);
om (TempX > 5 || TempX < -5) {
digitalWrite (ledPin, hög);
NegX = TempX < -5;
om (TempX <-83) {TempX = -84;}
om (TempX > 83) {TempX = 84.}
Xpos = TempX & 254;
};
Serial.println(TempX);
Serial.println(Xpos);
dirState = 0;

dirState | = (digitalRead(buttonup) ^ 1) << 0;
dirState | = (digitalRead(buttondown) ^ 1) << 1.
dirState | = (digitalRead(buttonleft) ^ 1) << 2.
dirState | = (digitalRead(buttonright) ^ 1) << 3.

buttonState = 0;
buttonState | = (digitalRead(buttonTriangle) ^ 1) << 0;
buttonState | = (digitalRead(buttonDiamond) ^ 1) << 1.
buttonState | = (digitalRead(buttonYellow) ^ 1) << 2.
buttonState | = (digitalRead(buttonRed) ^ 1) << 3.
buttonState | = (digitalRead(buttonAnalog) ^ 1) << 4.
int d = (digitalRead(buttonMode) ^ 1);

om (PadMode > 0) {
Delay(30);
digitalWrite (led2Pin, hög);}

annat {
digitalWrite (led2Pin, låg);
}
om (PadMode = 0) {analogWrite (A2, 0);}
om (d > 0) {
PadMode = (PadMode ^ 1);
/ / PadMode = 1;
digitalWrite (A2, hög);}
returnera;}

medan ((digitalRead(buttonMode) ^ 1) > 0) {
{} delay(3);}

buttonState | = PadMode << 5.

AnalogNegs = NegX << 0;
AnalogNegs | = NegY << 2.

Serial.write(0xFF); Sync
Serial.write(dirState);
Serial.write(buttonState);
Serial.write(AnalogNegs);
Serial.write(Xpos);
Serial.write(ypos);

Kontrollera om tryckknappen trycks.
om det är, är buttonState hög:
om (dirState > 0 || buttonState > 0) {
Aktivera LED:
digitalWrite (ledPin, hög);
analogWrite (A2, 20);
}
annat {
Inaktivera LED:
digitalWrite (ledPin, låg);
Callib;
Delay(3);
}
Delay(2);
}

Jag har använt en sync byte för att synkronisera seriella data till programmet FreeBasic. Jag lade också till en LED som sitter i knappen i mitten som används som en Mode-knappen för att ge ytterligare ett lager av kontroll.

FreeBasic programmet konverterar den seriella data från Arduino in till tangentbordet tangenttryckningar, det körs vid start av windows som en bakgrundsaktivitet.

Tack vare Ben Heck för inspiration!

Se Steg
Relaterade Ämnen

Hur man ändrar bältet på en Hand Held bandslip

i detta instructable jag ska visa dig hur du ändrar bältet på en bandslip. Det är snabbt, enkelt och smärtfritt.Du behöver:En Hand Held bandslipEn ersättare bälte av rätt storlek för din sander.Som ni kan se på bilden, bältet är inte i toppklass, del...

Hand Held Bottle Rocket Launcher

jag har gjort många olika raketer men de flesta inte hålla lufttrycket under en lång tid. Denna raket design kan hålla högt lufttryck under mycket lång tid. Hur den fungerar är genom att bygga upp lufttrycket i tanken när du är redo du släpper trycke...

Hand Held Ballista

vi bygger en vridning drivs båge (Ballista) för vårt belägring motor projekt. Det är som en kula armborst, med möjlighet att avfyra bultar med hjälp av ett flyttbart spår. Vår plan är att bygga den för att passa inom specifikationerna för våra 18 x 1...

Grundläggande Hand Held Radio hacka för en motorcyklist.

Som en del av vår industriella designmodul i universitet vi fick korta av hacking en grundläggande handhållen radio (sony icf-s22) med om att utforma en radio för en specifik användare. Jag valde att utforma en styrstång monterad radio för en motorcy...

Bärbar Hand Held telefonladdare

Steg 1: Få dina grejer ihop Vad du behöver:9 volt DC batteriBärbar laddareKabel för laddningVad du ska ta utOch en fjärdedelSteg 2: Första steget Detta kommer att vara den kortaste instruera kan du någonsin läst. Det är så lätt och roligt att visa al...

Hand Held plan - konvertera till Mini rikthyvel

ett enkelt sätt att konvertera en elektrisk plan i en liten rikthyvel - bra för efterbehandling relativt små bitar av timmerSteg 1: Layout och bygga Ungefär mäta ditt plan och tillskuret timmer (eller i detta fall MDF). Syftet är att skapa en u-forma...

Den enklaste Hand Held värmare

detta instructable kommer att lära dig att göra något som är helt enkelt en värmare som fungerar med el som bedrivs.Steg 1: Skaffa material Material är enkel. Om du inte tror mig, bör du se själv.Material:1xBattery1xLarge bit aluminiumfolieSteg 2: Ce...

Early Bird fångster Worm skördare

jag är en vermicomposter och som de säger "behöver spurs uppfinning" de är korrekta. Jag var gravid då jag skapat detta UPCYCLED projekt när jag inte kunde böja sig för lång tid att skörda min gjutgods. Jag var i min källare står där som önskar...

Game Boy 3.5mm Pro Sound DIY

IntroductionPro sound är en enkel modifiering som ger tydligare och starkare ljud via en 3.5mm audio out-uttag. Kunskapsnivån är grundläggande och är bra för nybörjare:MaterialUrsprungliga Game Boy DMG40W lödkolv28 gauge elektrisk tråd3.5mm ljudutgån...

Game Boy bakgrundsbelysning | Hur man installerar | Game Boy DMG

Kontrollera ut oss på Gilla oss på Facebook eller följ oss på twitter. Mer Game Boy och handhållna Installationsinstruktioner finns våra instruktioner sida.IntroduktionLägga en bakgrundsbelysning till du är game boy en av de enklaste, mest effektiva...

Bästa av 2009: bästa i varje kategori

För att fira slutet av året vi tittat redan på top 50 listor för kommentarer, åsikter och betyg, men denna gång ska vi bryta ner efter kategori. Nedan är den topp 10 listan för varje kategori i form av åsikter.Naturligtvis innebär är populära absolut...

DIY-Hur man gör trådlösa hörlurar

/ * * /När jag var liten, tänka jag brukar hur dessa trådlösa hörlurar arbete. Vad magi gör dem arbeta! Men nu hade jag listat ut ett enkelt sätt att göra en med din egen gamla (Plug-on hörlurar) en trådlös ett. Även om det fungerar genom att ansluta...

Game Boy LED DIY

Byta LED färg på din ursprungliga spel pojke DMG. Besök Hand Held Legend mer.MaterialTri-wing skruvmejselLödkolv/löda3mm lysdioder (diffus)2K ohms motståndLöda wickInstruktionerÖppna din Game Boy genom att ta bort 6 tri-wing skruvarna på baksidan. Oc...

Game Gear bakgrundsbelysning DIY

Anpassade Game Gear bakgrundsbelysning installationsanvisning (tack Jeff!) Hitta din bakgrundsbelysningen på HandHeldLegend.comHej klassiska gamers! Grattis till ditt köp av Hand Held Legend anpassade Game Gear bakgrundsbelysning modifiering. Följand...

Hur man gör en SD-kort förlängning

jag har letat efter en SD-kort förlängning ett tag nu. Det finns inte många tillgängliga och de som är till salu är ganska dyrt.Så jag kommer att göra min egen!Jag är en elektroingenjör workshop bänk av dag och en av mina specialiteter är Hand Held t...

Handgjord, ostbricka & ost kniv

Som inte älskar ost! Med ett så brett spektrum av smak, färg och konsistens ost är en av världens mest dekadenta livsmedel som alltid är en stapelvara på familjen händelser eller social få sammankomster. Du kan koppla ihop det med veggie, vin, öl, kö...

Steampunk lampa Raygun

Industriella steampunk lampa raygun. Denna pistol/lykta skiljer sig varje gång den är byggd, beroende på tillverkaren. Men med ett lager leksakspistol, glödlampa uttag med brytare och några prylar lagt till att det ser cool, kan du ha din egen.Om du...

Brygga vattenkokare Keg (Keggle)

om du vill starta ölbryggning eller kliva från 20 quart potten du har använt, är detta Instructable för dig. En keggle är stora fartyg för att värma din brygga och kan erhållas för ett relativt lågt pris. De flesta kaggar 15 gallon kapacitet gör det...

Hur man bästa ren telefonen, tablett eller annan elektronisk enhet

det finns några sätt att rengöra enheten. Microfiber rengöring klistermärke, är sanitizing spray och cyberclean några bra metoder som inte kommer att skada din telefon. Följande instructable kommer att förklara hur och fördelarna med varje metod.Micr...