Go Down

Topic: seriale e php serial class (Read 3 times) previous topic - next topic

cirociro88

salve a tutti, ho ripreso l'esempio in rete per controllare da php un arduino collegato alla seriale.
dopo un pò di peripezie,(installazione ubuntu, apache,e php5, e permessi vari per accedere a dialout) "funziona nel senso che dalla pagina php ho 2 bottoni che inviano 2 caratteri a arduino, che li riceve e fa quello che deve fare.
il problema è che ogni volta che premo uno dei 2 bottoni si riavvia arduino.
Quote
<?php

error_reporting(E_ALL);
ini_set("display_errors", 1);
define("PORT","/dev/ttyACM0");

if (isset($_GET['action'])) {
        include "/usr/share/php5/php_serial.class.php";
    $serial = new phpSerial;
    $serial->deviceSet(PORT);
        $serial->confBaudRate(9600);
        $serial->confParity("none");
        $serial->confCharacterLength(8);
        $serial->confStopBits(1);
        $serial->confFlowControl("none");
       $serial->deviceOpen();
sleep(2);
        if ($_GET['action'] == "on") {
            $serial->sendMessage("1");
    } else if ($_GET['action'] == "off") {
            $serial->sendMessage("2");
        }
  $read = $serial->readPort();
    echo $read;
       $serial->deviceClose();
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Test Arduino</title>
</head>
<body>


<h1>Test Arduino</h1>

<a href="<?=$_SERVER['PHP_SELF'] . "?action=on" ?>">
<button style="width:100px""><h1>ON</h1></button>[/url]
<a href="<?=$_SERVER['PHP_SELF'] . "?action=off" ?>">
<button style="width:100px""><h1>OFF</h1></button>[/url]
</body>
</html>

ho provato come diceva un utente a mettere sleep(1); ma niente arduino si resetta sempre.
forse è anche normale visto che nel codice php ogni volta che premo uno dei 2 bottoni ho l'apertura della seriale...come risolvere?

Guglio

Ciao, il problema è che continui ad aprire e chiudere la seriale e mandi l'arduino in reset.
Metti una resistenza da 120Ohm fra +5 e Reset per disabilitare il reset automatico.
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection


Ricordo ai posteri che lo script sopra citato mi sembra NON FUNZIONI SU WINDOWS.
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

lesto

in teoria basta coambiare la riga define("PORT","/dev/ttyACM0");
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Guglio

Ciao, su phpclasses dicevano che in ambiente windows ci sono dei problemi in lettura o scrittura, adesso non mi ricordo bene quale dei due
ArduMAP: Mappa degli utenti che utilizzano Arduino.
http://www.guglio.net/ArduMAP

cirociro88

allora ho provato con la resistenza tra +5 e reset da 120 ohm ma niente si resetta sempre ogni volta che invio il comando con php.
ho provato anche con il condensatore da 10 uF
http://wp.yellowkazoo.com/?p=177
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection

entrambi le soluzioni non hanno funzionato .
come posso risolvere?

Go Up