Leander Napisano Marzec 21, 2021 Udostępnij Napisano Marzec 21, 2021 (edytowany) Kilka miesięcy temu kupiłem Malinę, żeby - między innymi - wciągnąć się w Pythona i po latach wrócić do programowania (kiedyś jako tako ogarniałem średnie podstawy i coś tam dla siebie pisałem). Uważam, że fajnie się uczy, gdy wymyślamy sobie jakieś mikroprojekty, na których można różne rzeczy potestować. Doszedłem do etapu, na którym mam ochotę podpiąć coś do GPIO. No i jakieś diody plus Python: ogarniam. Na marginesie - jestem dumnym absolwentem pierwszego kursu elektroniki Forbot, na drugi może niedługo znajdę czas 😄. Mam też czujnik temperatury BME280. No i tu pytanie o I2C. W wyprowadzeniu jego pinów jest napięcie, masa (oba zrozumiałe), SDA i SCL (w opisie pinów Maliny też obecne (GPIO2, GPIO3), jest CS, ale to pin nie z I2C i jest ADDR opisany jako pin wyboru adresu. W dokumentacji czujnika jest NC/GND. Nie podłączony albo masa, prawda? Obojętne jest to? Jaka jest różnica? Zmiana adresu (czyli do normalnej pracy zostaje niepodłączony)? Pytania początkującego, więc wybaczcie prostotę :). Dane znalazłem sam, jak widać, ale wolę się dopytać o interpretację. Edytowano Marzec 21, 2021 przez Leander Link do komentarza Share on other sites More sharing options...
Gieneq Marzec 22, 2021 Udostępnij Marzec 22, 2021 @Leander W RPi 4 masz sporo magistrali do wyboru, najprościej będzie skorzystać z tych wyprowadzeń: 18 godzin temu, Leander napisał: jest CS, ale to pin nie z I2C Możliwe że jest to z trybu SPI, jak masz linię SDO to jest opcja SPI. Płytek z BME jest sporo i ciężko o uniwersalną poradę, najlepiej pokaż jaką masz 😉 Link do komentarza Share on other sites More sharing options...
Leander Marzec 22, 2021 Autor tematu Udostępnij Marzec 22, 2021 BME280, napisałem wyżej. Są jakieś warianty? Dokumentacja jest tu: https://www.waveshare.com/w/upload/7/75/BME280_Environmental_Sensor_User_Manual_EN.pdf i przede wszystkim chodzi mi o funkcję pinu ADDR opisanego jako NC/GND dla Raspberry. Czy śmiało mogę zostawić niepodłączony? Dokumentacja mówi o podłączeniu w przypadku zmiany adresu urządzenia. Link do komentarza Share on other sites More sharing options...
Gieneq Marzec 22, 2021 Udostępnij Marzec 22, 2021 @Leander jest sporo wariantów, a jak się wpisze w grafiki googla to jest tam mix BME/BMP. Np. moduł który kiedyś kupiłem, miał wyprowadzone tylko I2C i zasilanie. W dokumentacji jest takie coś: Oznacza to że pin ADDR jest domyślnie podciągnięty rezystorem do zasilania i stąd adres jest z ustawionym LSB na 1. NC/GND oznacza sposób obsługi tego pinu. NC - no connection czyli zostaw wiszący w powietrzu to będzie ta domyślna 1. GND podłącz do masy to zrobi się 0 i LSB adresu będzie 0. 1 godzinę temu, Leander napisał: Czy śmiało mogę zostawić niepodłączony? Zgadza się. 1 Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Leander Marzec 22, 2021 Autor tematu Udostępnij Marzec 22, 2021 OK, rozumiem. Czyli przełączenie adresu nie jest programowe, tylko właśnie stanem przed wpięcie / wypięcie kabla. Dziękuję za rozjaśnienie. Link do komentarza Share on other sites More sharing options...
Leander Marzec 27, 2021 Autor tematu Udostępnij Marzec 27, 2021 (edytowany) Czy można zmienić temat wątku? Nie chcę zakładać nowego, bo to dalej o początkach z I2C i podlinkowanym czujnikiem BME280. 1. Wczoraj wpiąłem czujnik i ADDR wpięty w masę dał mi adres 0x76. Dziś jest tak samo wpięty i jest... 0x77. Kabelek poprawiam (wtykany w pin), ale bez zmian. Sprawdzam to przez i2cdetect -y 1. 2. Jak się skomunikować z czujnikiem w Pythonie? Czytam różne poradniki, zainstalowałem bibliotekę bme280 (wg tego https://pypi.org/project/RPi.bme280/ sudo pip install RPi.bme280 - coś jeszcze powinienem?), ale... 3. W pythonie "import smbus2" zwraca mi "no module named smbus2", a import bme280 - między innymi błąd składni ze wskazaniem na drugi cudzysłów w print "Chip ID :", chip_id. Obie biblioteki są (sprawdziłem pip list). Czy tu wersja pythona ma znaczenie? To są pytania kompletnie początkującego (w pythonie i czujnikach 😉 ), więc mogą wynikać z dużej niewiedzy, zatem wybaczcie. Edytowano Marzec 27, 2021 przez Leander Link do komentarza Share on other sites More sharing options...
PiotrekEl Marzec 27, 2021 Udostępnij Marzec 27, 2021 3 godziny temu, Leander napisał: Czy tu wersja pythona ma znaczenie? Ma znaczenie jeśli masz obie wersje na RPi. Jak piszesz w pythonie3 to sprawdź "pip3 list". Jeśli nie ma to zainstaluj wpisując "sudo pip3 install smbus2". Jeśli masz Pythona 2 i Pythona 3 to "pip" tyczy się wersji 2 a pip3 wersji 3. 1 Link do komentarza Share on other sites More sharing options...
Leander Marzec 31, 2021 Autor tematu Udostępnij Marzec 31, 2021 Dziękuję! Doszedłem do takiego miejsca, w którym coś nakopałem i różne uninstall nie działały. Robię to na Pi Zero, które jest do eksperymentów, więc przeinstalowałem system :). Na świeżo zainstalowałem RPi.bme280, ale właśnie przez pip3 i bez problemów śmiga w Pythonie (import bme280 działa, więc i dalej poszło). Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »