Go Down

Topic: Arduino Yun eseguire script python (Read 1 time) previous topic - next topic

Zirko

Ciao a tutti,
vi scrivo perché non riesco a scovare l'errore nel codice prodotto.
Vi descrivo cosa vorrei ottenere. Vorrei eseguire, tramite Arduino Yun, uno script scritto in Python. Vi riporto il codice lato Arduino

Code: [Select]

void loop() {
 
  temp1 = analogRead(TempPT); //leggo la temperatura dal sensore 1
  temp2 = analogRead(TempPP); //leggo la temperatura dal sensore 2
  temp1 = (5.0 * temp1 * 100.0)/1024.0 ;
  temp2 = (5.0 * temp2 * 100.0)/1024.0 ;
  mediaTemp = (temp1+temp2)/2;
  Serial.print("Temperatura Media : ");
  Serial.println(mediaTemp,2); 
 

  p.begin("python");  // Linino Command
  p.addParameter("/mnt/sda1/python/T2.py"); // Parametri comando
  p.run();

  if(mediaTemp>25)
  {
    digitalWrite(13,HIGH);
  }
  else
  {
    digitalWrite(13,LOW);
  }

  delay(10000);
}




Di seguito vi riporto il codice relativo a  Python

Code: [Select]

out_file = open("/mnt/sda1/python/MkLog.txt","w")
out_file.write("This Text is going to out file\nLook at it and see\n")
out_file.close()


Lato Arduino quando esegue il codice fa tutto tranne eseguire lo script Python.
Avete suggerimenti ?
Mirko




nid69ita

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento: Regolamento
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
my name is IGOR, not AIGOR

5a2v0

#2
Dec 04, 2014, 10:02 am Last Edit: Dec 04, 2014, 10:03 am by 5a2v0
Ciao a tutti,
vi scrivo perché non riesco a scovare l'errore nel codice prodotto.
Vi descrivo cosa vorrei ottenere. Vorrei eseguire, tramite Arduino Yun, uno script scritto in Python. Vi riporto il codice lato Arduino

Code: [Select]

void loop() {
  
  temp1 = analogRead(TempPT); //leggo la temperatura dal sensore 1
  temp2 = analogRead(TempPP); //leggo la temperatura dal sensore 2
  temp1 = (5.0 * temp1 * 100.0)/1024.0 ;
  temp2 = (5.0 * temp2 * 100.0)/1024.0 ;
  mediaTemp = (temp1+temp2)/2;
  Serial.print("Temperatura Media : ");
  Serial.println(mediaTemp,2);  
  

  p.begin("python");  // Linino Command
  p.addParameter("/mnt/sda1/python/T2.py"); // Parametri comando
  p.run();

  if(mediaTemp>25)
  {
    digitalWrite(13,HIGH);
  }
  else
  {
    digitalWrite(13,LOW);
  }

  delay(10000);
}




Di seguito vi riporto il codice relativo a  Python

Code: [Select]

out_file = open("/mnt/sda1/python/MkLog.txt","w")
out_file.write("This Text is going to out file\nLook at it and see\n")
out_file.close()

 

Lato Arduino quando esegue il codice fa tutto tranne eseguire lo script Python.
Avete suggerimenti ?
Mirko
prova così, dichiari all'inizio del codice :
Code: [Select]
#include <Bridge.h>
Process Phyton;


poi nel punto del loop in cui vuoi eseguire quello script fai:

Code: [Select]
Phyton.runShellCommand("/mnt/sda1/python/T2.py");

pictux

Ciao

Quote
Phyton.runShellCommand("/mnt/sda1/python/T2.py");
.. solo se in testa al file .py ci mette

Code: [Select]
#!/usr/bin/env python

Zirko

Ciao.
ho provato entrambi i suggerimenti ma non ho avuto nessun effetto.
Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ?
Mirko

pictux

Quote
Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ?
o che forse ci siano invece problemi sui permessi di esecuzione del file python stesso?
Lancia questo comando:

Code: [Select]
chmod u+x /mnt/sda1/python/T2.py

e poi riporva ad eseguirlo!

Zirko

Ciao.
ho provato entrambi i suggerimenti ma non ho avuto nessun effetto.
Mi chiedevo è possibile che ci sia un qualche problema con i permessi sul file di testo che lo script python tenta di scrivere ?
Mirko
Ciao a tutti,
smanettando un po alla fine ci sono riuscito. Funziona.
Avevo modificato lo script secondo i vostri suggerimenti ma non girava perché mancava
Code: [Select]

Bridge.begin();




Grazie per i consigli !!!
Mirko


pictux

Ciao,
effettivamete non avevi postato il setup..

Go Up