Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Linux] - Komunikacja PC - uC

piterek-23 12 Gru 2015 20:56 591 6
  • #1 12 Gru 2015 20:56
    piterek-23
    Poziom 31  

    Witam,

    Chciałbym "pogadać" ze swoim mikrokontrolerem, ale widzę, że mój Linux jest oporny.

    Konkrety:
    -Raspberry Pi + systemem Raspbian Jessie
    -ATmega8 + BASCOM
    -połączenie UART ATmega8 zasilana 3V3
    -prędkość 19200

    Moje urządzenie reaguje na polecenie "S" gdy takie polecenie otrzyma to zwraca dane.
    I teraz tak:

    1. Otwieram na malinie dwa terminale
    -na pierwszym

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    -na drugim
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    -po wysłaniu takiej komendy na pierwszym otrzymuję odpowiedź z uC

    Super! Jest OK.

    2. Uruchamiam program MINICOM, wpisuję "S" moje urządzenie odpowiada.

    Super! Jest OK.

    3. Chciałbym uzyskać coś takiego w jednej komendzie którą wpiszę w terminalu:
    próbowałem coś takiego:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    No i tutaj kicha, nie chce działać :(

    Proszę o pomoc bo już jestem bliski nabawienia się nerwicy :(

    0 6
  • Pomocny post
    #2 12 Gru 2015 23:04
    vonar
    Poziom 28  

    Spróbuj tak:

    Kod: bash
    Zaloguj się, aby zobaczyć kod

    0
  • #3 13 Gru 2015 11:44
    piterek-23
    Poziom 31  

    Działa dokładnie tak jak chciałem.
    Przeogromnie dziękuję.

    Tak przy okazji dopytam...
    Czy w Bash można porównywać liczby zmiennoprzecinkowe?
    Potrzebuję zrobić coś takiego:
    -polecenie podane przez @vonar działa idealnie-PC odbiera od uC dane w formacie x.xx
    -chciałbym teraz porównać tą daną x.xx ze stałą daną y.yy
    -gdy x.xx jest mniejsze od y.yy to uruchomi się jakieś polecenie/skrypt np. /home/pi/skrypt.sh

    0
  • Pomocny post
    #4 13 Gru 2015 14:53
    vonar
    Poziom 28  

    Bash zna tylko liczby całkowite.
    Można wykorzystać bc, na przykład tak (porównanie do 1.23):

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Ale to wyglądałoby lepiej jako skrypt, a nie jedna komenda. ;)

    0
  • #5 13 Gru 2015 15:20
    piterek-23
    Poziom 31  

    vonar napisał:
    Bash zna tylko liczby całkowite.

    Tu właśnie jest problem :(
    vonar napisał:
    Ale to wyglądałoby lepiej jako skrypt, a nie jedna komenda.

    To ma być częścią większego skryptu :)

    Może będzie prościej jeżeli pokażę całość:
    Kod: bash
    Zaloguj się, aby zobaczyć kod

    Wszystko jest OK tylko nie wiem własnie jak porównać zmienną którą odczytam ze stałą którą sobie ustalę w programie aku_stan="3.25"

    0
  • #6 13 Gru 2015 16:24
    vonar
    Poziom 28  

    No jak nie wiesz skoro już masz to w skrypcie? :D

    0
  • #7 13 Gru 2015 16:39
    piterek-23
    Poziom 31  

    Ajajaj... jaki ja jestem głupiutki. Postawiłem # przed poweroff i nie chciało mi wysłać SMSa. l szukam jak głupi, a nie zmieniłem nr. tel. na swój :D

    Bardzo dziękuję za pomoc, bez Ciebie nie dałbym rady chyba nigdy tego zrobić.

    0