Skocz do zawarto┼Ťci

Joystick Arduino - zapytanie


kisiel507

Pomocna odpowied┼║

Witam. ­čÖé

Na forum jestem od dawna, ale dopiero teraz postanowi┼éem co┼Ť napisa─ç. Tak jak w temacie moje zapytanie b─Ödzie dotyczy┼éo joysticka do arduino. Zakupi┼éem ostatnio kilka do sterowania moim projektem (jak uko┼äcz─Ö, to oczywi┼Ťcie wstawi─Ö na forum ) i chcia┼ébym si─Ö dowiedzie─ç, czy mo┼╝e kto┼Ť pr├│bowa┼é, albo gdzie┼Ť s┼éysza┼é czy mo┼╝na ten joystick przerobi─ç tak, aby on nie odbija┼é, tzn. ┼╝eby pozostawa┼é w ostatnim po┼éo┼╝eniu i nie wraca┼é do punktu centralnego??

Czekam na odpowiedzi i pomoc ­čśë

Link do komentarza
Share on other sites

Tylko tak si─Ö zastanawiam, czy jak zdejm─Ö t─ů metalow─ů obudowe to mi si─Ö to wszystko nie wysypie tak, ┼╝e nie b─Öd─Ö p├│┼║niej wiedzia┼é co do czego.

Link do komentarza
Share on other sites

mo┼╝esz spr├│bowa─ç to ograniczy─ç programowo do ostatniego stanu sczytanego z joysticka (zapisywanie stanu w jakiej┼Ť zmiennej), wydaje mi si─Ö, ┼╝e podobny problem by┼é gdzie┼Ť poruszany na forum

Link do komentarza
Share on other sites

Zarejestruj si─Ö lub zaloguj, aby ukry─ç t─Ö reklam─Ö.
Zarejestruj si─Ö lub zaloguj, aby ukry─ç t─Ö reklam─Ö.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i monta┼╝ PCB - wybierz sprawdzone PCBWay!
┬á┬á ÔÇó Darmowe p┼éytki dla student├│w i projekt├│w non-profit
┬á┬á ÔÇó Tylko 5$ za 10 prototyp├│w PCB w 24 godziny
┬á┬á ÔÇó Us┼éuga projektowania PCB na zlecenie
┬á┬á ÔÇó Monta┼╝ PCB od 30$ + bezp┼éatna dostawa i szablony
┬á┬á ÔÇó Darmowe narz─Ödzie do podgl─ůdu plik├│w Gerber
Zobacz r├│wnie┼╝ ┬╗ Film z fabryki PCBWay

Joy to nie przycisk, bez przer├│bki mechanicznej to b─Ödzie trudno, bo przecie┼╝ nie wiadomo kiedy stan ma by─ç zapami─Ötany a kiedy nie. Mo┼╝e jaki┼Ť dodatkowy przycisk "wyzwalaj─ůcy" ┼Ťledzenie lub po puszczeniu - "zamra┼╝aj─ůcy" aktualne po┼éo┼╝enie joysticka mimo jego powrotu do neutrum?

Je┼Ťli joystick ma s┼éu┼╝y─ç do pozycjonowania jakiego┼Ť mechanizmu, to mo┼╝e zmie┼ä spos├│b sterowania na taki, by wychylanie powodowa┼éo przesuw - im g┼é─Öbiej wychylisz tym szybciej co┼Ť si─Ö przemieszcza a gdy pu┼Ťcisz i joystick powr├│ci do pozycji neutralnej to mechanika zostaje w aktualnym po┼éo┼╝eniu. Gdy chcesz powr├│ci─ç, przechylasz w drug─ů stron─Ö.

Napisz co to b─Ödzie za urz─ůdzenie, mo┼╝e jeszcze co┼Ť komu┼Ť przyjdzie do g┼éowy. Z drugiej strony joystick to nie stary budzik - bez przesady, jego rozmontowanie raczej nie spowoduje wybuchu setki element├│w po pokoju.

Joystick zostaj─ůcy (bez spr─Ö┼╝ynek) jest stosowany np. w nadajnikach RC do zdalnego sterowania modeli. Tam gaz (obroty silnika samolotu) s─ů w┼éa┼Ťnie tak zrobione by nie trzeba by┼éo si┼éowa─ç si─Ö przez 20 minut ze spr─Ö┼╝ynk─ů, ale i tak wci─ů┼╝ trzymasz palce na dr─ů┼╝kach. Zostawianie go bez nadzoru nie jest dobrym pomys┼éem, bo ka┼╝dy powr├│t d┼éoni do dr─ů┼╝ka to lekkie przesuni─Öcie pozycji, szczeg├│lnie gdy nie patrzysz na r─Öce.

Link do komentarza
Share on other sites

Mialyby one sluzyc do sterowania manipulatorem. Pomysl z predkoscia zaleznie od wychylenia joya jest ciekawy tylko nie bardzo wiem jakby to rozwiazac w programie ­čśë

Pomysl z przyciskiem tez na pewno zostanie wykorzystany ale do jednej dodatkowej funkcji.

Link do komentarza
Share on other sites

kupiłem dokładnie taki:

Joystick analogowy z przyciskiem dla Arduino FV GW

tresspasser

http://allegro.pl/joystick-analogowy-z-przyciskiem-dla-arduino-fv-gw-i4684826653.html

Edit:

dodam, ┼╝e uda┼éo mi sie roz┼éo┼╝y─ç ten joystick i wyj─ů┼Ť─ç z niego t─ů spr─Ö┼╝ynke. nie by┼éo ┼éatwo ale si─Ö uda┼éo i dzia┼éa tak jak chcialem ­čśë

Link do komentarza
Share on other sites

problem z joystickami jak na razie odszed┼é na bok ­čśë

teraz pojawił się zupełnie inny problem.

ot├│┼╝ tak:

napisa┼éem program do obs┼éugi serw za pomoc─ů ty joystick├│w i dzieje si─Ö dziwna rzecz, a mianowicie serwa g┼éupiej─ů, tzn. ca┼éy czas dr┼╝─ů, a gdy przestawi─Ö joystick(max. warto┼Ť─ç oporu) to tylko wtedy serwo ustawia si─Ö na max kat.

na lcd wy┼Ťwietla mi aktualny kat po┼éo┼╝enia serwa i tam to si─Ö cuda dziej─ů: cyfry zmieniaj─ů si─Ö jak szalone ­čśâ

poni┼╝ej wstawiam kod programu i prosz─Ö o jak─ů┼Ť pomoc.

#include

#include

LiquidCrystal lcd(32 ,30 ,28 ,26 ,24 ,22);

const int servo1 = 2;

const int servo2 = 3;

const int servo3 = 4;

const int servo4 = 5;

const int servo5 = 6;

const int servo6 = 7;

const int servo7 = 8;

const int servo8 = 9;

const int servo9 = 10;

const int servo10 = 11;

const int joyX1 = 0;

const int joyY1 = 1;

const int joyX2 = 2;

const int joyY2 = 3;

const int joyX3 = 4;

const int joyY3 = 5;

int servoVal;

Servo myservo1;

Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

Servo myservo6;

Servo myservo7;

Servo myservo8;

Servo myservo9;

Servo myservo10;

void setup() {

myservo1.attach(servo1);

myservo2.attach(servo2);

myservo3.attach(servo3);

myservo4.attach(servo4);

myservo5.attach(servo5);

myservo6.attach(servo6);

myservo7.attach(servo7);

myservo8.attach(servo8);

myservo9.attach(servo9);

myservo10.attach(servo10);

lcd.begin(16, 2);

lcd.clear();

lcd.setCursor(4,0);

lcd.print("Pozycja");

lcd.setCursor(0,1);

lcd.print("Serwomechanizmow");

delay(3000);

lcd.clear();

}

void loop(){

//obr├│t

servoVal = analogRead(joyX1);

servoVal = map(servoVal, 0, 1023, 0, 10);

myservo1.write(servoVal);

lcd.setCursor(0,0);

lcd.print("I: ");

if (servoVal<100) lcd.write('0');

if (servoVal<10) lcd.write('0');

lcd.print(servoVal);

//koniec obrotu

//Pierwsza o┼Ť

servoVal = analogRead(joyY1);

servoVal = map(servoVal, 0, 1023, 0, 160);

myservo2.write(servoVal);

servoVal = analogRead(joyY1);

servoVal = map(servoVal, 0, 1023, 160, 0);

myservo3.write(servoVal);

lcd.setCursor(8,0);

lcd.print("II: ");

if (servoVal<100) lcd.write('0');

if (servoVal<10) lcd.write('0');

lcd.print(servoVal);

//Koniec Pierwsza o┼Ť

//Druga o┼Ť

servoVal = analogRead(joyX2);

servoVal = map(servoVal, 0, 1023, 0, 160);

myservo4.write(servoVal);

servoVal = analogRead(joyX2);

servoVal = map(servoVal, 0, 1023, 160, 0);

myservo5.write(servoVal);

lcd.setCursor(0,1);

lcd.print("III: ");

if (servoVal<100) lcd.write('0');

if (servoVal<10) lcd.write('0');

lcd.print(servoVal);

//Koniec Druga o┼Ť

//Trzecia o┼Ť

servoVal = analogRead(joyY2);

servoVal = map(servoVal, 0, 1023, 0, 160);

myservo6.write(servoVal);

servoVal = analogRead(joyY2);

servoVal = map(servoVal, 0, 1023, 160, 0);

myservo7.write(servoVal);

lcd.setCursor(9,1);

lcd.print("IV: ");

if (servoVal<100) lcd.write('0');

if (servoVal<10) lcd.write('0');

lcd.print(servoVal);

//Koniec Trzecia o┼Ť

//Obr├│t chwytaka

servoVal = analogRead(joyX3);

servoVal = map(servoVal, 0, 1023, 0, 160);

myservo8.write(servoVal);

//Koniec Obr├│t chwytaka

//Chwytak

servoVal = analogRead(joyY3);

servoVal = map(servoVal, 0, 1023, 0, 160);

myservo9.write(servoVal);

servoVal = analogRead(joyY3);

servoVal = map(servoVal, 0, 1023, 160, 0);

myservo10.write(servoVal);

//Koniec Chwytak

delay(15);

}

Link do komentarza
Share on other sites

Do┼é─ůcz do dyskusji, napisz odpowied┼║!

Je┼Ťli masz ju┼╝ konto to zaloguj si─Ö teraz, aby opublikowa─ç wiadomo┼Ť─ç jako Ty. Mo┼╝esz te┼╝ napisa─ç teraz i zarejestrowa─ç si─Ö p├│┼║niej.
Uwaga: wgrywanie zdj─Ö─ç i za┼é─ůcznik├│w dost─Öpne jest po zalogowaniu!

Anonim
Do┼é─ůcz do dyskusji! Kliknij i zacznij pisa─ç...

×   Wklejony jako tekst z formatowaniem.   Przywr├│─ç formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Tw├│j link b─Ödzie automatycznie osadzony.   Wy┼Ťwietla─ç jako link

×   Twoja poprzednia zawarto┼Ť─ç zosta┼éa przywr├│cona.   Wyczy┼Ť─ç edytor

×   Nie mo┼╝esz wklei─ç zdj─Ö─ç bezpo┼Ťrednio. Prze┼Ťlij lub wstaw obrazy z adresu URL.

×
×
  • Utw├│rz nowe...

Wa┼╝ne informacje

Ta strona u┼╝ywa ciasteczek (cookies), dzi─Öki kt├│rym mo┼╝e dzia┼éa─ç lepiej. Wi─Öcej na ten temat znajdziesz w Polityce Prywatno┼Ťci.