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

Arduino uno - duza ilość podłaczeń a i2c.

ArchitektPiramid 11 Mar 2019 19:51 426 21
  • #1 11 Mar 2019 19:51
    ArchitektPiramid
    Poziom 3  

    Planuje zrobić stacje pogodowa wewnetrzna i zewnetrzna.

    W pokoju
    - Czujnik temperatury i wilgotnosci DHT22.
    - Zegar co by dane zapisywal o okreslonym czasie.
    - Karte do zapisu danych.
    - Modul wifi aby raz na jakis czas zrobic backup.
    - Czujnik CO2.
    - Okolo 2 wyswietlacze (128x64px), aby pokazywaly na nich statystyki. Oraz jeden wiekszy do danych.
    - I jeden duzy juz z scalakiem do literek.

    Na zewnatrz
    - Rainmeter.
    - Barometr.
    - DHT22.
    - Czujnik drgan.
    - Fotorezystor.
    - Mikrofon.
    - Kamera do timelapsu.

    Da rade?
    Myslalem, zeby jeszcze do paru kwiatkow czujnik wigotnosci dac (max do 3).
    + Czujnik zanieczyszczenia.

    Ile z tego jest dostepne i2c? zasilanie z arduno starczy zeby nie padł?

    0 21
  • Servizza
  • #2 11 Mar 2019 22:41
    LChucki
    Poziom 27  

    ArchitektPiramid napisał:
    z 2 wyswietlacze te 128x64px zeby dane pomiescic albo i ich wiecej bo one i2c

    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    ArchitektPiramid napisał:
    i jeden duzy ten juz z scalakiem do literek zeby na nim widoczne bylo z daleka chociaz temperatura, wilgotnosc i cos tam

    Scalak do literek? Co masz na myśli? Niewiele wyświetlaczy ma sterownik z czcionkami, jesli nawet mają to bez PL.

    ArchitektPiramid napisał:
    zasilanie z arduno starczy zeby nie umarl?

    Juk czujniki można usypiać to pewnie wystarczy.

    0
  • #3 13 Mar 2019 01:12
    ArchitektPiramid
    Poziom 3  

    Cytat:
    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    4-6.

    Cytat:
    Scalak do literek? Co masz na myśli? Niewiele wyświetlaczy ma sterownik z czcionkami, jesli nawet mają to bez PL.

    PL nie potrzebuje. O to mi chodzi: Link

    Cytat:
    Juk czujniki można usypiać to pewnie wystarczy.

    Czujnikow nie uspisz. moglbym arduino i wybudzac co jakis ale na ten kod mi miejsca braknie w pamieci.

    0
  • #4 13 Mar 2019 07:59
    LChucki
    Poziom 27  

    ArchitektPiramid napisał:
    Cytat:
    Te więcej to ile ma być?
    Jaka ma być sumaryczna długość magistrali I2C?

    4-6.

    Co 4-6? 4-6 LCD czy 4-6metrów?
    ArchitektPiramid napisał:
    Czujnikow nie uspisz.

    No to zasilacz z Arduino niekoniecznie da radę.

    ArchitektPiramid napisał:

    na ten kod mi miejsca braknie w pamieci.

    Jaki problem dać większy uC?

    0
  • #5 13 Mar 2019 10:04
    khoam
    Poziom 26  

    ArchitektPiramid napisał:
    moglbym arduino i wybudzac co jakis ale na ten kod mi miejsca braknie w pamieci.

    Przesadzasz kolego. Te parę dodatkowych linii kodu na pewno nie zdewastuje Ci pamięci Flash, czy SRAM.

    ArchitektPiramid napisał:
    Czujnikow nie uspisz.

    To zależy, jakie to będą czujniki. Na razie nie podałeś żadnych konkretnych modeli, poza DHT22. AM2302 ma sleep mode :)

    0
  • #6 13 Mar 2019 22:30
    ArchitektPiramid
    Poziom 3  

    LChucki napisał:
    Co 4-6? 4-6 LCD czy 4-6metrów?

    XD no LCD i innych rzeczy co I2C obsługuja.

    LChucki napisał:
    No to zasilacz z Arduino niekoniecznie da radę.

    To machne zewnetrzne zasilanie tylko czy duzo to bedzie ciaglo wat? Planuje to na powerbanku zasilac.

    I tak, racja. zapomnialem, ze mozna zewnetrzne EEPROM dodac. Tylko portow mi prawdopodobnie na to wszystko braknie.

    0
  • #7 13 Mar 2019 22:46
    LChucki
    Poziom 27  

    ArchitektPiramid napisał:
    Tylko portow mi prawdopodobnie na to wszystko braknie.

    Co za problem dac większy uC?
    Nie ma sensu używać malutkiego UNO i otaczać go dziesiątkami układów, taniej, lepiej będzie dać większy uC. Jeśli już zapierać się (nie wiem czemu) przy przestarzałym AVR, to można użyć Mega1280. Nadal to średnio dobry pomysł, bo jaki by ten AVR nie był (z dużych) to ma tylko jeden I2C.

    ArchitektPiramid napisał:
    no LCD

    LCD z I2C mają przeważnie możliwość wyboru jednego z 2 adresów z tym, że w modułach, adres ten jest zafiksowany. Można dać multiplekser ale po co pchać się w koszty, jak wystarczy ARM z kilkoma I2C?


    Policzyłeś ile potrzeba pamięci na bufor ekranu? Na ile starczy RAM UNO czy nawet Mega?
    AVR do projektu, który chcesz zrobić to zły wybór! Potrzebujesz znacznie więcej RAM niż oferuje Arduino UNO czy nawet Mega. Aż się prosi o DMA, którego AVRmega nie ma. Xmega ma DMA ale jest ubogi w RAM i najczęściej droższy od ARM o większych możliwościach.

    0
  • Servizza
  • #8 13 Mar 2019 22:53
    khoam
    Poziom 26  

    Przy tego rodzaju metodyce projektowej proponuję od razu wziąć pod uwagę Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    0
  • #9 13 Mar 2019 22:57
    krzysiek_krm
    Poziom 35  

    khoam napisał:
    Przy tego rodzaju metodyce projektowej proponuję od razu wziąć pod uwagę Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.

    0
  • #10 13 Mar 2019 23:00
    khoam
    Poziom 26  

    krzysiek_krm napisał:
    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.

    Uno pewnie nie, ale w wypadku Mega to udałoby się to zrobić. 50% sukcesu zależy od kreatywności programisty.

    0
  • #11 13 Mar 2019 23:09
    krzysiek_krm
    Poziom 35  

    khoam napisał:
    Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ten Twój "pomysł" to wcale nie jest taki głupi.
    Platforma jest dość dobrze ustabilizowana, zarówno sprzętowo jak i programowo. Są fajne wyświetlacze, takie trochę typu "podłącz, zainstaluj oprogramowanie i zapomnij", jest dużo wiedzy sprzętowej i programowej, itp, itd.
    A i rozwój przedsięwzięcia, w razie jakby co, będzie dość łatwy.

    0
  • #12 13 Mar 2019 23:12
    khoam
    Poziom 26  

    krzysiek_krm napisał:
    khoam napisał:
    Raspberry Pi 3 model B+ WiFi Dual Band Bluetooth 1GB RAM 1,4GHz.

    Ten Twój "pomysł" to wcale nie jest taki głupi.
    Platforma jest dość dobrze ustabilizowana, zarówno sprzętowo jak i programowo. Są fajne wyświetlacze, takie trochę typu "podłącz, zainstaluj oprogramowanie i zapomnij", jest dużo wiedzy sprzętowej i programowej, itp, itd. A i rozwój przedsięwzięcia, w razie jakby co, będzie dość łatwy.


    Do tego dochodzi dodatkowy bonus: to wszystko można szybko napisać w Pythonie, po co się męczyć z C/C++.

    0
  • #13 13 Mar 2019 23:42
    LChucki
    Poziom 27  

    khoam napisał:
    krzysiek_krm napisał:
    Ale poważnie mówiąc, przy tych wszystkich peryferiach z pierwszego postu to wspomniane w tytule uno raczej nie da rady.

    Uno pewnie nie, ale w wypadku Mega to udałoby się to zrobić. 50% sukcesu zależy od kreatywności programisty.

    Każdy ekran wyświetlacza LCD mono 128x64 to 1kB RAM. Przy 6 wyświetlaczach, 6 kB RAM z 8 w Mega. Zapis na kartę SD, warto zarezerwować jakieś 700bajtów. Pewnie przyjdzie ochota na Ethertet, na co warto dać 3kB. Większa rozdzielczość LCD np 128x128 max 3 wyświetlacze bo coś musi zostać na resztę, o 4 czy 6 LCD nie ma co marzyć.
    Oczywiście da się obsłużyć bez bufora ale to gimnastyka i różne ograniczenia.
    Arduino Mega z 8kB RAM, skąpymi peryferiami, kosztuje ok 45zł. Za ok 50zł, można kupić NUCLEO od STM. Jak ktoś chce, może porównywać Trabanta z Ferrari a na koniec, niech porówna stosunek cena/jakość. Gdy dodać do tego fakt, że program na ARM pisze się szybciej, debuger kosztuje 13zł a nie setki czy tysiące, to chyba wybór jest jasny.

    Co do Rpi, to rzadko w bardziej rozbudowanych systemach sam da radę, najczęściej trzeba wspomagać się jakimś ARM'em.

    0
  • #14 13 Mar 2019 23:49
    khoam
    Poziom 26  

    LChucki napisał:
    Co do Rpi, to rzadko w bardziej rozbudowanych systemach sam da radę, najczęściej trzeba wspomagać się jakimś ARM'em.

    To bardzo ciekawe spostrzeżenie, że mocniejszy procesor ARM w malince wymaga wspomagania ze strony słabszego procesora ARM w STM32.
    W zasadzie to temat jest już wyczerpany.

    0
  • #15 14 Mar 2019 00:02
    krzysiek_krm
    Poziom 35  

    khoam napisał:
    To bardzo ciekawe spostrzeżenie, że mocniejszy procesor ARM w malince wymaga wspomagania ze strony słabszego procesora ARM w STM32.

    Bo kolega Chucki, będący (chyba) inkarnacją innego użytkownika elektrody, który był maniakalnym zwolennikiem AVR-ów, stał się ostatnio cortexowym neofitą - najwierniejszym z wiernych, chyba że może ma jakieś akcje ARM'a i reklamuje wszędzie gdzie popadnie.

    0
  • #16 14 Mar 2019 00:22
    Marek_Skalski
    Moderator Projektowanie

    @khoam Prędkość rdzenia to nie wszystko. Trzeba wiedzieć kiedy lepszy jest mikroprocesor, a kiedy mikrokontroler i jakie są między nimi różnice. Ironia i kpiny są zbyteczne. Proszę prowadzić dyskusję merytoryczną.

    @ArchitektPiramid Jeżeli chcesz uzyskać sensowną pomoc, to pokaż założenia:
    - ile sensorów i jakich (oznaczenia lub parametry)
    - ile wyświetlaczy lub elementów wykonawczych i jakich (oznaczenia lub parametry)
    - możesz narysować schemat blokowy z połączeniami, co pozwoli już na wstępie wykryć błędy
    Komunikacja po i2c jest pozornie łatwa, ale jest mało efektywna energetycznie i ma duże ograniczenia co do ilości podłączonych jednakowych urządzeń.
    Wyświetlacze bez zbudowanego kontrolera, potrzebują dużo pamięci i linii sterujących. Te z kontrolerem potrzebują trochę mniej zasobów, ale nadal. Wyświetlacz podłączony przez SPI będzie irytujący, kiedy przeładowanie ekranu trwa ponad sekundę. Podświetlenie wyświetlacza TFT to dużo prądu w porównaniu do sensorów czy uC. OLEDy są czasami lepsze, ale droższe. Dopóki nie podasz konkretnych informacji, to w temacie będą też bardzo ogólne porady.

    0
  • #17 14 Mar 2019 00:27
    ArchitektPiramid
    Poziom 3  

    khoam napisał:


    No tak, zwracam honor. Popatrzylem do dokumentacji i masz racje.

    Wiec tak:
    - DHT22.
    - BMP280 barometr. nie wiem czy nie brac wersji z koncowka GY-BME280 ale boje sie ze wyniki moga byc mniej dokladne niz w DHT22 i jest jeszcze GY-68 sporo tansza.
    - DS3231 lub DS1302.
    - Rainmeter no name.
    - Wyswietlacze jakies (128x64px) no name.
    - Karta na pamiec pisze ze modul SPIl
    - Fotorezystory na pewno nie maja
    - Kamera OV7670.
    - Pojemnosciowy czujnik wilgotnosci tez na pewno nie ma.

    @Marek_Skalski
    Jutro wszystko dokladnie opisze jak znajde czas bo pora spac. Praca czeka. Dzieki za proponowanie pomocy.

    0
  • #18 15 Mar 2019 02:51
    ArchitektPiramid
    Poziom 3  

    @Marek_Skalski

    Przemyslalem sprawe przez noc i biore jakas malinke. Musze jeszcze ogarnac jaka dokladnie i jaka dystrybucje wybrac. Przyda mi sie to do innych projektow jak hosting, dysk sieciowy i mase innych mozliwosci a cena nie jest az tak duza jak mozna by powiedziec - pelnoprawny mikrokomputer. Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka. Wszak ona nie ma tyle portow no i nie odczytam na niej pomiarow uzywajac roznych natezen pradu.

    0
  • Pomocny post
    #19 15 Mar 2019 11:27
    LChucki
    Poziom 27  

    ArchitektPiramid napisał:
    Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka.

    Raczej AVR :-)
    Najprościej przez USB ale do tego najlepsze są uC ze sprzętowym USB więc popularne UNO czy Mega odpada.
    Inna opcja to SPI czy I2C.

    0
  • #20 15 Mar 2019 14:25
    khoam
    Poziom 26  

    ArchitektPiramid napisał:
    Przemyslalem sprawe przez noc i biore jakas malinke. Musze jeszcze ogarnac jaka dokladnie i jaka dystrybucje wybrac. Przyda mi sie to do innych projektow jak hosting, dysk sieciowy i mase innych mozliwosci a cena nie jest az tak duza jak mozna by powiedziec - pelnoprawny mikrokomputer. Problem sie zaczyna bo sie nie mam pojecia jak polaczyc arduino z malinka. Wszak ona nie ma tyle portow no i nie odczytam na niej pomiarow uzywajac roznych natezen pradu.


    To nie kombinuj z łączeniem różnych płytek, tylko użyj ESP32-WROOM-32. Będziesz miał WiFi (wbudowana obsługa stosu IP) i BT w pakiecie. Specyfikacja jest tutaj oraz tutaj.
    Cena kostki ESP32-WROOM-32 to 4$ z wysyłką, za gotowe moduły trzeba zapłacić od 8$ do 12$, w zależności od ich konfiguracji.

    Jeżeli chodzi o środowisko programowe to możesz użyć Arduino HAL, FreeRTOS lub natywny ESP-IDF.
    Debugger: JTAG + OpenOCD.

    P.S. ESP32 nie ma nic wspólnego z STM32.

    0
  • #21 16 Mar 2019 03:50
    ArchitektPiramid
    Poziom 3  

    LChucki napisał:
    Najprościej przez USB ale do tego najlepsze są uC ze sprzętowym USB więc popularne UNO czy Mega odpada.
    Inna opcja to SPI czy I2C.


    O cholera jak ja moglem na to nie wpasc, chyba bylem pijany piszac ten temat... A tak na powaznie znalazlem ta duza ATmege328P z uno. Jakies Attiny chyba 13 wiec za duzo roboty z tym a reszta jakbym chcial odlutowac to za male nozki ma. Wiec pierwszy wariant chyba najlepszy deal. Musze jeszcze jakos to podlaczyc a najlepiej schemat na poczatek zrobic coby nic nie wybuchlo i go tutaj wstawic.

    Dodano po 36 [minuty]:

    @khoam
    O Paaanie, drogo, drogo i jeszcze raz drogo. Sprobuje najpierw zrobic cos diy z gotowych komponentow jak przed chwila napisalem jak wyjdzie to spox i lece dalej po jakies wifi. Myslalem o jakims ESP-01 albo innej wersji z pinami (nie patrzylem jakie sa inne). Chociaz 2 wifi w bloku niezbyt bezpieczne bez dobrej wiedzy na temat konfiguracji... Nie lepiej np. takie NRF24L01 podlaczyc tu i tu - Cos pierdyknie w AVR - malinka cała. Nikt nie nie wlamie etc..

    0
  • #22 16 Mar 2019 11:50
    khoam
    Poziom 26  

    ArchitektPiramid napisał:
    O Paaanie, drogo, drogo i jeszcze raz drogo.

    Nie zrozumieliśmy się chyba. Jeżeli zdecydujesz się na ESP32, to RPI nie będzie Ci potrzebne.

    ArchitektPiramid napisał:
    Cos pierdyknie w AVR - malinka cała. Nikt nie nie wlamie etc..

    A świstak siedzi w kącie i zawija w sreberka.

    0