Robojuchen / Mechatronics2013

Demo
2 stars 4 forks source link

USB-host shield koodi ja kirjasto:RATKAISTU #38

Open enksai opened 10 years ago

enksai commented 10 years ago

Moikka!

Tulimme kokeilemaan USB Host Shieldiä koulun laina arduinoon(Nano). Kun olimme ladanneet kirjaston ohjelmaan, meille tuli ohessa oleva error-viesti. Onko siis mahdollista, että Nanon muisti ei riitä tuohon kirjastoon?!?

kuvakaappi

Binary sketch size: 31 252 bytes (of a 30 720 byte maximum) processing.app.debug.RunnerException: Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it. at processing.app.Sketch.size(Sketch.java:1658) at processing.app.Sketch.build(Sketch.java:1591) at processing.app.Sketch.exportApplet(Sketch.java:1613) at processing.app.Sketch.exportApplet(Sketch.java:1599) at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380) at java.lang.Thread.run(Thread.java:695)

Kuinka paljon tuo 32Kb on oikeasti tekstimuodossa?

Robojuchen commented 10 years ago

Tuossa esimerkissä on paljon ylimäärästäkin koodia jota ei tarvita välttämättä. Koittakaapa poistaa esim. tuo USBhub rivi alkupuolelta koodia.

Tässä keskustelussa on neuvottu miten koodia voi trimmata että sen saa mahtumaan, lukekaa alimmat viestit: http://www.circuitsathome.com/mcu/sony-ps3-controller-support-added-to-usb-host-library

enksai commented 10 years ago

ISO kiitos nopeasta tuesta! Kuitenkin meille ilmeni uusi ongelma: Softa herjaa tällä hetkellä, että ei pystytä uploamaan koodia koneelle (jotain problems to upload to board). Mahtaako taustalla olla se, että kokeilimme omalla koneella ladata tiedostoa(Käytössä vielä Macintosh-käyttis)? Lataamme huomenna koulun koneelle tuon koodin, niin pystymme poislukemaan mahd. koodin virheen.

Robojuchen commented 10 years ago

Paha sanoa mikä on vialla näkemättä tarkkoja tietoja. Usein tuon tyyppiset ongelmat johtuvat siitä ettei kone löydä arduinoa (ajurit ei ole asennettu, väärä boardi valittu tms.) tuossa arduinon usb-tunnistuksessa in joskus muutenkin mystistä häikkää. Millä arduinolla puuhailette ja latautuvatko muut ohjelmat normaalisti?

yritättekö esim ladata Uno- boardiin nanon asetuksilla. UNO on se johon shieldit menevät suoraan päälle?

enksai commented 10 years ago

Kokeilimme useallakin koulun arduinoilla ja eri koodeilla, mutta ei onnistunut. Oikeat boarditkin oli asetettu ohjelmaan.

Robojuchen commented 10 years ago

Onko shieldi asennettuna kun yritätte ladata? Irrottakaa se latauksen ajaksi.

enksai commented 10 years ago

Kokeilimme myös ilman shieldiä. Huomenna testaamme koodia uudelleen kun saamme arduinoa taas lainaksi. Pistämme tänne viestiä tulemaan jos jotain ilmenee. Toivottavasti tuo Samin kimppatilaus saapuisi pian perille, niin pääsisimme täyspäiväisesti kokeilemaan ja perehtymään kunnolla aiheeseen. : )

enksai commented 10 years ago

Koulun koneeseen saimme asetettua kirjaston ja saimme laitettua koodin arduinoon. Tämän jälkeen mitään ei kuitenkaan tapahtunut. Etsittyämme ongelmaa löysimme ehkä ratkaisun. Kirjasto ei välttämättä sovi suoraan arduino nanoon ja sen usb shieldiin, eli pitäisi pinnien paikkaa vaihtaa. Onko tietoa miten se onnistuisi, koska kirjasto on niin suuri ja itse koodissa ei ole suoraan merkittynä pinnien numeroita?

Ohessa shield: http://www.gravitech.us/usadforarna.html

Robojuchen commented 10 years ago

Jeps! Tuo selvittää paljon! Tuo ei ole tyypillinen USB-host shieldi, tosin aika näppärän oloinen versio. Kirjastoa voi muokata, koitan tehdä sen teille kunhan ehdin tässä.

Kirastoissa varsinainen koodi on piilossa h ja cpp tiedostoissa, niistä pitää löytää pinnien configurointi kohdat ja vaihtaa ne kohdilleen.

Robojuchen commented 10 years ago

Seuraavien muutosten pitäisi toimia:

1.Juottakaa USB-shieldistä INT jumpperi kiinni 2.Avatkaa notepadilla USB-kirjaston UsbCore.h tiedosto ja vaihtakaa "typedef MAX3421e(tähän ei voi kirjoittaa väkästen sisään)<P10, P9> MAX3421E" paikalle "typedef MAX3421e<P8, P2> MAX3421E". Tallentakaa. 3.Avatkaa samoin Max3421e_constants.h ja vaihtakaa "#define MAX_SS 10" tilalle "#define MAX_SS 8" ja "#define MAX_INT 9" tilalle "#define MAX_INT 2". Tallentakaa. 4.Avatkaa arduino ohjelma uudelleen ja kokeilkaa toimiiko :) Jos ei niin pitää tutkia asiaa enemmän.

EDIT: Tämä github poistaa idioottimaisesti < väkästen sisään laitetun tekstin. katsokaa tuosta UsbCore.h tiedostosta mitä tuossa typedef MAX3421e jälkeen lukee. 10 ja 9 tilalle 9 ja 2 kuitenkin

Robojuchen commented 10 years ago

http://www.circuitsathome.com/usb-host-shield-hardware-manual

Tässä vielä ohjeet tuohon muokkaukseen (ohjeessa muutetaan vain toinen pinni meidän pitää muuttaa molemmat. Lukekaa kohta 5 interface modifications.

enksai commented 10 years ago

image

Eli tuosta päältä litäämme INT kohdan kaksi "tinapistettä" kiinni toisiinsa?

Saimme usbcoren tiedot vaihdettua, mutta tuota Max3421e_constants.h kansiota ei löytynyt, Oli vain pelkkä Max3421e.h sieltä löysin int_9, mutta en ss_10 lainkaan.

Robojuchen commented 10 years ago

usbhost.h

elif defined(AVR_ATmega168) || defined(AVR_ATmega328P)

typedef SPi Pb5, Pb3, Pb4, Pb2 spi;

vaihtakaa Pb2 tilalle Pb0

Tinapisteisiin vaan tinaa väliin. kokoeilkaa usbcore + usbhost muutoksilla.

Jos ei toimi vieläkään niin poistakaa kommentoiniti merkit vielä tuosta Max3421e.h tiedostosta define int 9 edestä ja vaihtakaa 2 numeroksi.

Mahdollisesti joudutaan pyytämään kirjaston kehittäjältä neuvoa. Tämä uudempi kirjasto on jotenkin sekavampi, ei löytynyt tosiaan tuota constants tiedostoa. Kokeilkaa kuitenkin näillä muutoksilla

enksai commented 10 years ago

Tinaus ja koodit ovat kunnossa, mutta donglen valo ei syty eikä serial monitorissa tietoja. Kokeilimme myöskin tuolta MAx3421e.h tiedostosta muokata tuloksetta. Olemme tällä hetkellä avuttomia tämän suhteen. : )

Robojuchen commented 10 years ago

tuli mieleen että voittehan väliaikaisena ratkaisuna kokeilla laittaa nanon koekytkentälevyyn ja vetää piuhat shieldiin arduinon niistä pinneistä mitä kirjasto käyttää. Piuhat siis tökätään shieldin käyttämiin pinninpaikkoihin(esim. D9-> 2 pinninpaikka shieldissä). On myös ilmeisesti mahdollista että USB virta ei riitä kunnolla shieldille joten voisitte kokeilla toista virtalähdettä.

Oletteko perehtyneet ohjeisiin, miten tuo PS3 ohjaimen alustaminen donglen osoitteella tapahtuu, kytkemällä vuorotellen laitteet USB shieldiin?

Tuossa kirjastossa ei muuten sarjaporttiin tulekkaan mitään jos sitä ei settings tiedostoista säädetä päälle..

Voisitte laatia kyselyn shieldin myyjälle että miten tämä kirjasto saadaan toimimaan.

EDIT:kokeilkaa myös että muut tiedostot jätätte muokkaamatta mutta pelkän UsbCoren muutatte nuo P10 ja P9 -> P8 ja P2

Robojuchen commented 10 years ago

Ja katsokaa että kun muokkaatte noita tiedostoja ne tallentuvat varmasti h-tiedostoksi eikä txt tiedostoksi. Jos kokeilette vin kautta virran antoa se pitää tehdä joko breadboardissa tai sitten juottaa shieldin Vin jumpperi kiinni.

Robojuchen commented 10 years ago

eli debuggaus päälle laittamalla setttings.h tiedostosta "#define ENABLE_UHS_DEBUGGING 1"

Häntä pystyyn, tämä saadaan varmasti toimimaan pienen säätämisen jälkeen. Tuo virtaongelma on todennäköinen selitys, toinen voi olla että joku tiedostoista on lipsahtanut väärään tiedostomuotoon.

EDIT: Virtaongelmaan paras ratkaisu käyttää tuon shieldin omaa virransyöttöä, noissa nanoissa voi olla vähän heppoinen se 3.3v regulaattori ja ei pysty ruokkimaan shieldiä ja donglea.

enksai commented 10 years ago

Olemme taas yrittäneet uuden vuoden kunniaksi saada koodia toimimaan, mutta emmä saa ps3-ohjainta kytkettyä. Laitoimme 9v patterin tuomaan lisää virtaa ja saimme dongleen virran, mutta dongle ei löytänyt ohjainta. Asetimme ps3-ohjaimeen donglen MAC koodin SIXAXIS pair toolilla. (Uudessa koodissa ei aseteta ensin donglea ja sen jälkeen ohjain johdon kanssa).

Eli olemme kokeilleet muuttaa UsbCoren, usbhostia sekä yhdessä että erikseen. Voiko tuo aikaisemmin tinattu INT vaikuttaa asioihin? Olemme myös varmistaneet, että tiedostomuodot ovat oikeat.

Robojuchen commented 10 years ago

INT pitää olla joka tapauksessa kiinni juotettuna. Mihin 9v oli kytkettynä ja eihän usb ollut kiinni yhtä aikaa? tuommoinen 9v patteri ei kovin hyvin pysty antamaan virtaa että suosittelisin kokeilemaan vaikkapa koulun virtalähteellä. Paras olisi jos juottaisi sen power pinnin ja antaisi virtaa shieldin kautta. Kokeilkaa myös eri dongleja.

Jos teette tuon neuvomani reitityksen protolevyn kautta ja käytätte alkuperäistä kirjastoa ilman muokkauksia homman pitäisi kyllä toimia( jos vaan dongle toimii, osoite on oikein ja virtaa riittää)

Kannattaa kysyä shieldin myyjältä/valmistajalta onko hänellä tekeillä tälle shieldille kirjastoa.

matpi commented 10 years ago

Näinkin poikia tänään koululla: ilmeisesti nuo Jussin viimeisimmätkään neuvot eivät ratkaisseet ongelmaa. Olisiko siis tosiaan järkevää ottaa yhteys shieldin myyjään tai valmistajaan, onko heillä tekeillä tälle shieldille kirjastoa, tai saisiko sieltä suunnasta apua? Tässä infoa: http://www.gravitech.us/info.html

"Our staff is eager to answer your questions. We give great and fast turn around on our e-mail support. We are looking forward to do business with you and help you develop your next project. We are the technology company and believe in doing business in the cyber world. This is the reason why our cost is lower than our competitors. We have our staffs stand by ready to answer your questions. To contact us, please direct your inquiry to the appropriate department as described below"...

Sales and Customer Service: sales@gravitech.us Technical Support: support@gravitech.us

By standard mail: Gravitech PO BOX 202 Claremont, CA 91711

sales@gravitech.us

enksai commented 10 years ago

JESH! Saimme ohjaimen yhdistettyä dongleen! Teimme muutoksen vain usbcoreen ja laitoimme debuggingin päälle. VIka oli luultavimmin mac koodissa. Laitoimme sen suoraan sketchiin, mitä emme olleet aiemmin huomanneet.. Seria monitor reagoi nappuloihin!

Tästä iloisena eteenpäin!

Robojuchen commented 10 years ago

Mahtavaa! Aloinkin jo ihmetellä että mikähän tuossa on kun alkaa olla konstit loppu mutta hyvä jos lähti toimimaan. On nimittäin sinällään näppärän kokoinen tuo teidän USB-shieldi ja sopiva juuri nanolle. Teidän projektiin passaakin paremmin, nimittäin perus UNO+sen USB-shield olisi jo vähän massiivinen paketti pieneen kauko-ohjattavaan.