Moikka, kysymys? Onko jotain konstia millä saan arduinon lähettämään tietokoneelle tietoa? Ymmärrykseni mukaan pystyn vain lataamaan arduino ohjelman arduinoon, mutta miten saisin esimerkiksi lämpötila arvon jotenkin syötetyksi arduinosta suoraan tietokoneelle?
Kiitos jo etukäteen
arduino to pc
8
125
Vastaukset
- Anonyymi
Silloin kun sinulla on USB-johto (kaapeli) kiinni PC:ssäsi niin olet yhteydessä sarjaliikenteen kanssa siis RS232 kanssa PC koneeseesi. Kun ohjelmassasi on "serial.println"-lauseita niin ne tulostuvat ohjelmointitilassa tuon USB-kaapelin kautta PC koneen monitorille.
Katso:
https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-monitor
Varsinaisessa ohjelman ajossa sinulla pitäisi olla jokin RS232-pääteohjelma, jolla luet sitä samaa RS232-porttia samoilla asetuksilla kuin arduinon ohjelmassakin.
Yksi sarjaporttiohjelma on esim "PUTTY" mutta näitä on satoja muitakin....- Anonyymi
Eli siis Arduino on USB - kaapelilla kiinni tietokoneessa.
Tuon USB - kaapelin kautta tapahtuu tiedonsiirto siten, että tietokoneen puolelle ilmaantuu USB - driverin kautta virtuaalinen sarjaportti jonka kanssa voi sitten keskustella pääteohjelman tai vaikkapa Python - ohjelmointikielen avulla. Virtuaalisen sarjaportin toisessa päässä on Arduinon oma prosessori.
Mitään fyysisiä sarjaportteja ei tässä tarvita jos tuo USB - liitäntä kelpaa.
- Anonyymi
Lähinnä miten saan arduino-clin kautta toimimaan tuon serial monitorin. Esimerkkinä jos rakennan valo katkaisimen joka sytyttää valot, mutta olisi tarkoitus tietokone ohjelman kanssa kommunikoida ja kertoa tälle ohjelmalle myös valojen olevan päällä. Saitko kiinni ajatuksesta? Tuo taisi jo kertoakkin kommenttisi miten se toimii, mutta tuo rs on minulle vielä tuntematon käsite.
- Anonyymi
Hyvä aloittaa tutustuminen sarjaporttiin. kuten tuosta https://www.hutasu.net/elektroniikka/sulautettu-elektroniikka/sarjaliikenne-ja-sarjaportti/
Tai yleensä guuglata asiasta.
Niin tuon cli:n kanssa. et todenäköisesti onnistu. Tai en tiedä kun en ole arduinon kanssa pelehtinyt. AVR on paljon tutumpi vaikka se on työkiireiten takia ollut vuosikymmenen jäissä.
Eli siinä kortissasi on joku sarjaportti liitäntä (rs tai USB). Sen kautta sitten kulkee viestit PC-arduino. Nyky PC koneissa ei taida olla enää rs-portteja, ainakaan läppärimuodossa. Pöytäkoneista pitäs löytyä. - Anonyymi
Anonyymi kirjoitti:
Hyvä aloittaa tutustuminen sarjaporttiin. kuten tuosta https://www.hutasu.net/elektroniikka/sulautettu-elektroniikka/sarjaliikenne-ja-sarjaportti/
Tai yleensä guuglata asiasta.
Niin tuon cli:n kanssa. et todenäköisesti onnistu. Tai en tiedä kun en ole arduinon kanssa pelehtinyt. AVR on paljon tutumpi vaikka se on työkiireiten takia ollut vuosikymmenen jäissä.
Eli siinä kortissasi on joku sarjaportti liitäntä (rs tai USB). Sen kautta sitten kulkee viestit PC-arduino. Nyky PC koneissa ei taida olla enää rs-portteja, ainakaan läppärimuodossa. Pöytäkoneista pitäs löytyä.Vielä pöytäkoneisiin saa PCI-sarjaportteja (RS232). eivätkä ole edes kalliita.
DeLock PCI-Express x1 kortti, 2xsarjaporttia ja 1xrinnakkaisportti, RS-232
Läppäriin voi löytyä jokin palikka USB-portin kautta ellet sitten halua sitä itse tehdä. Mutta ymmärtääkseni useimmat ohjelmointikielet pystyvät lukemaan tuota Arduinon USB-liitännän kautta lähettämää viestiä ja tietenkin myös lähettämään arduinolle viestejä.
- Anonyymi
1. Eli tarvitset MAX202 sarjaportti muuntimen andruinoon.
2. Sarjaportti kaapeli
3. Sarjaportti koneeseen.
4. Perus tiedot sarjaportti ohjelmoinnista
5. Bonus Sarjaportti protokollat kannattaa tehdä kiinteän mittaisina viesteinä
jossa on erilliset lopetus ja aloitus merkit...
[LEDI: 01 ON .]
[LEDI: 01 OFF]
Tämä helpottaa ohjelmointia huomattavasti.
1. https://www.digikey.fi/fi/products/detail/dfrobot/DFR0077/7597122?utm_adgroup=General&utm_source=google&utm_medium=cpc&utm_campaign=Smart Shopping_Product_Zombie SKU&utm_term=&productid=7597122&gclid=CjwKCAjw14uVBhBEEiwAaufYx0SzFKG8YNOVrqeEpRG5m78fGZm7Tlvfo3DgEzXY239V3rr-gYX6QRoCOMoQAvD_BwE
2. https://www.satshop.fi/rs232-male-rs232-female-cable-2m.html?gclid=CjwKCAjw14uVBhBEEiwAaufYx6m8gmtytxhpqkUdyF2Ssuw3ODhlhvDJf3WiTsxE4mm-Dzi4sPuixhoCCw8QAvD_BwE
3. https://www.elfadistrelec.fi/fi/muunnin-usb-sarja-rs232-aten-uc232a/p/12519009?ext_cid=shgooaqfifi-Shopping-CSS&gclid=CjwKCAjw14uVBhBEEiwAaufYx3GrA4ePjOaKWBdpepM7fA_GJZHsIIUhLBHLTAl6Paox0jXcJJ-6SBoCXwkQAvD_BwE&gclsrc=aw.ds
4. https://www.youtube.com/watch?v=qCjCRBLv_VM - Anonyymi
Helpottaa muiden neuvomista jos kerrot mitä ohjelmoitikieltä hallitset tai aiot käyttää. Arduinoa varten tietenkin mitä tuo arduinon C-muunnos sitten onkin mutta sen lisäksi sinun pitää osata joku kieli , joka tukee sitä vastaanottavaa PC:tä. Ja jos kerran aiot Arduinoa ohjelmoida eikö olisi järkevää opetella sitä PC:tä varten samaa pohjaa oleva kieli. C#, C jne.
- Anonyymi
C-kieli ei ole ainoa vaihtoehto.
Konekielelle käännettäviin kieliin kuuluu myös Objectpascal, ja sitä kääntää freepascal -kääntäjä:
https://wiki.freepascal.org/
Huomaa kuitenkin: Jos et itse koodaa arduinolle (usein AVR -prosessori) dynaamista muistinhallintaa, niin silloin objectpascalissa ei voi käyttää class -sanalla määriteltyjä luokkia/objekteja, vaan ainoastaan object -sanalla määriteltyjä voi käyttää, samoin dynaamisia merkkijonoja ei voi käyttää, vaan ainoastaan vanhanaikaisia pascal -merkkijonoja voi käyttää, siis näin:
type
Str63 = String[63];
var
S : Str63;
Tuollainen S -merkkijono kuluttaa 64 tavua RAM -muistia, 1 tavu pituudelle, ja 63 tavua merkeille. Tuossa ei ole siis dynaamista muistinkäyttöä lainkaan, vaan tuon S:n koko on kiinteästi 64 tavua, ja maksimipituus merkkijonolle on 63 merkkiä.
Toki voit itse valita haluamasi maksimipituuden kullekin merkkijonolle, maksimi mahdollinen on 255 merkkiä, mutta kannattaa ottaa huomioon todellinen tarve, sillä mikrokontrollereissa on usein hyvin niukasti RAM -muistia saatavilla, ja siitäkin osa menee pakollisiin tarpeisiin kuten pinomuistiksi.
Sama rajoitus koskee myös C -ohjelmointia, eli kekomuistista varattavia muistitiloja ei voi käyttää, paitsi jos itse ohjelmoit tuen niille.
ObjectPascalissa: Jos välttämättä tarvitset dynaamisen muistinhallinnan, niin sen voi ohjelmoida itse, ja asettaa sen voimaan SetMemoryManager() -aliohjelmalla.
JOS aiot sotkea assembleria korkean tason kielen sekaan, niin tämä on Objectpascalissa helpompaa kuin C/C -kielissä. Varsinkin gcc:ssä tuollainen on erittäin hankalaa.
Tulkattavan kielen (kuten Java) käyttöä mikrokontrollerissa en voi suositella: silloin sekä Javaohjelman että Java -ajoympäristön pitäisi mahtua yhtäaikaa muistiin, että olisi edes mahdollista !
Tuosta FreePascalista löytyy versioita AVR:lle, PC:lle (Windows, Linux, molemmat sekä 32- että 64 -bittisenä versiona).
Jos aiot koodata jotain, mikä vaatii ajan tarkkaa käsittelyä, niin todennäköisesti tuollaiset joutuu kirjoittamaan assemblerilla joka tapauksessa. Siis keskeytyskäsittelijöitä yms.
Toki riippuu tapauksesta: jos tulee kellokeskeytys kerran sekunnissa, niin sen voi hoitaa Objectpascalillakin, mutta jos niitä kellokeskeytyksiä tulee 10.000 tai 100.000 kertaa sekunnissa, niin assembler voi olla ainoa vaihtoehto, nopeuden takia.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Mies kateissa Lapualla
Voi ei taas! Toivottavasti tällä on onnellinen loppu. https://poliisi.fi/-/mies-kateissa-lapualla372621- 382467
- 951779
Joo nyt mä sen tajuan
Kaipaan sua, ei sitä mikään muuta ja olet oikea❤️ miksi tämän pitää olla niin vaikeaa?861321Olen aina vain
Ihmeissäni siitä että oletko niin tosissani minusta? Mitä muut ajattelisi meistä?511320Olipa ihana rakas
❤️🤗😚 Toivottavasti jatkat samalla linjalla ja höpsöttelykin on sallittua, kunhan ei oo loukkaavaa 😉 suloisia unia kau51205Kansanedustaja Teemu Keskisarja ei osallistu Linnan juhliin vaan natsikulkueeseen
Kerääkö poliisi taas natsiliput pois osallistujilta?2871132- 561048
Kumpi teistä rakastui ensin?
Sinä vai kaipaamasi henkilö (jos siis tunteet ovat molemminpuolisia)? Tai jos kyse ei ole vielä rakkaudesta, niin kumpi38799- 27770