Myös korttimaksu toimii

Arduino

Aloittaja Pete2, 19.12.09 - klo:21:13

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

Pete2

Encoderin lukuun löysin kirjaston joka toimii hyvin,
kuvassa 200 p/rev encoderi mutta tarkuus 800
kun sitä luetaan "qudrature"na.

Vieressä oleva "kortti" on Olimexin basic ohjemoitava
controleri ,vganäyttö ja pcnäppäimistö kiinni
ohjelman save:aus sd kortille jne...



Kremmen

#76
Joo toi Olimexin MOD-IO -laajennuskortti on mielenkiintoinen tapaus. Sehän ensinnäkin käyttää UEXT-liitintä jonka Olimexino on itse speksannut ja julkistanut. Sillä voi periaatteessa kytkeä laitteita käyttäen sarjaväylää, SPI:tä tai I2C:tä. Sitten siinä on kaikennäköistä I/O:ta - digitaalisia ja analogisia tuloja ja relelähtöjä. Itelläkin on niitä hyllyssä muutama kappale.
Laite on kuin sveitsiläinen linkkari - sillä voi tehdä mitä vaan.
Ikävää kumminkin, että tähän linkkariin joutuu melkein tekemään terät ensin itse. Se mukana tuleva koodi on kirjastofunktioita I/O:n käsittelyyn, mutta Arduinon kanssa kommunikointiin ei olekaan mitään muuta kuin tyhjä pääohjelma. Ja vaikka prosessori on sama ATMega328 kuin Arduinossa, tätä korttia ei sitten ohjelmoidakaan USB:llä Arduinon IDE:n avulla, koska USB.liitäntä ei ole, eikä varmaan Arduinon bootloaderiakaan. Hommaan tarvitaan siis perinteinen AVR-ohjelmankehitysympäristö kuten vaikkapa Atmel Studio, ja joku keino ladata binäärit kortille sillä olevien AVRISP- tai JTAG-liittimien kautta. Mulla nuo vehkeet on, mutta Arduinon kanssa niitä ei tule. No, Atmel Studio on toki ladattavissa ilmaiseksi Atmelin nettisaitilta mutta hardwaren joutuu hommaamaan kaupasta. Tosin vaikkapa AVRISP Mk II ei maksa kuin kolme-neljä kymppiä ja sillä hoituu useimmat ellei kaikki Atmelin prosessorit.

Mutta siis perushaaste MOD-IO:n kanssa on, että siihen joutuu itse toteuttamaan sovelluksen, ei se ole mikään valmis Arduinon I/O-laajennus. Toki se sitten toimii sellaisena, ja paljon enempänäkin kunhan sovellus on ensin sille koodattu. Ajatus on varmaan ollut, että sitä käytetään älykkäänä oheislaiteena joka ottaa I/O-laskennan kuormaa pois pääprosessorilta.
Itse olen tuota ajatellut käyttää osana kiinteistön porttien ohjausjärjestelmää, mutta sekin projekti pn vaiheessa. Jos kiinnostusta tuohon kapineeseen on, niin voin kyllä auttaa sen herättämisessä henkiin.

En muista enää onko ollut puhetta juuri tässä keskustelussa, mutta Atmel Studiolla voi siis hyvin ohjelmoida Arduinoja "kunnollisessa" IDE-ympäristössä. Studion laajennusosavalikosta vaan aktivoi Arduino-pluginin kunhan Arduno-IDE on ensin asennettu, että löytyy kirjastot. Sen jälkeen voi koodata ja ladata Arduinoja koskematta siihen kälyiseen Arduino.IDEen ollenkaan. Samalla on otettu puoli askelta kohti oikeaa sulautettujen koodausta. Sitä ei ole paljoa matkaa enää omien korttien kyhäämiseen. Se Arduinolla oleva Mega328 esim on hirmu helppo herättää henkiin; ei se tarvii juuri mitään ympärilleen. Niinkuin ei monet mutkaan modernit MCUt.

P.S. Muistin vähän väärin. MOD-IO:ssa on 8 MHz Mega16 joten se on hitaampi ja vähemmän muistia kuin arskassa, mutta muuten sama juttu.

Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

Lainaus käyttäjältä: Kremmen - 23.02.14 - klo:21:29
Joo toi Olimexin MOD-IO -laajennuskortti on ....
Laite on kuin sveitsiläinen linkkari - sillä voi tehdä mitä vaan.
Ikävää kumminkin, että tähän linkkariin joutuu melkein tekemään terät ensin itse. ...

Heheh....kävin kerran puukon taontakurssin, joten hyvä alku
.
Lainaus käyttäjältä: Kremmen - 23.02.14 - klo:21:29
En muista enää onko ollut puhetta juuri tässä keskustelussa, mutta Atmel Studiolla voi siis hyvin ohjelmoida Arduinoja "kunnollisessa" IDE-ympäristössä. Studion laajennusosavalikosta vaan aktivoi Arduino-pluginin kunhan Arduno-IDE on ensin asennettu, että löytyy kirjastot. Sen jälkeen voi koodata ja ladata Arduinoja koskematta siihen kälyiseen Arduino.IDEen ollenkaan. Samalla on otettu puoli askelta kohti oikeaa sulautettujen koodausta. Sitä ei ole paljoa matkaa enää omien korttien kyhäämiseen. Se Arduinolla oleva Mega328 esim on hirmu helppo herättää henkiin; ei se tarvii juuri mitään ympärilleen. Niinkuin ei monet mutkaan modernit MCUt.

On harkinnassa, kunhan nyt ensin pääsee alkuun. Mukavampaa jos useempi aloittais samaan aikaan pohjalta, niin olis usemapi prsastelija, eikä oma tyhmyys tunnu niin suunnattomalta.

PekkaNF

Kremmen

Lainaus käyttäjältä: PekkaNF - 23.02.14 - klo:23:05
Heheh....kävin kerran puukon taontakurssin, joten hyvä alku
.
On harkinnassa, kunhan nyt ensin pääsee alkuun. Mukavampaa jos useempi aloittais samaan aikaan pohjalta, niin olis usemapi prsastelija, eikä oma tyhmyys tunnu niin suunnattomalta.

PekkaNF
Ei meistä kukaan tainnut syntyä näppäimistö edellä, niin että alusta on jokainen aloittanut, kuka enempi, kuka vähempi aikaa sitten. Se, ettei tiedä jotain ei ole tyhmyyttä ja korjautuu kyllä helposti kun vaan opettelee.
Alkuun pääsee minusta parhaiten kun valkkaa jonkun realistisen mutta pikkasen haastavan projektin ja lähtee sitä ratkomaan. Juuri viikonloppuna esim. jelppasin yhdellä toisella foorumilla kaveria ohjelmoimaan Arduino nano-pohjaisen pakokaasulämpömittarin. Kaveri oli itse suunnitellut siihen raudan jossa vähän konsultoin, ja sitten opastin häntä sen koodauksessa. Eipä sihenkään projektiin paljoa Arduinoa tullut, mitä nyt pari digitalWrite-komentoa. Enempi se oli laskentaa, suoraa rekisterinkäsitelyä ja keskeytysten ohjelmointia.

Jos sulla on mielessä joku projekti niin voin kyllä autella vaikeimpien kivikoiden yli, ja muutenkin.

Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

Lainaus käyttäjältä: Kremmen - 23.02.14 - klo:21:29
Joo toi Olimexin MOD-IO -laajennuskortti on mielenkiintoinen tapaus. ...

Kysyvä ei tieltä eksy?
https://www.olimex.com/forum/index.php?topic=2778.0

Yritin kokeilla vastauksen #2 ohjelmaa, vastauksesta #9 saadulla kirjastolla. Kolmen tunnin taistelun jälkeen en saa järkee kirjastoon. Ne vaikuttaa arduinon oppaan mukaan muodollisesti oikeilta, mutta ei toimi.

Tämä:
#include <Wire.h>
#include <MOD_IO.h>
#include <delay.h>

// Control MOD-IO at address 0x2C
MOD_IO modio();

Tuottaa tämän:
MOD_IO_test1.ino: In function 'void setup()':
MOD_IO_test1:10: error: request for member 'begin' in 'modio', which is of non-class type 'MOD_IO ()()'

Joten kirjastossa on muodollisesti jotain väärin. 7-bitin ascii (ANSI), ongelma jossain CR/LF? Vai kopioitu väärin. Kokeilin notepädiä ja notepäd++ tägääys sulkeutuu ja kaikkee....

Kaikenlisäksi windows oli asennellut uudet ajurit, joten vaati tunnin taistelua, ennenkun Arduinon IDE suostu toimimaan (USB-ajuri ja Java......).

PekkaNF

Kremmen

No ei ollut iso vika.

Älä kirjoita

#include <MOD_IO.h>

vaan

#include "MOD_IO.h"

Yksi C-kielen "ihanuuksista" joka ampuu kokematonta/varomatonta nilkkaan. Nuolisulut ja lainausmerkit erottavat mistä kirjastoa haetaan. Nuolisuluilla käännösympäristön vakiopoluista, lainausmerkeillä ensin paikallisesta hakemistosta.

Tuolla muutoksella kääntyy virheettömästi. Minulla siis MOD_IO.h ja MOD_IO.cpp samassa hakemistossa kuin sketsitiedosto.
Nothing sings like a kilovolt
Dr W. Bishop

PekkaNF

Kiitos

Eipä todellakaan tullut heti mieleen...nyt pääsin riville 8 asti, nitkahtaa tähän:
  modio.begin();

#include <Wire.h>
#include "MOD_IO.h"
#include <delay.h>

// Control MOD-IO at address 0x2C
MOD_IO modio();

void setup () {
  Serial.begin(9600);
  modio.begin();
}

ja virheilmoitus on:

MOD_IO_test2.ino: In function 'void setup()':
MOD_IO_test2:10: error: request for member 'begin' in 'modio', which is of non-class type 'MOD_IO ()()'
MOD_IO_test2.ino: In function 'void loop()':
MOD_IO_test2:20: error: request for member 'setRelay' in 'modio', which is of non-class type ......

mä olin ennen aika hyvä tulkkaamaan noita ....tein paljon virheitä, joten virheilmoitusten logiikka kävi tutuksi.

Kokeilin myös siirtää "sketch-hakemistoon" kaikki noi samaan hakemistoon. Sama tulos.

Huomenna tutkin lisää...

PekkaNF

PekkaNF

Hehe... selvishän se eli osoitteeksi MOD_IO modio(0x58); ja kortti lähti lukemaan tuloja ja vaihtamaan lähtöjen tilaa.

Edistys kehittyy....

PekkaNF

Powered by EzPortal
SMF spam blocked by CleanTalk