ohjelmointia Arduinolla

minulla on Arduino Mega ohjelmointilaite, en ole englannin kielen taitoinen, siitä johtuen en ole onnistunut käynnistämään Arduino laitetta, jotta olisin voinut aloittaa ohjelmointia. olen kyllä joskus ohjelmoinut onnistuneesti assemblerilla, joten tiedän ohjelmoinnista jotakin. Olisin kiitollinen jos joku kirjoittaisi avausohjeet.
Ilmianna
Jaa

28 Vastausta



Josko lähikirjastostasi löytyisi kirja "Sulautetut"

http://sulautetut.fi/

Englannin opiskelusta olisi tässä asiassa kyllä tavattoman paljon apua.
Ilmianna
Jaa
https://sites.google.com/site/kotkamaahacklab/alkuun-arduinolla

eli arduinon valikosta löytyy suoraan ohjelma blink. noilla ylläolevan linkik ohjeilla onnistunee. mitään ei tartte kytkeä paitsi arduino usb-kaapelilla tietokoneeseen.
uudemmat arduino idet on ihan suomeksi.
Ilmianna
Jaa
Ensinnäkin arduino mega on avr-mikrokontrolleri kortti, ei ohjelmointilaite. Kontrolleri kyllä sisältää käynnistyslataajan (bootloader) eikä siksi tarvitse erillistä ohjelmointilaitetta. Toki arduinoja voi käyttää ilmankin bootloaderia polttamalla koodi erillisellä isp-ohjelmoijalla. Helpoin tapa käyttää arduinon omaa IDEä. Jonkimmoinen lontoon taito kyllä tarvitaan.
Tästä vaikka alkuun.
Arduino oppaita suomeksi.
https://www.hutasu.net/mikrokontrollerit/arduino/
luma.aalto.fi/fi/midcom-serveattachmentguid.../arduino_tutuksi_09_2016.pdf
Laita guukkeliin arduino opas. Sieltä esim.
Arduino tutuksi - LUMA-keskus Aalto, pdf dokumentti.
Huom. jos tuskailet ettei toimi, niin kiinan kopiot käyttää eri usb-sarjamuunninpiiriä ainakin uunossa ja nanossa, Piiri CH430, windowsissa tarvii oman ajurin, linukas on valmiina.
Ilmianna
Jaa
Joo sulautetut kirja on jepa, niiltä pohjilta itsekin tein automaattisen parkkikiekon kun vähän modasin malliesimerkkejä ja koodiakin tuli metritolkulla, niin että sai siistiä rakennetta ennen kuin mahtui kontrolleriin! (mitä enemmän koodia, sitä kovempi ohjelmoija kyseessä)

Luokittelen myös itseni täysin englannin kielentaidottomaksi mutta tarkemmin määriteltynä jonkinnäköinen ralli-englanti lähtee kovilla konsonanteilla ja käsimerkeillä tyylitettynä, että pystyy noita arduinon omia sivuja lukemaan ja foorumeita toisten kyhäelmistä, sanakirja.org auttaa jos ei sinulla ole teknistä sanakirjaa esim. työsi puolesta saatavilla.

Eikö se assemblerin komennot ole kanssa englanniksi, eli todellisuudessa varmaan omaat itsekin ihan riittävän kielitaidon mutta suomen mittakaavassa pitäisi osata puhua eri aksenteilla ja hämätä keskustelukumppania mahdollisimman vaikeilla sanoilla, niin että toinen putoaa kärryiltä mutta kielioppi ja lausunta meni kuitenkin oikein.
Kommentoi
Ilmianna
Jaa
9 VASTAUSTA:
"mitä enemmän koodia, sitä kovempi ohjelmoija kyseessä"

parhaimmat koodarit kylläkin tekee niin tiivistä koodia, että me toistaitoiset tumpelot emme
siitä edes selvää ota.
Kommentoi
Ilmianna
Jaa
Olisikohan vaan ihan noin?? Minä kun juuri ajattelin että se on sitä Ceen käyttöä taitavimmillaan kun copy-pastella pistää pystysuunnassa 10m koodia jossa joka rivillä vain arvo vaihtuu!
Kommentoi
Ilmianna
Jaa
lznzznzmzmmz kirjoitti:
"mitä enemmän koodia, sitä kovempi ohjelmoija kyseessä"

parhaimmat koodarit kylläkin tekee niin tiivistä koodia, että me toistaitoiset tumpelot emme
siitä edes selvää ota.
Kovat koodaajat tekee selkeää koodia ja käyttää selkeitä muuttuja ja aliohjelma nimiä. Eikä kommentointia ole koskaan liikaa. Koodi on hyvää kun toinen koodaaja ymmärtää heti mistä on kysymys. Sinä joka laitat copy-pastella 10m koodia. Oletko kuullut silmukoista?
Kommentoi
Ilmianna
Jaa
Siis en kyllä ole silmukoista varmaan kuullut, just just ymmärrän loopin eli ohjelma toistaa kiertoaan loputtomiin kun perusasetukset on kerran luotu, vähän samaan tyyliin kun minun nuoruudessani BAT-komentojonoja ja Q-Basicia käskettiin GOTO-komennoilla eri kohtiin ohjelmaa.

Nyt kun asia kerran tuli puheeksi isojen poikien kanssa, niin saisikohan Arduinolle tai ihan pelkälle AVR-ohjaimelle + MKII-ohjelmoijalle jotain NAND/NOR-tyylistä simulaattoria missä voisi olla ihan timereitä myös???

Ymmärrän toki että koko kontrollerin ominaisuudet menee WC-pyttyyn kun pudotetaan ohjelmointikieli 70-luvun reletekniikkaan, mutta noita Siemensin teollisuuslogiikoita vaan on niin yksinkertaista ohjelmoida ja riittää moneen perushommaan ja apinakin osaa!
Kommentoi
Ilmianna
Jaa
Meikä- kirjoitti:
Siis en kyllä ole silmukoista varmaan kuullut, just just ymmärrän loopin eli ohjelma toistaa kiertoaan loputtomiin kun perusasetukset on kerran luotu, vähän samaan tyyliin kun minun nuoruudessani BAT-komentojonoja ja Q-Basicia käskettiin GOTO-komennoilla eri kohtiin ohjelmaa.

Nyt kun asia kerran tuli puheeksi isojen poikien kanssa, niin saisikohan Arduinolle tai ihan pelkälle AVR-ohjaimelle + MKII-ohjelmoijalle jotain NAND/NOR-tyylistä simulaattoria missä voisi olla ihan timereitä myös???

Ymmärrän toki että koko kontrollerin ominaisuudet menee WC-pyttyyn kun pudotetaan ohjelmointikieli 70-luvun reletekniikkaan, mutta noita Siemensin teollisuuslogiikoita vaan on niin yksinkertaista ohjelmoida ja riittää moneen perushommaan ja apinakin osaa!
Arduinolle ja monelle muulekin esim. PICille löytyy pilvin pimein PLC kehitys työkaluja ja PLC alustoja. Ohjelmoitaviin logiikkoihin tuttuneelle yksi hyvä voisi olla flowcode.
Guukkeliin vaan "arduino plc" niin löytyy vaikka mitä. Itse siimensiä, omronia ja klöckner moelleria aikanaan ohjelmoineena olen sitä mieltä että tikapuu kaaviot on perseestä, lohkokaaviot on ok. Näitä linkkejä löytyy vaikka kuinka paljon.
http://www.openplcproject.com/
http://controllino.biz/
https://www.indiegogo.com/projects/arduino-programmable-plc-uno#/
https://www.matrixtsl.com/flowcode/
Kommentoi
Ilmianna
Jaa
Tikkaatkatolle kirjoitti:
Arduinolle ja monelle muulekin esim. PICille löytyy pilvin pimein PLC kehitys työkaluja ja PLC alustoja. Ohjelmoitaviin logiikkoihin tuttuneelle yksi hyvä voisi olla flowcode.
Guukkeliin vaan "arduino plc" niin löytyy vaikka mitä. Itse siimensiä, omronia ja klöckner moelleria aikanaan ohjelmoineena olen sitä mieltä että tikapuu kaaviot on perseestä, lohkokaaviot on ok. Näitä linkkejä löytyy vaikka kuinka paljon.
http://www.openplcproject.com/
http://controllino.biz/
https://www.indiegogo.com/projects/arduino-programmable-plc-uno#/
https://www.matrixtsl.com/flowcode/
Okei, en tosiaan osannut hakea sanoilla "PLC" ja "lohkokaavioita" siis siemenssin logo!-sarjalla syntyy ainakin näkyvää helkkarin nopeasti, mulla on yhdessä duuni-kyhäelmässä 4 logoa täysillä laajennuksilla ohjaamassa peräjälkeen toisiaan kun ei saa kun 200 blokkia yhteen purkkiin ja IO-loppu kesken.

Siis sillä tikapuuohjelmoinnilla ei tee yhtään mitään, pitäisi olla juuri tuollainen että pääsee noita and/or/xor -piirejä johdottamaan yhteen, lähtö INPUT osoitteesta ja Q kuvaa ulostulo-osoitetta.

Ja joku kello tietenkin, parasta kun olisi timer-piirejä mihin voi ohjelmoida ajan, siitä ei minun taidoilla tule mitään että laitetaan kellosignaalista jotain esijakajaa/laskuria mikä muutetaan sekunneiksi.

Tästä löytyy riman alta oikotie onneen ja lääkkeet joka vaivaan kun pitää saada varmatoimista ohjausta nopeasti. tosin mitään väyläsignaalia tai PWM se ei pysty tuottamaan. taisin joskus tehdä pulssigeneraattorista oskilaattorin niin sain 500Hz :D

Pitää tutustua tuohon arduinon/AVR käsittelyyn porttipiireillä, kun kerkiää taas harrastelemaan, tosin nyt kun pitäisi vaan nopeasti tehdä varashälytin niin taitaa taas logo lipsahtaa sinne kun ei kerkiä harrastusmielessä alkaa opiskelemaan.
Kommentoi
Ilmianna
Jaa
Sitten käy vaikka logi.CAD3.
https://www.logicals.com
Ei ole pakko olla arduino pohjainen plc, käy se perus arduinokin ja hommaa siihen erilliset relekortit ja optoerotin kortit ja mitä nyt tarviikin, niin saa halvemmalla.
Kommentoi
Ilmianna
Jaa
Joo, tossa näyttää toi ohjelmointikieli juuri siltä miltä kuuluukin! tosin sitten sivu menee DE, eli jostain (sian)saksaa?

Tosiaan alkaa valkenemaan, tuo PLC- sana tekee arduinosta saman näköisen DIN-kisko-duplon kun siemenssin LOGO!:kin on!

Nimenomaan niin se pitäisi olla että perus arduino tai pelkkä AVR verolevyllä ja siitä vaikka opto-lähdöt, kunhan kontrollerin ohjelmointi tapahtuu porttipireillä.

Nuo DIN-kisko-duplot kuuluu työelämään kun nopeasti kasataan valtavia keskuksia tehtaan seinään, vapaa-ajalla istun mieluimmin kolvi tanassa. Mutta kiitokset vaivannäöstäsi!
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Minä olen siirtynyt käyttämään PC-tietokonetta lähes kaikissa tuollaisissa ohjelmakoodia vaativissa projekteissa, kun noitakin saa aivan pienikokoisina ja esim. auton akullakin toimivina.

Paremmat liitännät ja muutenkin paremmat ominaisuudet jos on kokonainen tietokone käytettävissä.
Kommentoi
Ilmianna
Jaa
3 VASTAUSTA:
Tietokoneella vaan tulee ne laittomat toiminnot ja järjestelmän kaatuminen riskiksi kun on 24/7 valmiustilassa. Laitteen kuluttama virta myös posketon jos funtsaa vaikka jotain tyyliin varashälytintä minkä pitäisi paristoilla toimia.
Kommentoi
Ilmianna
Jaa
no tuo koskee tietenkin vain windowsia. kyllä esim raspberry linuxeineen pysyy pystyssä maailmanloppuun saakka.
toki ei tietokoneella koskaan ohjelmoitavia logiikoita korjata, jo virran kulutus on ihan eri luokassa. mutta raspberry+arduino on aivan oiva pari keskenään. kahdella vastuksella ja parilla johdolla ne kommunikoi keskenään. eli jännitteenjakokytkennällä joutuu vain yhden jännitteen tiputtamaan alas https://oscarliang.com/raspberry-pi-and-arduino-connected-serial-gpio/
Kommentoi
Ilmianna
Jaa
Voi olla PC-koneessa sitten pelkästäänkin BIOS, tai DOS-käyttöjärjestelmänä. Intelillähän oli tuollainen pieni ATOM, jo kymmenen vuotta sitten, nythän niiltä tulee uusi vaastaava.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Nuo valmiiksi pureskellut ohjelmointiympätistöt ovat osoittautuneet järjestäin huonoiksi: Ei tarvitse mennä kuin 10 vuotta ja ohjelmointiympäristöä ei enää tueta/sitä ei saa käyntiin uudessa käyttöjärjestelmässä tai siihen on ilmestynyt joku io-vika, joka estää laitteen järkevän käytön. Ei voi enää tehdä mitään! Toisaalta niitä putkahtaa aina uusia, eli jos viitsii opetella uuden ympäristön, laitteensa voi edelleen saada ohjelmoiduksi.
Tästä syystä mielestäni paras yhdistelmä on kirjoittaa koodit Emacs:lla. Kääntää ohjelmat avr-gcc:llä ja luoda makefile tätä varten mfile:llä. Siinä saa samalla säädettyä prosessorinkin kohdalleen ja käännösparametrit. Nuo bootloaderit olen kanssa jättänyt omaan arvoonsa: Niistä on lähinnä haittaa, jos muistinkulutus menee tiukille tai tarvitaan kaikki prosarin nastat käyttöön. ISP(In-Circuit Programming) sen sijaan on suositeltavaa. Eli jonkinlainen ohjelmointilaite(esim. USBTiny-ISP ) on mukava omatekoisen PCB:n kanssa puljattaessa. Bootloaderin kanssa toimiminen on opettanut sen, että jossain vaiheessa menee jotain vikaan ja em. laitetta joka tapauksessa tarvitsee jos ei muuten niin esim. fuse-ohjelmointiin.
Ja jos laite juttelee PC:n kanssa, ohjelmat kirjoitetaan siten, että molemmissa päissä voi käyttää samaa funktiorajapintaa eli on rautariippuvainen osa ja sen päälle read/write joko blokkaavana tai ilman. Operaatiot määritellään parametreina yhteisistä tiedostoista. Sarjaportti on hyvä, mutta jos se menee liian hitaaksi niin rinnakkaisportti käy, kun siihen rakentaa päälle SPI-väylän. Eli PC:n puolelta homma näyttää rinnakkaiselta (EPP/SPP) operaatiolta ja kontrollerin puolelta SPI-väylä operaatiolta. Tällä tavalla saa protokollasta mahdollisimman yksinkertaisen. Ja nopeutta tulee riittävästi lisää - ei se kontrolleri kuitenkaan pysty yli 2MBit/s nopeuksiin. USB:ssa taas on se sama huono puoli, kuin 10 vuotta vanhassa softassa: Se ei toimi 10 vuotta uudemmalla koneella enää, koska ajuri on tehty vanhalle järjestelmälle - on todellinen vahinko, että rinnakkaisporttia ei enää tahdo löytyä uusista koneista..
I2C on toinen toteutusvaihtoehto, senkin saa jopa suoraan linux:n ajurituella ja toimii hyvin. Sen heikko puoli on protokollan monimutkaisuus kontrollerin päässä, mutta jos sen kestää, se toisaalta antaa koodille hyvän rakenteen.
Vähän vanhemmilla prosessoreilla sitten sdcc on hyvinkin käyttökelpoinen työkalu. Ja eprommeri! ;)
Kommentoi
Ilmianna
Jaa
5 VASTAUSTA:
no arduinon tuki tuskin lakkaa, sehän on avointa niin raudan kuin softankin puolesta.
arduino on hyvä tapa päästä alkuun, kun siinä saa heti toimivaa vähällä vaivalla.
Kommentoi
Ilmianna
Jaa
Esim. PIC16F84 on vanha kontrolleri, eikä senkään käyttöä mikään vielä estä, paitsi turhan kallis ja voi laittaa 16F628 tilalle. AVR on uudempaa tekniikkaa niin sitä saa varmaan vielä pitkään. C on ollut käytössä yli puolivuosisataa joten ei sekään häviä, ainakin tulee sitten tulkit millä C-kirjastot saa käännettyä toiselle kielelle.
Kommentoi
Ilmianna
Jaa
Ongelma on nimenomaan siinä, että pitkällä jänteellä kaikki lakkaa toimimasta. Mietipä itse 10-vuoden päästä itseäsi ja kuvittele, että olet ainoa, joka osaa omatekoisen laitteen portata uuteen järjestelmään? Omakohtaisella kokemuksella voin kertoa, että ei ihan mene putkeen kun tavittavat ohjelmointilaitteet hukkuneet/menneet rikki eikä saa enää kytkettyä uusiin laitteisiin kiinni. Myöskään ohjelmien editointi ei ole mitään herkkua: Aiemmin toiminut wizard, jolla GUI luotu PC:lle antaa kasan virheilmoituksia. Muistista ei myöskään löydy enää, mitäköhän API:a se PC:n yhdistäminen laitteeseen käyttikään. Lisäksi koodin seasta löytyy "purkkaa" josta ei ole mitään käsitystä enää uudessa ympäristössä, mitä sen on alunperinkään pitänyt tehdä.
Siispä täydellisesti toiminut moduli-ajattelu on luonut kasan toimimattomia moduleita, joista ei ota selvää enää kukaan ja yksittäiset modulit pitää ensin portata uuteen versioon ympäristöstä!
Eri asia tietysti on, jos omatekoinen laite on koko ajan tulilla ja sen kanssa tehdään töitä säännöllisesti (jonkinlainen perus platformi, johon kaikki perustuu). Silloin ei tule äkkinäisiä isoja muutoksia vaan kaiken saa portattua sopivissa palasissa, kun tietää mikä osa on milloinkin muuttunut.
Helpompaa usein yo. tapauksessa lähteä uudessa ympäristössä puhtaalta pöydältä ja tehdä kaikki uudestaan ainakin toisessa päässä. Entäpä jos se, joka tämän homman tekee et olekaan sinä, vaan sinun jälkeesi firmaan tullut noviisi ja itse olet eläkkeellä?
Kommentoi
Ilmianna
Jaa
totahan se nykyään on. eihän vuoden vanhaan digiboksiin tai kolme vuotta vanhaan autoonkaan päivityksiä saa. osta uusi. osta, osta!
Kommentoi
Ilmianna
Jaa
gdrsagdsafgfd kirjoitti:
totahan se nykyään on. eihän vuoden vanhaan digiboksiin tai kolme vuotta vanhaan autoonkaan päivityksiä saa. osta uusi. osta, osta!
Taitaa vanhemmissa olla vara parempi. Sain 30v vanhaan autoon päivitettyä uudet renkaat. Vielä oikean kokoiset.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti
Eli PC-koneella käytät pelkästään BIOS:a, joka on jo sinällään käyttöjärjestelmä, ei tule mitään muiden käyttöjärjestelmien bugeja lainkaan, olettaen että Basic I/O Operating System on puhdas.

Ei edes Linuxin viruksiakaan.
Kommentoi
Ilmianna
Jaa
4 VASTAUSTA:
Uusista koneista tulee BIOS jäämään lähiaikoina kokonaan pois. Joko pakkiautomaateista on vaihdettu XP:koneet pois, ainakin vielä vuosi sitten oli käytössä.
Kommentoi
Ilmianna
Jaa
Grafiikkakiihdyttimissä on myös oma BIOS:nsa :) Väitätkö että nekin jäävät ja samantien kaikki firmwaret jäävät pois? Prosessorien sisäisetkin microcodet myöskin?

En usko oikein että täysin langattomasti bootattaisiin jostain cloudista eli serveriltä :D
Kommentoi
Ilmianna
Jaa
k3242g432kg4k3f kirjoitti:
Grafiikkakiihdyttimissä on myös oma BIOS:nsa :) Väitätkö että nekin jäävät ja samantien kaikki firmwaret jäävät pois? Prosessorien sisäisetkin microcodet myöskin?

En usko oikein että täysin langattomasti bootattaisiin jostain cloudista eli serveriltä :D
Ei kukaan ole väittänyt ettei firmwarea tarvita, ei se arduinokaan toimi ilman koodia. Mutta tuosta CP/M aikakauden jäänteestä on aika jättämässä.
http://etn.fi/index.php/13-news/7210-bios-katoaa-lopullisesti
Kommentoi
Ilmianna
Jaa
Ihan tuttua juttuahan on jokaiselle OIKEALLE OHJELMOIJALLE kirjoittaa pelkästään assembly-käskyjä käyttämällä oma käyttöjärjestelmä, jokaiselle normi-työttömällekin, ei se älykkyyttä yhtään vaadi, johan Linus Torwaldskin sen todisti.

Joo älykkyyttä ei tarvita, vain hyvät silmälasit.
Kommentoi
Ilmianna
Jaa
+Lisää kommentti

Tästä on poistettu viesti sääntöjen vastaisena.

Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

ohjelmointia Arduinolla

minulla on Arduino Mega ohjelmointilaite, en ole englannin kielen taitoinen, siitä johtuen en ole onnistunut käynnistämään Arduino laitetta, jotta olisin voinut aloittaa ohjelmointia. olen kyllä joskus ohjelmoinut onnistuneesti assemblerilla, joten tiedän ohjelmoinnista jotakin. Olisin kiitollinen jos joku kirjoittaisi avausohjeet.

5000 merkkiä jäljellä

Peruuta