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

Poszukuję rozwiązania na rejestrator parametrów pracy - Arduino?Atmega?

Skitt01 23 Kwi 2018 13:36 1578 65
  • #31
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • PCBway
  • #32
    Zaquadnik
    Poziom 27  
    Ale po co oficjalna karta? Kupujesz kartę 8 GB (no około 20 zł w sklepie), ściągasz system (np. Raspbian) z raspberrypi.org i nagrywasz przy użyciu win32diskimager.
    A jeśli nie działa Ci GPIO czy I2C to możesz napisać na forum raspberrypi. Społeczność jest ogromna i na pewno pomoc znajdziesz. Czy włączyłeś oba używając skryptu raspi-config?
    Jeśli chodzi o implementację na arduino, tam też przecież musić mieć coś, na co nagrasz wyniki pomiarów, więc koszt karty i tak Cię nie ominie.
    EDIT: A co do znania się lub nie. Wkleiłem linki do tutoriali krok po kroku...
  • PCBway
  • #33
    Kuniarz
    Moderator Projektowanie
    Panowie, ta dyskusja zakrawa o walkę o wyższości jednych świąt nad drugimi...
    Wszelkie rozwiązania na Raspberry wiążą się z tym, że trzeba wydać więcej pieniędzy i poświęcić więcej (znacznie więcej) czasu na stworzenie tego systemu...

    Zadanie jest proste, więc rozwiązanie też takie być powinno.
    Trzy pomiary, czyli trzy wartości ADC.

    Mikrokontroler z serii Atmega + FTDI jako okno na świat.

    Program w Bascom (śmiało, jedźcie !) składa się z kilkunastu linijek:

    - inicjalizacja sprzętu i zmiennych
    - pętla główna :
    - pomiar 3x adc
    - wysłanie na UART czasu i trzech wartości po przeliczeniu
    - pauza

    To wszystko. Do zrobienia w jeden wieczór.
  • #34
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #35
    Zaquadnik
    Poziom 27  
    Trudno odmówić Wam racji. Nie upieram się przy moim rozwiązaniu i muszę przyznać, że zapomniałem o istnieniu czegoś takiego jak BASCOM. Jeśli ATmega ma być lo tylko do zbierania próbek i wysyłania ich na PC to jest to dość proste do zrobienia, ale i tak trzeba na PC napisać program, który zbierze dane, zapisze je do pliku i ew. wykreśli wykres. Na Raspberry masz to samo, tylko nie wymaga podłączenia tego do PC. Masz wszystko w małym module. Dla mnie to zaleta. Właśnie pracuje nad podobnym rejestratorem, który ma być wbudowany w maszynę i nie można do niej zewnętrznie podłączyć PC po RS232. Stąd moja propozycja do rozważenia przez autora wątku.

    Edit. A dlaczego aż miesiąc? System masz gotowy od Raspberry pi foundation. Biblioteki do Pythona także. Do tego tutoriale krok po kroku. Jedyne, co trzeba napisać samemu to program w Pythonie do rejestracji i obroni danych.
  • #36
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #37
    Kuniarz
    Moderator Projektowanie
    Zaquadnik napisał:
    A dlaczego aż miesiąc? System masz gotowy od Raspberry pi foundation. Biblioteki do Pythona także.

    Jeśli ktoś ma mało do czynienia z Linuxem, Pythonem itd, to zanim się w tym wszystkim zacznie dobrze czuć, to minie sporo czasu.

    Tak czy inaczej - pytanie do AUTORA TEMATU - czy chcesz to zrobić na Atmedze, tak jak proponowałem ? Jeśli tak, to poprowadzę Cię krok po kroku i przed majówką wszystko Ci zagra ;-)
  • #38
    Zaquadnik
    Poziom 27  
    nowyARM napisał:
    Zaquadnik napisał:
    Biblioteki do Pythona także. Do tego tutoriale krok po kroku

    A co mam zrobić jak krok po kroku nie działa?


    Pisałem o tym, że jest forum.
    A co jak nie zadziała na Arduino?
    Inna sprawa, jeśli arduino czy inna ATmega będzie miała tylko zbierać próbki i wysyłać je do PC to i tak na PC będzie trzeba napisać program, który będzie zapisywał je do pliku. I co jak on nie zadziała?
    Tak to możemy się wykłócać w nieskończoność. Inna sprawa, że elektronika/programowanie wymaga ciągłego rozwoju.
    Jak pisałem, od autora wątku zależy, które rozwiązanie wybierze.
  • #39
    Kuniarz
    Moderator Projektowanie
    Zaquadnik napisał:
    zbierać próbki i wysyłać je do PC to i tak na PC będzie trzeba napisać program, który będzie zapisywał je do pliku. I co jak on nie zadziała?


    Metodą Copy'ego Paste'a przenosisz dane do Excella i trzema ruchami myszki robisz wykresy :)
  • #40
    Zaquadnik
    Poziom 27  
    Kuniarz napisał:
    Zaquadnik napisał:
    zbierać próbki i wysyłać je do PC to i tak na PC będzie trzeba napisać program, który będzie zapisywał je do pliku. I co jak on nie zadziała?


    Metodą Copy'ego Paste'a przenosisz dane do Excella i trzema ruchami myszki robisz wykresy :)


    Można i tak, choć zakładałem nieco więcej automatyki =]
    Rozumiem, że logujesz przy pomocy np. Putty do pliku tekstowego?
  • #41
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • Pomocny post
    #42
    tronics
    Poziom 37  
    I2C może nie działać ootb, bo jest takie narzędzie jak raspi-config gdzie określone moduły się uruchamia (w tym także możliwość podłączenia przez SSH, bo jest domyślnie wyłączona, dla Pi3 w każdym razie). A jeśli chodzi o gpio to akurat nie wiem co na raspberry by mogło nie działać, na innych sprzętach może, bo trzeba różnorakie protezy stosować (np. na Orange jest WiringOP między innymi w kilku wersjach).
    Dla średnio ogarniającej osoby postawienie serwera apache, skryptu php generującego wykresy z pliku oraz skryptu pythonowego generującego logi z ADC to jest jeden wieczór roboty. Z pełnym debugowaniem, restartem jak coś się zwiesi etc. etc.
  • #43
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #44
    tronics
    Poziom 37  
    @nowyARM - a nie znając uC zrobi rejestrator na uC? Ja np. nie jestem ani specem od PHP, ani specem od Pythona, a potrafię. Bo potrafię czytać i szukać. Jak ktoś tego nie potrafi to i na mikrokontrolerze nie zrobi.
  • Pomocny post
    #45
    NoweMillennium
    Poziom 17  
    Skitt01 napisał:
    Jestem w potrzebie skonstruowania rejestratora parametrów pracy. Ma odpowiadać za monitorowanie napięcia, natężenia i temperatury. Będzie współpracował z laserem diodowym.
    Bardzo przydatnym byłaby możliwość utworzenia i zapisu wykresu z podanymi parametrami. Przekopałem multum projektów na Arduino, lecz nie znalazłem żadnego z tymi czterema warunkami.

    Najtaniej to chyba wyjdzie ESP8266. Na podstawie https://www.elektroda.pl/rtvforum/topic3357545.html zrobiłem odczyt temperatury z DS18B20, teraz dodaję DHT-11. Wyniki sa zapisywane na ThingSpeak, przykład wykresu https://thingspeak.com/channels/325389. Nie ma problemu obsłużyc inne czujniki, np INA226. Koszt ESP8266 jest niższy niż ArduinoUNO a możliwości większe.

    Co do Maliny, Pomarańczy czy Banana. Jesli zapis na SD zostanie przerwany, to poczatkujący nie będzie miał innego wyjścia jak stawiać system od nowa, instalowac programy itd. Można oczywiscie robic kopię bezpieczeństwa ale nie jest to zbyt wygodne.
  • #47
    Skitt01
    Poziom 4  
    Dziękuję Wam za dyskusję, jest bardzo konkretna.
    Sprawdziłem wszystkie proponowane przez Was rozwiązania, w tym ESP8266 (swoją drogą, bardzo praktyczna rzecz).

    Unikam opcji przesyłu danych na serwer przez WiFi. Muszę doczytać na ten temat, bo nie wziąłem pod uwagę, że można przesyłać lokalnie.
    Możecie mi to przybliżyć? Czy wtedy układ nie potrzebuje dostępu do internetu, lecz tylko połączenia z serwerem lokalnym? Czy można do tego użyć samego PC czy koniecznie poprzez router WiFi?

    A co powiecie na pomiar za pomocą efektu Halla? Widziałem dość tanie układy (~10zł) do Arduino z czujnikami Halla.
    Wydaje się to być wydajną i skuteczną metodą (nie trzeba wzmacniać sygnału do pomiaru - o ile dobrze rozumiem).

    Czy na wspomnianym A/C (ADC0832CCN) mogę zrealizować różne pomiary na różnych jego kanałach? Np. na jednym pomiar napięcia a na drugim natężenia? Lub napięcie+temperatura?


    Malinka jak na razie niestety odpada - nie mam nań wolnych funduszy a za cenę maliny zbuduję cały zasilacz ;)
  • #49
    Skitt01
    Poziom 4  
    Kuniarz napisał:
    gdyby tak zostało to powiedziane od razu


    przepraszam, musiałem dopiero rozważyć temat bo malin nie znałem w ogóle a widziałem gdzieś Pi0 za 30zł. Jednak wolałbym jak na razie zostać przy Arduino, bo ten temat znam lepiej.
  • #50
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #51
    ditomek
    Poziom 20  
    To i ja dwa słowa...
    Poszukałbym darmowego loggera danych. Powinieneś coś znaleźć bez większych problemów.
    To prosty program którego zadaniem jest wrzucać wszystko co odbierze na porcie szeregowym do pliku tekstowego.
    Do reszty użyłbym arduina Uno, Nano czy mega.
    Program który co ileś milisekund zmierzona temperaturę i napięcie z wewnętrznego przetwornika wrzuci na port szeregowy można chyba napisać w 20 linijkach.
    drugie 20 linijek to obsługa dowolnego zegara na I2C.
    Ale może logger którego znajdziesz będzie miał możliwość umieszczania znaków czasowych w pliku...

    Nie mogę jak czytam żeby do takiego projektu używać R-pi albo innych armat.
  • #52
    Zaquadnik
    Poziom 27  
    ditomek napisał:
    To i ja dwa słowa...
    Poszukałbym darmowego loggera danych. Powinieneś coś znaleźć bez większych problemów.
    To prosty program którego zadaniem jest wrzucać wszystko co odbierze na porcie szeregowym do pliku tekstowego.
    Do reszty użyłbym arduina Uno, Nano czy mega.
    Program który co ileś milisekund zmierzona temperaturę i napięcie z wewnętrznego przetwornika wrzuci na port szeregowy można chyba napisać w 20 linijkach.
    drugie 20 linijek to obsługa dowolnego zegara na I2C.
    Ale może logger którego znajdziesz będzie miał możliwość umieszczania znaków czasowych w pliku...

    Nie mogę jak czytam żeby do takiego projektu używać R-pi albo innych armat.


    Ja tylko chciałem uzasadnić propozycję zastosowania Raspberry Pi (to tak odnośnie Twojego ostatniego zdania). W mojej propozycji malutkie Raspberry Pi Zero robi wszystko. Czyli zbiera dane, loguje do pliku, robi wykresy, udostępnia dane po www i co tam jeszcze sobie wymarzysz. Całość można zabudować na "opomiarowanym" urządzeniu. Może to pracować 24/7 birąc niewiele energii.
    Twoje rozwiązanie wymaga prostego uC, fakt, ale całość logowania danych przerzucasz na "duży" komputer PC.
    Dlatego, jak pisałem, wszystko zależy od tego czego potrzebuje autor tematu. W obu proponowanych rozwiązaniach są wady i zalety.
  • #53
    NoweMillennium
    Poziom 17  
    ditomek napisał:
    Program który co ileś milisekund zmierzona temperaturę i napięcie z wewnętrznego przetwornika wrzuci na port szeregowy można chyba napisać w 20 linijkach.
    drugie 20 linijek to obsługa dowolnego zegara na I2C.

    Bez kontroli błedów tak ale jak ma to działac 24h/dobe, to trzeba przewidzieć wszystkie możliwe problemy. Arduino, przynajmniej na AVR, wykłada się na statusie $F8 TWI.

    Dodano po 17 [minuty]:

    Zaquadnik napisał:
    Raspberry Pi Zero robi wszystko. Czyli zbiera dane, loguje do pliku, robi wykresy, udostępnia dane po www i co tam jeszcze sobie wymarzysz. Całość można zabudować na "opomiarowanym" urządzeniu. Może to pracować 24/7 birąc niewiele energii.

    Mniej niż STM32F1 czy F4?
  • #55
    Zaquadnik
    Poziom 27  
    NoweMillennium napisał:
    ditomek napisał:
    Program który co ileś milisekund zmierzona temperaturę i napięcie z wewnętrznego przetwornika wrzuci na port szeregowy można chyba napisać w 20 linijkach.
    drugie 20 linijek to obsługa dowolnego zegara na I2C.

    Bez kontroli błedów tak ale jak ma to działac 24h/dobe, to trzeba przewidzieć wszystkie możliwe problemy. Arduino, przynajmniej na AVR, wykłada się na statusie $F8 TWI.

    Dodano po 17 [minuty]:

    Zaquadnik napisał:
    Raspberry Pi Zero robi wszystko. Czyli zbiera dane, loguje do pliku, robi wykresy, udostępnia dane po www i co tam jeszcze sobie wymarzysz. Całość można zabudować na "opomiarowanym" urządzeniu. Może to pracować 24/7 birąc niewiele energii.

    Mniej niż STM32F1 czy F4?


    No właśnie tu jest ten problem. Proponowane rozwiązanie na uC ma zaprząc PC do logowania wartości, co nie jest specjalnie energooszczędne. Z kolei implementacja wszystkiego (włącznie z logowaniem danych np. na karcie SD) będzie podobnie czaso i pracochłonna co rozwiązanie na RPi.
  • #56
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #57
    tronics
    Poziom 37  
    Cytat:
    Mając uC z kartą Ethernet, np STM31F107

    STM32F107 ma MAC, a PHY trzeba dorobić. Nie widziałem popularnych i tanich płytek-gotowców na tych układach z RJ45, może kolega widział to warto byłoby tą informacją się podzielić. Libsy arduino na tym może idą (niektóre z F103 itp. działają) ale czy każda i bezbłędnie to nikt nie zapewni. Poza tym raczej nie będą one super optymalne dla tej architektury.
    Cytat:
    Zaręczam, że obsługa Ethernetu i karty SD na Arduino to kilkanaście linijek kodu.

    Tak samo w pythonie...
    https://wiki.python.org/moin/UdpCommunication
    https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
    Wygląda to w jakikolwiek sposób trudniej? Nie. A mamy możliwość większość operacji objąć try-except, wykryć z czym problem i odpowiednio obsłużyć. Na arduino też się jakoś da, ale czy tak wygodnie? Zresztą dyskusja o wyższości jednego nad drugim jest bezcelowa w kontekście tego tematu ponieważ autor już wybrał.
  • #58
    Użytkownik usunął konto
    Użytkownik usunął konto  
  • #59
    tronics
    Poziom 37  
    Cytat:
    Co może się stać? W uC flash się nie skasuje, a gdy na kartę z systemem będzie wykonywany zapis? System może juz nie wstac, prawda?

    A na uC padnięta karta będzie logować? Też nie.
    Cytat:
    ale jak zrobi się samemu, to zdecydowanie taniej
    Gdyby autor potrafił i miał techniczne możliwości to nie byłoby tego tematu, zaś zl26arm jest dawno wycofane, a kosztowało >100zł.
    Cytat:
    16..60 razy dłużej niz uC bez systemu

    Łał... niesamowite. Miesiąc temu naprawiałem niemiecki dozownik/waga/sterownik za ~500 euro i mimo iż było na MCS-51 to całe inicjowanie zabierało tyle co start SBC, a może i dłużej. Ciekawe czemu, przecież urządzenia na uC powinny być w ciągu pół sekundy gotowe do pracy ;) Żadnych wewnętrznych kalibracji, wyrównania temperatur etc. etc. Myślę, że akurat w tym przypadku czepia się kolega rzeczy zupełnie nieistotnych. Ale dla mnie jest to jałowa dyskusja gdyż autor WYBRAŁ swoje rozwiązanie. Zatem z mojej strony EOT.
  • #60
    Użytkownik usunął konto
    Użytkownik usunął konto