Kirjoittaja Aihe: DIY: halpa arduino simstick  (Luettu 4566 kertaa)

Poissa Speedy

  • Jäsen 2024
  • *****
DIY: halpa arduino simstick
« : 04 Maaliskuu, 2013, 15:34:43 »
Olipa kerrankin viikonloppuna muutama tunti luppoaikaa, niin tuli siivoiltua tarvikelaatikoita jolloin löysin vanhan ylijääneen Arduino Mini Pron. Olen tässä jo pitkään ajatellut ostaa alkuperäisen simstickin, mutta kun ei ole olut mitään muuta tilattavaa ulkomaisista puljuista, niin ei ole simstickkiäkään viitsinyt pelkästään laittaa tilaukseen ja maksaa kymmenisen puntaa siitä postikuluja.

Tässä on osat mitä tähän halpaan simstickkiin tarvitaan:
- servo liittimiä (esim. http://www.hobbyking.com/hobbyking/store/__9639__Servo_Terminals_JR_Gold_Plated_10pairs_set_.html)
- servo johtoa (esim. http://www.hobbyking.com/hobbyking/store/__5491__Flat_26AWG_servo_wire_1mtr_R_O_B_.html)

...tai sitten jos ei halua juottaa liittimiä niin silloin valmiita servo jatkojohtoja voi myös käyttää (esim kaksi pussia näitä http://www.hobbyking.com/hobbyking/store/__20959__30CM_Servo_Lead_Extention_JR_with_hook_26AWG_5pcs_bag_.html)

- vastaanotin (esim. http://www.hobbyking.com/hobbyking/store/__11965__OrangeRx_R610_Spektrum_DSM2_6Ch_2_4Ghz_Receiver_w_Sat_Port_.html)

- 3.5mm stereo naaras liitin (Näitä saa vaikka mistä. Omani ostin hongkong tavaratalosta, kun muut paikat oli sunnuntaina kiinni)

- Ja sitten Arduino lauta. Itse tilasin aikanaan oman mini pron ebaystä (16MHZ 5V malli). Hintaa sillä oli jotain 5-6€ postikuluineen. Pitää kuitenkin huomata että tuo Mini pro ei sisällä usb liitäntää joten se tarvitsee erillisen usb to serial laitteen että koodin saa sen sisään. esim ebaystä "FT232RL USB to serial" hakusanalla löytyy noita edullisesti. Tietenkään ei ole pakko käyttää tuota mini prota, vaan esim Arduino Nano tai joku muu jossa USB liitin on jo valmiiksi rakennettua käy hyvin. Itse vain olen ostanut noita mini prota kun ne ovat todella pieniä ja yhdellä FT232RL:llä voi ladata koodit niihin kaikkiin.


Lauantai iltana sain ensimmäisen prototyypin simstickistä aikaiseksi. 3.5mm naaras liitintä en löytänyt mistään (vaikka olen varma että minulla jossain sellainen on jemmassa) joten jouduin tekemään "MacGyver" patentin ja laitoin kuulokkeiden mukana tulleen adapterin kiinni phoenixin 3.5mm liittimeen ja siihen teipillä simstickistä tulevat johdot kiinni:
« Viimeksi muokattu: 04 Maaliskuu, 2013, 15:48:49 kirjoittanut Speedy »

Poissa Speedy

  • Jäsen 2024
  • *****
Vs: DIY: halpa arduino simstick
« Vastaus #1 : 04 Maaliskuu, 2013, 15:36:59 »
Johdotus on yksinkertaista. Vastaanottimeen tulee kuusi liitintä joista kaikista paitsi yhdestä lähtee yksi johto. Tämä on JR tyyppisissä servoliittimissä se ylin eli signaalijohto. Yhdestä liittimestä lähtee myös jännite ja maa johdot. Jännite menee Arduinon VCC liitäntään ja maa tietenkin Arduinon GND liitäntään. Signaalijohdot 6kpl menevät Arduinon 2-7 liitäntöihin.
Phoenixin kaapelille lähtevät johdot lähtevät Arduinon 10 liitännästä ja GND liitännästä. GND menee 3.5mm liitännän runkoon eli siihen takaosaan ja se signaali joka lähtee sieltä Arduinon 10 liitännästä menee sen 3.5mm liitännän kärkeen.

Tässäpä valmis tuote teipattuna vastaanottimeen:

Poissa Speedy

  • Jäsen 2024
  • *****
Vs: DIY: halpa arduino simstick
« Vastaus #2 : 04 Maaliskuu, 2013, 15:40:38 »
Tämä ei tietenkään toimi ilman sähköä. Alkutesteissä käytin säädettävää virtalähdettä ja BECciä, mutta pitemmän päälle se ei ole järkevää joten tein vanhasta ylijääneestä USB kaapelista vastarille virta kaapelin. Arduinohan saa virtansa sen kanavan kautta jossa on jännite ja maa johdot.

Poissa Speedy

  • Jäsen 2024
  • *****
Vs: DIY: halpa arduino simstick
« Vastaus #3 : 04 Maaliskuu, 2013, 15:46:30 »
Ajattelin myös julkaista tuon softan. Osia siitä on kopioitu eri projekteista. Vastaanottimen PWM signaalien lukuun käytin keskeytyksiä ja ulostulevan PPM signaalin generointiin timeriä. Itse en ainakaan huomannut että tuo toisi mitään tuntuvaa viivettä ohjauksiin, mutta koska tuo softa on äkkiseltään koodattu niin sitä saa muokata ja parantaa  ;)

Poissa LoneWolf

  • Pro torppari
  • ****
Vs: DIY: halpa arduino simstick
« Vastaus #4 : 12 Maaliskuu, 2013, 11:29:43 »
Mielenkiintoista nähdä muiden versioita tutusta aiheesta, löysin koodistasi kyllä heti ainakin yhden bugin:

Koodia: [Valitse]
    // re enable other interrupts at this point, the rest of this interrupt is
    // not so time critical and can be interrupted safely
    sei();
    // we memorize the current state of all PINs [D0-D7]
    PCintLast = pin;

Näiden järjestys pitäisi vaihtaa, muuten jos keskeytyksiä on "pendaamassa" voidaan nestata toinen keskeytyskäsittely ennen PCintLast:n päivitystä ja tämä johtaa virheelliseen dataan. Sinänsä SEI:tä seuraava käsky suoritetaan aina ennen seuraavaa keskeytystä, mutta kääntäjä todennäköisesti generoi tuosta "PCintLast = pin;" -statementista enemmän kuin yhden käskyn jolloin voi käydä hassusti.

Myös kommentti "can be interrupted safely" ei ole aivan 100% pitävä, sillä jos sama pinni vaihtaisi tilaa niin nopeasti että tulisi toinen pinchange-keskeytys edellistä vielä käsitellessä tuloksena olisi korruptoitunutta dataa, mutta sen ei pitäisi toki olla mitenkään mahdollista edes suunnilleen valideilla PWM-inputeilla...

Kannattaa huomata että se aika jonka keskeytykset ovat disabloituna määrää suoraan worst-case resoluution, omassa ratkaisussani päädyin vain lukemaan pinnien tilan ja timestampin ja tunkemaan ne bufferiin jota käsitellään keskeytyskäsittelijän ulkopuolella "silloin kun ei ole kiire". Koodin julkistan kuhan ehdin testaamaan että se kanssa toimii...

Poissa Speedy

  • Jäsen 2024
  • *****
Vs: DIY: halpa arduino simstick
« Vastaus #5 : 03 Huhtikuu, 2013, 14:26:55 »
En lähtenyt pyörää uudelleen keksimään, vaan tuo interrupt handleri on aikalailla suora kopio multiwii kopterin interrupt handlerista  ::)
Joten luulisi että tuota on testattu hyvin eikä tuo SEI:n paikka vaikuta tai multiwiit olisivat tippuneet taivaalta  ;)

Sellaista asiaa olen miettinyt että tuo "simstickki" tekee nykyään kokoajan sitä PPM pulssia tuolle Phoenixin palikalle kun tietokone on päällä riippumatta siitä simutanko vai en (koska Phoenixin johto ja simstick on aina kiinni tietokoneessa pöydän takana). Niin onkohan tuosta mitään haittaa tuolle phoenixin palikalle, vai pitäisikö koodata jonkin sortin sleeppi joka lopettaa PPM pulssien lähettämisen kun vastarilta ei tule riittäviä muutoksia tiettyyn aikaan.

 

Vastaavat aiheet

  Aihe / Aloittaja Vastauksia Uusin viesti
34 Vastauksia
16582 Lukukerrat
Uusin viesti 26 Joulukuu, 2011, 18:08:31
kirjoittanut Iski
5 Vastauksia
3601 Lukukerrat
Uusin viesti 19 Tammikuu, 2011, 00:51:15
kirjoittanut Puhi
3 Vastauksia
2751 Lukukerrat
Uusin viesti 25 Maaliskuu, 2012, 09:01:02
kirjoittanut mrsaila
0 Vastauksia
1930 Lukukerrat
Uusin viesti 24 Helmikuu, 2015, 21:49:16
kirjoittanut petrim
8 Vastauksia
11181 Lukukerrat
Uusin viesti 24 Joulukuu, 2015, 16:47:57
kirjoittanut mikek