Kirjoittaja Aihe: Arduino ja Processing ongelma  (Luettu 5727 kertaa)

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Arduino ja Processing ongelma
« : 18.07.15 - klo:20.44 »
Yritän arduinoa saada ohjattua koneella tämä ohjeen mukaan http://www.instructables.com/id/Computer-Controlled-Arduino/?ALLSTEPS Ongelma on se että kun painan run nappulaa Processing ohjelmassa valittaa se
Koodia: [Valitse]
Error opening serial port COM1: Port not found

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #1 : 18.07.15 - klo:21.22 »
Kuinka asensit Arduino IDE:n ?

Koodia: [Valitse]
sudo apt-get install arduino

Lisäksi oletko ryhmässä dialout ?
Koodia: [Valitse]
groups

Lisäksi mistä löytyy run-nappula ?
Itselläni ensiksi verify-nappula, jonka jälkeen onnistuneesti suoritettua sen upload-nappulaa.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #2 : 18.07.15 - klo:21.30 »
Lisäksi mistä löytyy run-nappula ?
Itselläni ensiksi verify-nappula, jonka jälkeen onnistuneesti suoritettua sen upload-nappulaa.
run-nappula on siis Processing-ohjelmassa ei Arduinon IDE:ssä. Arduino on repoista asennettu ja koodi menee siihen ihan ok. Ongelma on tuon Processing ohjelman kanssa.

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #3 : 18.07.15 - klo:21.46 »
run-nappula on siis Processing-ohjelmassa ei Arduinon IDE:ssä. Arduino on repoista asennettu ja koodi menee siihen ihan ok. Ongelma on tuon Processing ohjelman kanssa.

Onkos se jokin Windows-ohjelma. Oma ohjelmasi ei tarvitse mitään windows-ohjelmaa, vaan voit seurata tapahtumia arduino-iden serial-monitorista.

Mikäli Prosessing on windows-ohjelma, ja yrittää käpistellä com1-porttia, niin joudut tekemään wine:een symbolisen linkin comportille, jotta wine käyttää oikeaa comporttia.

Edit - Tuossa taitaa olla kerrotun samasta ongelmasta:
https://github.com/processing/processing/wiki/Serial%20Issues
« Viimeksi muokattu: 18.07.15 - klo:22.07 kirjoittanut kamara »

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Arduino ja Processing ongelma
« Vastaus #4 : 18.07.15 - klo:22.04 »
Processing on kyllä saatavilla Linuxillekin. Ei näytä löytyvän Ubuntun repoista (yritin etsiä 14.04:n varastoista). Miten asensit sen? Valitsithan oikean portin asetuksista?
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #5 : 18.07.15 - klo:22.09 »
Ei se ole windows ohjelma. Täältä latasin https://processing.org/download/?processing 64 Linux version. Arduino IDE pohjautuu tuohon ja onkin hyvin samanlainen mutta käyttö on tietokone ohjelmointiin arduinon ohjelmoinnin sijaan. Tarkoitus olis siis tehdä ohjelma jolla voisin ohjata arduinoa tietokoneen näppiksellä ja hiirellä. Porttihan varmaankin on väärä, niin minä ainakin tuon virheilmoituksen ymmärrän mutta mitä sille voi tehdä? Arduinon IDE:ssä ei ole kuin vaihtoehto /dev/tty/ACMO ja Processingistä ei löydy mitään ainakaan tool valikon alta.

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #6 : 18.07.15 - klo:22.11 »
Processing on kyllä saatavilla Linuxillekin. Ei näytä löytyvän Ubuntun repoista (yritin etsiä 14.04:n varastoista). Miten asensit sen? Valitsithan oikean portin asetuksista?

Ongelmana lieneen, että portin asetuksia ei löydy. Oletuksena saattaa olla /dev/ttyS0, mutta se pitäisi sitten muuttaa symboliseksi linkiksi osoittamaan arduinon porttia (/dev/ttyACM0 tai /dev/ttyUSB0 en muista kummin).

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Vs: Arduino ja Processing ongelma
« Vastaus #7 : 18.07.15 - klo:22.17 »
Hmm, nähtävästi tuo toimii sen verran eri tavalla kuin Arduinon IDE ja kun en ole sitä käyttänyt niin tuo kysymykseni meni vähän harhaan. Eli portti asetetaan koodissa ja ilmeisesti tuon pitäisi ohjeen mukaan kysyä sitä jotenkin tuossa ikkunan alareunan laatikossa. En kyllä ymmärtänyt tuosta koodista miten se sitä kysyisi, mutta ehkä se on jokin Processing:n ominaisuus.

arduinon porttia (/dev/ttyACM0 tai /dev/ttyUSB0 en muista kummin)
Arduino käyttää noita molempia. Se kumpaa kulloinkin käytetään riippuu käytetystä Arduinosta. En tosin itsekään muista kumpia FTDI:n piiriin perustuvat (vanhemmat kuin Uno) käyttävät ja kumpaa AVR:llä USB:n toteuttavat (Uno, Leonardo yms. uudemmat) käyttävät
« Viimeksi muokattu: 18.07.15 - klo:22.20 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #8 : 18.07.15 - klo:22.41 »
Arduinon IDE:ssä ainakin tulee ponnahdusikkuna joka ehdottaa porttia ja Processing on lähes identtinen ainakin ulkoisesti niin luulis tekevän samalla lailla mutta ei.

arduinon porttia (/dev/ttyACM0 tai /dev/ttyUSB0 en muista kummin)
Arduino käyttää noita molempia. Se kumpaa kulloinkin käytetään riippuu käytetystä Arduinosta. En tosin itsekään muista kumpia FTDI:n piiriin perustuvat (vanhemmat kuin Uno) käyttävät ja kumpaa AVR:llä USB:n toteuttavat (Uno, Leonardo yms. uudemmat) käyttävät
Unon portti on /dev/ttyACM0 ja Nano /dev/ttyUSB0. Nano on Atmel 328p piirillä eli sama kuin unossa eri pakkauksessa. Molemmat siis AVR.
« Viimeksi muokattu: 18.07.15 - klo:23.30 kirjoittanut welmar »

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #9 : 19.07.15 - klo:10.43 »
Löytyykö listasta Arduinon portti:
Tällaisen esimerkin löysin.
Koodia: [Valitse]
// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;       

// List all the available serial ports:
println(Serial.list());

// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 9600);
 
// Send a capital A out the serial port:
myPort.write(65);

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #10 : 19.07.15 - klo:13.03 »
Löytyykö listasta Arduinon portti:
Tällaisen esimerkin löysin.
Koodia: [Valitse]
// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;       

// List all the available serial ports:
println(Serial.list());

// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 9600);
 
// Send a capital A out the serial port:
myPort.write(65);
Tämän avulla olen päässyt eteenpäin. Alkuperäisessä esimerkkikoodista puuttui toi
Koodia: [Valitse]
println(Serial.list()); Nyt vielä jotain ongelmaa,
Koodia: [Valitse]
it look's like yuor mixing "active" and "static" modes Yritän selvittää ja jos keksi ratkaisua palaan asiaan. Kiitoksia jälleen.

kamara

  • Käyttäjä
  • Viestejä: 3032
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #11 : 19.07.15 - klo:13.53 »
Löytyykö listasta Arduinon portti:
Tällaisen esimerkin löysin.
Koodia: [Valitse]
// Example by Tom Igoe

import processing.serial.*;

// The serial port:
Serial myPort;       

// List all the available serial ports:
println(Serial.list());

// Open the port you are using at the rate you want:
myPort = new Serial(this, Serial.list()[0], 9600);
 
// Send a capital A out the serial port:
myPort.write(65);
Tämän avulla olen päässyt eteenpäin. Alkuperäisessä esimerkkikoodista puuttui toi
Koodia: [Valitse]
println(Serial.list()); Nyt vielä jotain ongelmaa,
Koodia: [Valitse]
it look's like yuor mixing "active" and "static" modes Yritän selvittää ja jos keksi ratkaisua palaan asiaan. Kiitoksia jälleen.

Pitäisiköhän asetusohjelmanpätkä laittaa setup:n sisään ?
Koodia: [Valitse]
import processing.serial.*;
Serial port;
void setup(){
    //Sets the size
    size(300, 300);
    //Sets the neutral background color
    background(0);
    frameRate(10);
    port = new Serial(this,Serial.list()[0] ,9600);
}

void draw(){
    //This reads to see if a key is pressed
    if(keyPressed){
        //These If Statements check to see if a certain key is pressed
        if(key == 'a' || key == 'A'){
            //These backgrounds are the representative colors of the LEDs
            background(50, 20, 200);
            port.write('B'); // This writes to the serial port for the Arduino
        }
        if(key == 's' || key == 'S'){
            background(0, 100, 0);
            port.write('G');
        }
        //This is for the reset of the screen and LEDs on Arduino
        if(key == 'r' || key == 'R'){
            background(0,0,0);
            port.write('w');
        }
    }
}

Edit - Itse tekisin tietokonepuolen ohjainohjelman pythonilla, mutta periaatteessa ei kielellä pitäisi olla väliä.
Jos kiinnostusta siitä löytyy, niin hyvä esimerkkiohjelma on miniterm.py
Tässä yksi yksinkertainen esimerkki:
http://www.filewatcher.com/p/GMapCatcher-0.7.5.0.tar.gz.644774/GMapCatcher-0.7.5.0/gmapcatcher/pyGPSD/miniterm.py.html
Lukee GPS-dongelia.

Ja tässä toinen vähän monimutkaisempi esimerkki: https://code.google.com/p/gnublin/source/browse/lpc3131/examples/uart/miniterm.py?r=98328962053769fffd5f50caa7fb80d0be525521
« Viimeksi muokattu: 19.07.15 - klo:14.11 kirjoittanut kamara »

welmar

  • Käyttäjä
  • Viestejä: 1582
    • Profiili
Vs: Arduino ja Processing ongelma
« Vastaus #12 : 19.07.15 - klo:22.20 »
Valittaa Error opening serial port /ttyS0: incorrect serial port. Tuli muuta tekemistä nyt pariksi päiväksi mutta yritän vähän tutkia noita python juttuja. Nopeasti vilkaistuna en kuitenkaan oikein ymmätänyt miten noita muokkais niin ottais näppikseltä komentoja vastaan niin että sais vaikka sen ledin palamaan pinnissä 1.
Miksei tuossa voi olla mitään kommontointia? Vois edes jotain ymmärtää mutta kun ei ole mitään niin on vähän hankalaa.
« Viimeksi muokattu: 19.07.15 - klo:22.26 kirjoittanut welmar »