Temat: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

Witam,

mam takie pytanie  podłączyłem Arduino  pod USB  i komunikuje się z nim z poziomu shella  przez komendę

echo -ne "\x77"  > /dev/ttyACM0 

pytanie  czy mogę jakoś za jednym zamachem wysyłać wartości większe niż  0xFF?

czy muszę ograniczyć się do tego a  po stronie Arduino  jakoś "sklejać" je  w jedną liczbę ?

ewentualnie  czy da się wysłać liczbę  jako wartość  ?

tj  gdy  wpisuję

echo -ne "7"  > /dev/ttyACM0 

otrzymuje  55  co  z tabeli  kodów ASCII  reprezentuję  7

2

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

echo -ne "\x77\x77\x77"  > /dev/ttyACM0

\x00 reprezentuje liczbę szesnastkową, więc po prostu wysyłasz kilka bajtów.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

ok tylko   ze   odbierając w Arduino dane  do  zmiennej      "wiadomosc"  która jest powiedzmy typu long

przy komendzie   echo -ne "\x01\x02\x03\x04"  > /dev/ttyACM0

najpierw będzie miała wartość    1    potem  zmieni sie na 2   potem na 3  i  na końcu a 4   a ja bym chciał żeby  miała wartość  1234

da się to jakoś  zrobić przesyłaniem  czy muszę już o to zadbać po stronie arduino ?

4

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

Odbierasz bajty. Tak po prostu. A jak to zinterpretujesz to zależy już od arduino. A w przykładzie masz rację - wysłałeś coś innego niż chciałeś odebrać. Bo wysłałeś 4 bajty danych a nie dwa jak zakładam.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

ok    a jak można zmieniać prędkość transmisji od strony  OpenWRT  ?    na innym routerze po wysłaniu  echo -ne "\x01\x02\x03\x04"  > /dev/ttyACM0  non stop odbiera jakieś  bezsensowne dane   myślę  że to przez  nie  dograną prędkość transmisji

6

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

stty, setserial. Tylko sobie wcześniej zainstaluj je za pakietów.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

 stty -F /dev/ttyACM0  speed 9600

dobrze robię ?

8

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

Dla arduino takie coś sobie wymyslili:

stty -F /dev/ttyACM0 cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

dzięki     smile

10

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

mam jeszcze małe pytanie, mianowicie żeby coś  wysłać  przez echo na port    muszę  mieć włączone    w innym  terminalu 

 cat  /dev/ttyACM0 

     da się może to jakoś pominąć ?

dziwna sprawa w tym jest taka że po jakimś czasie wysyłania bajtów     polecenie  odczytu  zamyka się samo z siebie   i w tedy nici z wysyłania

11

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

Żeby wysłać coś przez echo  nie musisz mieć otwartego strumienia przychodzącego, nie widzisz po prostu odpowiedzi tylko.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

no  zgoda   ale  jak wysyłam przez echo  odpowiedni bajt  powinna zapalić się u mnie lampka  a nie robi tego...   

ale widzę że to przez  to  że następuje reset mikroprocesora

źródło 

http://techniczny.wordpress.com/2012/04/04/laczenie-arduino-z-openwrt/

natomiast przy otwartym strumieniu przychodzącym  reset nie następuje

13

Odp: OpenWRT komunikacja z Arduino przez echo -ne > /dev/ttyACM0

Nie ma pojęcia co z tą komunikacją z arduino. Jeżeli faktycznie potrzebujesz strumienia otwartego (co uważam za zbędne) zrób

cat /dev/ttyACM0 > /dev/null &

i tyle.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.