Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Raspberry Pi'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 101 wyników

  1. Dawno już miałem ochotę skombinować sobie stację pogodową i powiesić na ścianie jakiś estetyczny ekran pokazujący jak to tam jest za oknem. Myślałem żeby coś takiego kupić, ale w końcu zbudowałem sam - a w każdym razie ekran, bo prezentowane dane pochodzą z serwisu pogodowego, a nie z mierników. Jest to mój pierwszy projekt elektroniczny. Od razu wyjaśnię, że ikony pogody oraz biedronka i grzybek to rysunki mojej pięcioletniej córki Hardware Wszystko oparte jest na Raspberry Pi Zero W, ekran wybrałem Waveshare trójkolorowy 7.5", z modułem HAT dla Raspberry Pi. Natomiast żona dała mi wyraźnie do zrozumienia, że jeśli to ma wisieć na ścianie w salonie czy w korytarzu, to ma być ładne, więc zbudowałem z listewek drewnianych ramkę (wiem że jest trochę krzywo na łączeniach, ja naprawdę się starałem), a następnie stwierdziłem, że jeśli nałożę tego HATa na Pi, to całość jest o ładnych kilka milimetrów za gruba żeby się zmieścić pod ekranem... więc pozostało mi łączenie przewodami pojedynczych nóżek. Moduł HAT ma też połączenie uniwersalne, i dołączony był przewód ośmiożyłowy. Ekran ma dość krótką taśmę, w zestawie była też przedłużka ale postanowiłem podłączyć moduł do tej taśmy bezpośrednio z myślą że przecież tam w środku jest nadal masa miejsca na moje Pi. No cóż, okazało się to nie takie proste, i ostatecznie Pi jest tak trochę po skosie, utrzymywany na miejscu przez swój kabel zasilający oraz drut łączący go z wiązką przewodów. Tego się nie da opisać, to trzeba zobaczyć, więc załączam zdjęcia. Na szczęście wszystko to jest całkowicie schowane, bo ramka tyłem przylega do ściany. Grubość ramki to 2cm, przestrzeń na elektronikę ma około 1.5cm. (Jeżeli ktoś się zastanawia czemu wszystkie piny Pi są ubabrane cyną, no cóż, to smutna historia. Najpierw własnoręcznie wlutowałem tam złącze czterdziestopinowe (i byłem z siebie bardzo zadowolony, bo nigdy wcześniej czegoś takiego nie lutowałem, a do tego użyłem lutownicy transformatorowej i nic się od tego nie uszkodziło), a dopiero później zbudowałem ramkę, która okazała się za mała, więc je całe wylutowałem wyrywając po jednej nóżce. Nadal transformatorem, i nadal nic się nie uszkodziło, więc właściwie to nadal jestem z siebie zadowolony.) W ostatecznej wersji szczelina na dole, którą wsuwany był ekran, zaklejona jest plasteliną. Plastelina jest też użyta do uszczelnienia ekranu, tak żeby nie miał luzu. Software Oprogramowanie napisane jest całkowicie w języku Ruby, i składa się z następujących części: Dane pobierane są co około 10 minut: Dane o pogodzie pobierane są z openweathermap.com. Darmowy dostęp do API pozwala pobrać prognozę godzinną na 48h oraz dzienną na parę dni, no i sporo parametrów aktualnej pogody, które prawie wszystkie wyświetlam. Dane do kalendarza pobierane są przez protokół ICAL z Kalendarza Google, opis wydarzeń wskazuje na typ, różne typy są różnie oznaczone w kalendarzu (kreskowane linie nad datami albo kropki, czarne lub czerwone). Dodatkowo pobieram informacje o świętach z calendarific. Te dane są cache'owane bo świąt narodowych raczej nie dodają co 10 minut i nie ma sensu tak męczyć tego API. Pobrane dane są porównane z poprzednimi danymi. Jeżeli nie zmienił się żaden istotny parametr to nie ma sensu nic przerysowywać, zwłaszcza że ekran nie ma częściowego przerysowania, tylko cały migocze jak szalony przez kilkanaście sekund. Natomiast jeśli różni się na przykład aktualna ikona pogody czy temperatura, albo to, czy ma za dwie godziny padać, to przerysowuję od razu. Przerysowuję też co najmniej raz na godzinę, żeby zaktualizować wykres. Następnie z danych składam (z użyciem własnej bardzo prostej biblioteki) definicję SVG przedstawiającego cały ekran. Potem używam imagemagick żeby odczytać piksele z tego obrazu. Piksele mapuję na dostępne w ekranie kolory (biały, czarny, szary (tylko jeden) i czerwony), i wysyłam do własnej biblioteki, która montuje bufor w formacie akceptowanym przez ekran. Wysyłam zawartość do ekranu przez SPI. Korzystam przy tym z biblioteki Mike'a McCauley'a, której używam z Rubiego przez FFI. Oprogramowanie ma sporą ilość konfigurowalnych parametrów, takich jak liczba godzin do pokazania na wykresie, gęstość siatki, liczba tygodni w kalendarzu, dane do "galerii" po prawej na dole. Wszystko to, razem z takimi danymi jak na przykład klucze API albo lokalizacja dla której ma być sprawdzana pogoda, siedzi w pliku konfiguracyjnym lokalnie na Pi, albo przez HTTP (co pozwala łatwo zmieniać konfigurację bez logowania się do Pi). Używam gita, edytuję kod na innej maszynie niż ten Pi w ekranie, testuję kod uruchamiając go z parametrami, które powodują wygenerowanie PNG zamiast wysyłania obrazu na fizyczny ekran. Gdy zrobię zmianę, pushuję ją, a potem jedną komendą ustawiam flagę update-code w serwisie na zewnętrznym serwerze (nie będę tu opisywał ze szczegółami). Gdy serwis działający na ekranie następnym razem będzie odświeżać dane i zobaczy flagę update-code, to najpierw zrobi git pull i się zrestartuje. Dzięki temu nie potrzebuję łączyć się bezpośrednio z Pi w ekranie żeby wgrać mu aktualizację kodu. Potencjalny dalszy rozwój Projekt jest zakończony, wisi na ścianie już 4 miesiące i jestem z niego bardzo zadowolony. W międzyczasie dodawałem tylko różne drobne usprawnienia (na przykład dodawałem godziny wschodu i zachodu słońca, a ledwie wczoraj naprawiałem małego buga, który się ujawnił przy zmianie czasu). Natomiast jest możliwe parę większych usprawnień, które może kiedyś zrobię, a może nie. Pobieranie prognozy pogody z innego serwisu, na przykład yr.no. Czasami wydawało mi się, że jest bardziej trafna, chociaż bywało też odwrotnie. Natomiast zawiera mniej parametrów, więc raczej łączyłbym prognozę z dwóch źródeł. No i podaje temperaturę bez części ułamkowych, i musiałbym zaimplementować wygładzanie wykresu. Pobieranie informacji o aktualnej pogodzie z jakichś fizycznych czujników. Dołączenie informacji o aktualnych parametrach wewnątrz pomieszczenia, na przykład temperaturze i wilgotności. Do tego prawdopodobnie zbudowałbym osobne urządzenie oparte na Pi, które takie dane mierzy i wystawia w jakiś sposób, a ramka by je tylko pobierała.
  2. AJAX umożliwia przekazywanie danych pomiędzy klientem a serwerem WWW bez konieczności przeładowania strony. Dodając do tego timer w JavaScript możemy uzyskać świeże dane na stronie generowanej przez ESP8266. Na początek stwórzmy w PHP najprostszą stronę WWW prezentującą aktualną godzinę pobieraną z serwera (nie "JavaScriptovy" czas z przeglądarki - w końcu docelowo chcemy pobierać dane z czujników podłączonych do "serwera WWW" postawionego na ESP8266): <? if ($_REQUEST["time"]) { echo date("G:i:s"); exit; } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>AJAX test</title> </head> <body> <span id="time"></span> <script> myTimer(); var myVar = setInterval(myTimer, 1000); function myTimer() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("time").innerHTML = this.responseText; } }; xhttp.open("GET", "test.php?time=1", true); xhttp.send(); } </script> </body> </html> Timer co sekundę przywołuje funkcję myTimer(); var myVar = setInterval(myTimer, 1000); a ta pobiera zawartość podstrony test.php?time=1 i wstawia ją do elementu o nazwie "time" (document.getElementById("time").innerHTML = this.responseText;). Mamy tu tylko jeden przekazywany parametr. Co zrobić, by aktualizować kilka różnych wartości? Przywykłem do podstrony przekazującej parametry rozdzielone znakiem ; (odczyt1;odczyt2;odczyt3). Dzięki JavaScriptowej funkcji split możemy podzielić taki ciąg znaków na tablice, a potem przydzielić jej części do elementów SPAN o określonym ID. <? if ($_REQUEST["time"]) { echo date("d.m.y;G:i:s"); exit; } ?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>AJAX test</title> </head> <body> Date: <span id="date"></span><br> Time: <span id="time"></span> <script> myTimer(); var myVar = setInterval(myTimer, 1000); function myTimer() { var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var str = this.responseText; var values = str.split(";"); document.getElementById("date").innerHTML = values[0]; document.getElementById("time").innerHTML = values[1]; } }; xhttp.open("GET", "test.php?time=1", true); xhttp.send(); } </script> </body> </html> Działa! PHP po zainstalowania serwera np NGINX możemy uruchomić na Raspberry Pi. W połączeniu (komenda system()) z zewnętrznym skryptem Python lub programem w C korzystającym z WiringPi otrzymamy stronę z odczytami czujników hostowaną na Raspberry Pi! Spróbujmy wreszcie zaprogramować mikrokontroler ESP8266. Podłączmy najpierw czujnik BME280. /* I2C D4 - SCL D3 - SDA */ #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> char* ssid = "Weather"; //const char *password = ""; ESP8266WebServer server(80); Adafruit_BME280 bme; void setup() { Serial.begin(9600); Wire.begin(D3, D4); Wire.setClock(100000); if (!bme.begin(0x76)) //changed from default I2C adress 0x77 { Serial.println("Nie odnaleziono czujnika BMP085 / BMP180"); while (1) { } } IPAddress apIP(192, 168, 1, 1); WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); // WiFi.softAP(ssid, password); WiFi.softAP(ssid); server.on("/", handleRoot); server.on("/sensors", handleSensors); server.begin(); } void loop() { server.handleClient(); } void handleRoot() { String content = "<html> <head><title>Weather</title></head><body>"; content += "<DIV style=\"display:table; font-size: large;\"><DIV style=\"border-style: solid;\">BME280:<BR>Temperature: <span id=\"tempBME\"></span>C<br>Humidity: <span id=\"humBME\"></span>%<br>Pressure: <span id=\"presBME\"></span>Pa<br></DIV>"; content += "<script>myTimer();var myVar = setInterval(myTimer, 1000);function myTimer() {var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var str = this.responseText; var values = str.split(\";\"); document.getElementById(\"tempBME\").innerHTML = values[0]; document.getElementById(\"humBME\").innerHTML = values[1]; document.getElementById(\"presBME\").innerHTML = values[2];} }; xhttp.open(\"GET\", \"sensors\", true); xhttp.send();}</script>"; content += "</body></html>"; server.send(200, "text/html", content); } void handleSensors() { String content = String(bme.readTemperature()) + ";" + String(bme.readHumidity()) + ";" + String((int)bme.readPressure()) + ";"; server.send(200, "text/html", content); } Rozdzielanie danych przecinkiem czy średnikiem nie jest sposobem "zbyt profesjonalnym". Przy dużej ilości zmiennych łatwo też o pomyłkę. Dlatego lepiej wtedy stosować bardziej odpowiednie formaty danych: JSON czy XML. Ze względu na "bliskość" JSON z JavaScript skupię się tylko na nim. Gotowa biblioteka ArduinoJson wygeneruje dane za nas. Więcej informacji znajdziemy w rozdziale Serialize with ArduinoJson dokumentacji technicznej. /* I2C D4 - SCL D3 - SDA */ #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> #include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h> #include <ArduinoJson.h> //https://github.com/bblanchon/ArduinoJson char* ssid = "Weather"; //const char *password = ""; ESP8266WebServer server(80); Adafruit_BME280 bme; void setup() { Serial.begin(9600); Wire.begin(D3, D4); Wire.setClock(100000); if (!bme.begin(0x76)) //changed from default I2C adress 0x77 { Serial.println("Nie odnaleziono czujnika BMP085 / BMP180"); while (1) { } } IPAddress apIP(192, 168, 1, 1); WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); // WiFi.softAP(ssid, password); WiFi.softAP(ssid); server.on("/", handleRoot); server.on("/sensors", handleSensors); server.begin(); } void loop() { server.handleClient(); } void handleRoot() { String content = "<html> <head><title>Weather</title></head><body>"; content += "<DIV style=\"display:table; font-size: large;\"><DIV style=\"border-style: solid;\">BME280:<BR>Temperature: <span id=\"tempBME\"></span>C<br>Humidity: <span id=\"humBME\"></span>%<br>Pressure: <span id=\"presBME\"></span>Pa<br></DIV>"; content += "<script>myTimer();var myVar = setInterval(myTimer, 1000);function myTimer() {var xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var str = this.responseText; var values = JSON.parse(str); document.getElementById(\"tempBME\").innerHTML = values.temp; document.getElementById(\"humBME\").innerHTML = values.hum; document.getElementById(\"presBME\").innerHTML = values.press;} }; xhttp.open(\"GET\", \"sensors\", true); xhttp.send();}</script>"; content += "</body></html>"; server.send(200, "text/html", content); } void handleSensors() { String content; StaticJsonBuffer<400> jsonBuffer; JsonObject& root = jsonBuffer.createObject(); root["temp"] = bme.readTemperature(); root["hum"] = bme.readHumidity(); root["press"] = (int)bme.readPressure(); root.printTo(content); server.send(200, "text/html", content); } Strona prezentować się będzie tak samo jak poprzednio. Zyskamy za to wygodny i czytelny sposób dopisywania nowych danych root["temp"] = bme.readTemperature(); oraz ich odczytywania w kodzie źródłowym strony: document.getElementById(\"tempBME\").innerHTML = values.temp; Nie przejmujemy się już numeracją elementów długiej tablicy. Sytuację możemy też odwrócić tworząc stronę WWW, której formularz sterować będzie pracą naszego fizycznego urządzenia. Oczywiście nadal niekonieczne będzie przeładowanie strony, by wysłać dane. #include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ESP8266WebServer.h> char* ssid = "Weather"; //const char *password = ""; int ledValue = 0; ESP8266WebServer server(80); void setup() { Serial.begin(9600); IPAddress apIP(192, 168, 1, 1); WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0)); // WiFi.softAP(ssid, password); WiFi.softAP(ssid); server.on("/", handleRoot); server.begin(); pinMode(D1, OUTPUT); analogWriteRange(100); //http://esp8266.github.io/Arduino/versions/2.0.0/doc/reference.html analogWriteFreq(500); } void loop() { server.handleClient(); analogWrite(D1, ledValue); } void handleRoot() { if (server.hasArg("ledVal") && server.arg("ledVal").toInt() >= 0 && server.arg("ledVal").toInt() <= 100) { ledValue = server.arg("ledVal").toInt(); Serial.print("ledVal "); Serial.println(ledValue); server.send(200, "text/html", ""); return; } //https://www.w3schools.com/howto/howto_js_rangeslider.asp //https://stackoverflow.com/questions/9713058/send-post-data-using-xmlhttprequest String content = "<!DOCTYPE html>" "<html>" "<head>" "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">" "<title>Luminosity setter</title>" "<style>" ".slidecontainer {" "width: 1024px;" "margin: 0 auto;" "text-align: center;" "}" ".slider {" " -webkit-appearance: none;" " width: 100%;" " height: 25px;" " background: #d3d3d3;" " outline: none;" " opacity: 0.7;" " -webkit-transition: .2s;" " transition: opacity .2s;" // " margin-left: 20px;" // " margin-right: 20px;" "}" ".slider:hover {" " opacity: 1;" "}" ".slider::-webkit-slider-thumb {" " -webkit-appearance: none;" " appearance: none;" " width: 25px;" " height: 25px;" " background: #4CAF50;" " cursor: pointer;" "}" ".slider::-moz-range-thumb {" " width: 25px;" " height: 25px;" " background: #4CAF50;" " cursor: pointer;" "}" "</style>" "</head>" "<body>" "<div class=\"slidecontainer\">" " <input type=\"range\" min=\"0\" max=\"100\" value=\"" + String(ledValue) + "\" class=\"slider\" id=\"myRange\">" " <p>Value: <span id=\"demo\"></span>%</p>" "</div>" "<script>" "document.getElementById(\"demo\").innerHTML = document.getElementById(\"myRange\").value;" "document.getElementById(\"myRange\").oninput = function() {" " document.getElementById(\"demo\").innerHTML = this.value;" "var data = new FormData();" "data.append('ledVal', this.value);" "var xhr = new XMLHttpRequest();" "xhr.open('POST', '/', true);" "xhr.onload = function () {" " console.log(this.responseText);" "};" "xhr.send(data);" "}" "</script>" "</body>" "</html>"; server.send(200, "text/html", content); } W tym przypadku przesunięcie suwaka na stronie sterującej wywoła natychmiastową zmianę jasności diody LED podłączonej odpowiednim rezystorem do pinu D1.
  3. Cześć, mam problem ze zmianą hasła do root na RaspberryPi. Chodzi tu o to że gdy już zmienię to hasło komendą sudo passwd root to wszystko ładnie działa, mam dostęp do roota komendą su (i wpisuję hasło do roota które przed chwilą ustawiłem). Ale gdy zresetuje malinkę, albo tylko zakończę i otworzę nową sesję w PuTTY, to hasło do roota już jest inne, a co gorsza nie wiem jakie. Wie ktoś jak skutecznie zmienić to hasło? Albo chociaż wie jakie to hasło jest domyślnie?
  4. Witam. Kanał ogólnie o elektronice oraz systemach wbudowanych. Poniżej wstawiam link do wideoporadnika jak obsłużyć microswitch-a w pythonie na platformie Raspberry Pi 3B+. Zapraszam do oglądania
  5. Witam. Chciałem wam przedstawić krótki wideoporadnik pokazujący jeden z kilku sposobów na uruchomienie własnego skryptu Python automatycznie po starcie systemu. Praca odbywa się na systemie Raspberry Pi OS, do uruchomienia skryptu wykorzystamy popularny deamon Crontab. Zapraszam do oglądania
  6. Witam. Chciałem pokazać wam patent, jak sobie poradzić z pomiarem wskazań fotorezystora na Raspberry Pi, gdy nie mamy pod ręką żadnego przetwornika ADC. Ten sposób jest wysoce zależny od obciążenia naszego RPi, ale do prostych aplikacji wykrywania, czy światło jest zgaszone czy zapalone powinno wystarczyć. Ten sposób działa jedynie z sensorami o charakterze rezystancyjnym i nie nadaje się do sensorów z czysto analogowymi wyjściami. Mimo wszystko uważam, że warto go znać. Zapraszam do oglądania
  7. Cześć Mam dziwną sytuacje. zainstalowałem poprawnie bibliotekę na Raspberry Pi 0 wiring pi i sprawdziłem, czy faktycznie tak jest Po czym chciałem ją użyć w skrypcie, ale on już jej nie wykrywa: co może być przyczyną, że to nie działa
  8. Nie wiem czy można to nazwać pełnoprawnym DIY ale dzisiaj zaprezentuję drugie życie robota z kursu budowy robotów. Komentarz dla czepialskich: tak, mogę tego robota nazwać robotem ponieważ jest wyposażony w akcelerometr który jest pewnego rodzaju czujnikiem. Wykorzystałem tą konstrukcję, ponieważ chciałem zrobić coś małego co będzie mogło jeździć po całym domu z kamerką. Najpierw omówimy sobie co było gotowe a później co dodałem albo zmieniłem. Cała konstrukcja, Arduino i shield forbota przez cały czas były na swoim miejscu nic w tej kwestii nie ruszałem (oprócz przylutowania paru kabelków do shielda, i wkręcenia wyższych dystansów pod Arduino). Natomiast ze zmian jest jedna ale za to ważna sprawa jaką jest zasilanie. W oryginalnym robocie całość była zasilana z 6 paluszków AA co daje razem 9 woltów (1,5V * 6 = 9V) . Wady takiego rozwiązania były dwie - brak możliwości ponownego naładowania i zajmowały sporo miejsca. Pozbyłem się problemu i zamieniłem na 2 akumulatorki 18650 co daje 8.4 woltów (4.2V * 2 = 8,4V). Ale ktoś może powiedzieć zaraz zaraz, ale 2 takie akumulatorki 18650 wcale nie zajmują jakoś mniej miejsca i w ogóle to 8.4 V to nie za mało ? I ma rację bo przy 8.4V mogłem jeździć niecałe dwie minuty (to wszystko wina malinki) dlatego dodałem przetwornicę step- up która podnosi napięcie do 10V. Wracając do kwestii zajmowanego miejsca przez baterie to może faktycznie 18650 nie zajmuje mniej miejsca objętościowo ale za to kształtem idealnie wpasowały się pod przestrzeń między podwoziem a Arduino. Swoją drogą, gdybym nie odkrył tego miejsca to ten projekt by nie powstał. To tyle ze zmian teraz czas na dodatki. Najważniejszym dodatkiem jest mój samodzielnie zlutowany shield na shielda, może śmiesznie to brzmi ale tak właśnie jest. Zawiera on: moduł radiowy nRF24l01 który odpowiada za sterowanie wszystkim, akcelerometr MPU6050 który daje możliwość cieszyć się w miarę prostą jazdą do przodu, wyprowadzenia na 2 serwa które pozwalają poruszać kamerą aby uzyskać większy kąt widzenia, tranzystor do którego podpięte są 2 ledy 1w każda. Drugim dodatkiem jest Raspberry Pi 4B razem z kamerką . Tak zdaję sobie sprawę że rpi 4 to overkill do takiego projektu, zajmuje połowę platformy i potrafi zużywać więcej prądu niż cała reszta robota. Ale po prostu nie mam nic innego pod ręką. Teraz powiem kilka słów o poszczególnych funkcjach i podzespołach (jeśli można tak to nazwać). Zasilanie - nie będę się już powtarzał ale dla tych co jeszcze się nie domyślili dopowiem tylko że malinka jest zasilana przez przetwornicę step-down ( 8.4V przetwarza na 5V) Sterowanie - jak już mówiłem za sterowanie odpowiada nRF24l01, jako transmitera używam własnoręcznie zlutowanego pilota którego używałem już w moich poprzednich projektach i o dziwo cały czas jest sprawny. Na razie pilot ma 10 kanałów z czego 8 używam w tym robocie. Krótka rozpiska co obsługuje poszczególny kanał: lewy joystick góra dół - jazda przód tył, lewy joystick lewo prawo - obrót lewo prawo, prawy joystick góra dół - ruch kamerą góra dół, prawy joystick lewo prawo - ruch kamerą lewo prawo, potencjometr - trymer (albo jakoś tak, nie wiem jak to się pisze) do kamery lewo prawo, chodzi o taki minimalny ruch serwem który pomaga ustawić kamerę w miarę prosto, środkowy(pod nrf'em) toggle switch - włącza funkcję w miarę prostej jazdy do przodu, prawy toggle switch - światła on/off, przycisk w lewym joysticku - włącza buzzer (ten wbudowany w forbotowego shielda). Akcelerometr - sprawił mi najwięcej problemów, a właściwie to program którego nie umiałem poprawnie napisać. Okej przyznam się że funkcji przetwarzającej dane z akcelerometru nie napisałem w pełni samodzielnie. Działa to tak że program odczytuje przyspieszenie w osi Z i w zależności od tej danej steruje prędkością poszczególnych silników. Kamera - podłączona do RPI 4B przekazuje obraz przez Wi-Fi w sieci WLAN . Ja siedząc przy komputerze widzę ten obraz z programu VNC. Oczywiście najpierw muszę wywołać jakąś komendę którą się z wami podzielę, może ktoś skorzysta: raspivid -o -t 0 -w 800 -h 400 -rot 180 -fps 30 Ta część też zajęła mi trochę czasu. Chciałem żeby opóźnienie obrazu nie przekraczało 200ms więc przekopywałem internet żeby znaleźć jak streamować obraz za pomocą netcata. Niestety nie udało się znaleźć żadnego właściwego poradnika. Po dłuższym czasie poszukiwań znalazłem tą komendę która pozwoliła mi streamować obraz z kamery na naprawdę sensownym opóźnieniu (postaram się później podesłać filmik w komentarzu). Wady - oczywiście, tak jak wszystko na tym świecie robot ma wady i to nie jedną, a kilka: środek ciężkości - można głównym ciężarem są akumulatorki które są położone z tyłu co znacznie przesuwa środek ciężkości (czerwony - gdzie jest, zielony - gdzie powinien być), Raspberry Pi 4B - zajmuje za dużo miejsca i pobiera za dużo prądu, Zasilanie - pomimo że je zmieniłem to nadal 18650 nie są najlepszym rozwiązaniem. Na końcu zamieszczę jeszcze filmik pokazujący moc akcelerometru, ruch kamery i jazdę po dywanie.
  9. Przedstawiam projekt, który ma dla mnie ogromne zastosowanie praktyczne - budzi mnie rano w miarę bezboleśnie, ale dość skutecznie, odsłaniając zasłony w sypialni. Mechanika Zasłony wiszą na standardowej szynie KS biegnącej od ściany do ściany, z zasłoną odsłaniającą się na dwie strony. Pierwszym krokiem projektu było puszczenie wewnątrz szyny sznurka nylonowego w tę i z powrotem, i przywiązanie do niej we właściwych miejscach dwóch żabek/haczyków - skrajnego lewego prawej zasłony, i skrajnego prawego lewej. Oczywiście jeden do sznurka biegnącego w szynie "w tę", a drugi do sznurka biegnącego "z powrotem". Następnie oba końce sznurka przepuściłem przez haczyk i spuściłem po ścianie na dół. Wtedy ciągnięcie jednego końca zasłania, a drugiego odsłania obie zasłony razem. Powiem szczerze, ten etap był najtrudniejszy. Wymagał dużo dokładności żeby zasłony zbiegały się we właściwym miejscu, wiele starań żeby nic się nie plątało i chodziło odpowiednio lekko, a do tego wiele stania na drabinie z rękami do góry. Następnie jako napęd wybrałem silnik krokowy 0.43Nm. Nie mam doświadczenia z projektami z silnikami, i podejrzewam, że to nie był optymalny wybór, i lepszy byłby być może silnik z przekładnią i enkoderem. No cóż użyłem silnika krokowego, i wszystko w miarę działa, ale silnik nie ma zapasu momentu obrotowego. Do wału silnika przymocowana jest rurka aluminiowa, na którą nawija się sznurek. Nie ma naciągu, ale luz jest na tyle mały, a sznurek na tyle śliski, że nic się nie plącze. Silnik jest zamocowany do ściany drewnianą obejmą, którą sobie wyrzeźbiłem. Silnik podłączony jest do sterownika, a komputerem sterującym jest Raspberry Pi Zero, tym razem bez "W" bo to był początek lockdownu i Raspberry Pi Zero W trudno było dostać. Pi ma więc wpiętego na stałe dongla wifi, ale to nie problem bo i tak tego projektu nie przenosi się z miejsca na miejsce, z oczywistych względów. Do Pi podłączony jest również czujnik światła przyklejony do okna i wykierowany na zewnątrz, a także mały panel sterowania z dwoma przyciskami i dwiema diodami. W bardziej ukrytym miejscu jest jeszcze trzeci guzik, używany do czynności serwisowych. Układ nie ma obudowy, ale raczej nie będzie jej miał - nie jest potrzebna bo układ nie jest widoczny z pokoju, zasłania go zasłona, wystaje tylko panel kontrolny. Oprogramowanie Program napisany jest w Rubym. Ruby jest fajny, ale szczerze mówiąc w tym przypadku to mógł nie być najlepszy wybór, a to dlatego, że Ruby jest wolny, a tymczasem potrzebuję generować sygnały STEP do sterownika silnika z częstotliwością około 200Hz. Przy użyciu biblioteki, którą mam, ta wartość jest blisko limitu, gdybym chciał generować 300Hz to musiałbym już zmienić technologię, albo co najmniej bibliotekę. Jednocześnie nie mogłem użyć wbudowanego generatora PWM, bo nawet przy maksymalnym dzielniku byłby za szybki. Musiałbym jeszcze zlutować jakiś dzielnik częstotliwości, a nie miałem na to ochoty. No, ale ostatecznie tak mniej więcej daje radę - jak wiele rzeczy w tym projekcie. Sama logika jest właściwie dość prosta. Uruchamiam dwa wątki, jeden w pętli odczytuje naciśnięte przyciski, zapala diody kiedy trzeba itp, a drugi w niezależnej pętli generuje kroki, chyba że pozycja zasłony jest równa pozycji zadanej. Pozycja zasłony nie jest mierzona, tylko po prostu obliczana na podstawie zliczania kroków. Sterowanie: Przyciski góra i dół odsłaniają i zasłaniają zasłonę ręcznie. W czasie pracy świeci się żółta dioda (a mogłem użyć lampę bramową...). W czasie gdy zasłona pracuje, można ją też zatrzymać przyciskiem. Poza tym zasłona uruchamiana jest automatycznie: Odsłaniana jest o godzinie pobranej z pliku konfiguracyjnego. Można ustawić odsłanianie po kawałku. Moment zasłaniania określany jest następująco: z openweathermap.com pobieram godzinę zachodu słońca, i dwie godziny wcześniej (konfigurowalne) zaczynam monitorować czujnik zmierzchowy. Zasłaniam gdy zrobi się ciemno za oknem, lub najpóźniej pół godziny (konfigurowalne) po zachodzie słońca. Tak, wiem że godzinę zachodu słońca można obliczyć zamiast pobrać, ale jak zobaczyłem ten wzór to stwierdziłem, że pobrać będzie sporo łatwiej. Przy użyciu trzeciego przycisku można też aktywować funkcje dodatkowe: wyłączenie/włączenie automatycznego zasłaniania/odsłaniania, korekty na wypadek gdyby zasłona się zablokowała w czasie ruchu (co się póki co nie zdarza, chyba że ma coś na drodze), i najlepsze: funkcja drzemki. W znaczeniu "drzemki poobiedniej", a nie opóźniania budzenia. Ustawiam drzemkę na wielokrotność 15 minut, zasłony się zasłaniają, a po zadanym czasie się odsłaniają. Proste, a bardzo fajne. Przykładowy plik konfiguracyjny: { "location": {"lat": 0.00, "lon": 0.00}, "openweathermap_api_key": "000000", "close_on_sunset_offset_min": { "min": -120, "max": 30 }, "alarm": { "normal": { "8:30": {"value": 0.5, "dir": 1}, "8:55": 1 }, "holiday": { "9:00": {"value": 0.5, "dir": 1}, "9:30": 1 } } } Filmik Podsumowując, ten projekt doskonale spełnia swoją funkcję, budząc mnie co rano już ponad dwa miesiące, i nie sprawiając problemów. Niemniej jednak jest trochę rzeczy, które zrobiłbym inaczej gdybym musiał to robić drugi raz, tak jak pisałem powyżej. Można by też było dodać na przykład integrację z jakimś systemem inteligentnego domu, ale mi na tym nie zależy, bo takiego systemu nie mam i raczej nie planuję. Jeszcze jedno proste potencjalne usprawnienie - zasilać Pi z tego samego zasilacza, co silnik, a nie z osobnego. Nie wiedziałem jak to prosto zrobić, dlatego jest jak jest.
  10. Cześć wszystkim, Jest tu może ktoś kto pisał swój plugin do domoticza? Chciałbym zapytać o parę spraw ponieważ zabieram się do napisania pluginu, który będzie mostem pomiędzy raspberry a sterownikiem opartym na atmedze.
  11. Cześć, zaczynam swoją przygodę z budową inteligentnego domu i mam następujące pytanie: Postawiłem domoticza na raspberry 4B oraz posiadam sterownik od firmy zajmującej się inteligentnymi domami na pokładzie z atmega644PA, która steruje wyjściami przekaźnikowymi. Czy jest możliwość, aby poprzez domoticza wydawać rozkazy (np. "AT+Out=2,5,1,1,0,1,0,0 <CR>", które będą wysyłane po rs232 do sterownika z atmegą?
  12. Płytki nowe, oryginalnie zapakowane, kupione do projektu na który nie miałem ostatecznie czasu. - Nucleo-32 STM32L412 (2sztuki) - 45zł/szt https://allegrolokalnie.pl/oferta/zestaw-rozwojowy-edukacyjny-nucleo-32-stm32l412 - Nucleo-144 STM32F439 (2 sztuki) - 120zl/szt https://allegrolokalnie.pl/oferta/zestaw-rozwojowy-edukacyjny-nucleo-144-stm32f439 - Raspberry Pi 3 model A+ (2 sztuki) - 105zł/szt https://allegrolokalnie.pl/oferta/raspberry-pi-3-model-a - Raspberry Pi 3 model B+ (3 sztuki)- 165zł/szt https://allegrolokalnie.pl/oferta/raspberry-pi-3-model-b-5zj Ceny do małej negocjacji. Wysyłka - paczkomat 12 zł lub kurier 15 zł/za pobraniem 20zł
  13. Pracuję obecnie nad nowym projektem - ekranem w formie ramki na którym będą wyświetlane najważniejsze informacje, integrującym informację z kilku źródeł i pokazującym w ładnej przejrzystej formie: godziny, daty, kalendarza rodzinnego (wydarzenia, plany itp.) - dane pobierane z kalendarza Google (wprowadzanie wydarzeń na smartphonie) aktualnej temperatury wewnątrz i na zewnątrz, prognozy pogody na najbliższy dzień i kilka dni do przodu, to wszystko na tle wybranych zdjęć rodzinnych (pobieranych ze wskazanego katalogu dropboxa lub google drive). Elementy składowe: Komputer - Raspberry Pi Zero W 512MB RAM - WiFi + BT 4.1 Ekran IPS 7'' 1024x600px - Waveshare 12885 Czujnik temperatury i wilgotności DHT22 (AM2302) - Waveshare 11092 Raspberry w wersji zero - dla zaoszczędzenia miejsca oraz pieniędzy. Ekran IPS (dla dobrej jakości wyświetlania) ale bez opcji dotyku, w tym przypadku nie będzie potrzebna.. Czujnik temperatury wewnątrz domu (DTH22) planuję podłączyć bezpośrednio do tego samego Raspberry. Dane pogodowe z zewnątrz - będę pobierał ze stacji pogodowej która już działa - była przedmiotem odrębnego projektu (opis TUTAJ). Już wkrótce pochwalę się efektami prac i szczegółowym opisem realizacji..
  14. Witam, mam problem gdyż chcę sterować kilkoma silnikami 28byj-48 na raspberrypi 3b+, lecz jest zbyt mało pinów GPIO. Czy można w tym celu korzystać np z pinów dla uart tj. TXD oraz RXD lub całkiem innych oznaczonych innym kolorem na obrazku niż zielonym?
  15. Witam Od około półtora roku interesuję się sztuczną inteligencją, zwłaszcza zastosowaną w robotyce. Jest to dla mnie niezwykle ciekawy temat Kilka miesięcy temu zacząłem pracować nad moim prywatnym projektem, który cały czas jest w fazie rozwoju. Pewne elementy, takie jak uczenie się poprzez rozmowę z człowiekiem są gotowe, więc postanowiłem nagrać poniższe filmy: AgeBot podłączony jest do internetu. Platforma to gotowa konstrukcja - AlphaBot-PI. Użyłem jej, aby szybciej skupić się na oprogramowaniu. W ostatnim czasie domykałem widoczne na filmach możliwości robota i w międzyczasie zacząłem pracę nad wykorzystaniem kamery (aktualny stan to ~30%). W bliskiej przyszłości platformę mam zamiar wymienić na coś bardziej zaawansowanego lub zbudować swoją, ponieważ ta zaczyna mnie powoli ograniczać (pod względem hardware'u). Jej specyfikacja dostępna jest w internecie (np. na stronie firmy Waveshare), więc nie będę kopiował Jak już zauważyliście - używam Raspberry PI. Oprogramowanie na malinkę napisałem w C++, pozostała część to C++ oraz Python. Systemem jest Raspbian. Do zautomatyzowania instalacji niektórych zależności w systemie (akurat w przypadku samej malinki) używam narzędzia Ansible, a o te krytyczne dla działania aplikacji dba manager pakietów (apt, buduję paczki .deb). Do przetwarzania tekstu użyłem biblioteki Tensorflow, natomiast w procesie uczenia się, robotowi asystuje wnioskowanie. Kamera i przetwarzanie obrazu otworzy wiele nowych drzwi, ułatwi również pracę przy kolejnej domenie - planowaniu zadań. Sam robot jest stosunkowo małą częścią projektu, ale o tym... w przyszłości Każdy feedback mile widziany Pozdrawiam PS: W ciągu kilku dni napiszę posta z trochę bardziej szczegółowymi informacjami odnośnie przetwarzania tekstu - czatowania z robotem
  16. Witam, Na sprzedaż posiadam dużą ilość elektroniki związanej z budowaniem układów na arduino / malince. Studiowałem AiR i wiadomo, podczas studiów człowiek się trochę bawił, lecz teraz przy normalnej pracy nie mam już czasu/chęci. Nie sposób wymienić wszystkich elementów, które tutaj są ale z ciekawszych: - rasberry pi 3, z zasilaczem, kartą pamięci, modułem kamery itd. - klony arduino, czujniki wagi, odległości, joystik, klawiaturki itd. - wiele wiele pierdół, rezystorów, kabli, - akcesoria do lutowania Link do zdjęć ze wszystkimi elementami: https://drive.google.com/drive/folders/1GeEhGKALeyMzg0ZHvzhuuUFbM4BgsNpj?usp=sharing Cena: 300zł Ze względu na ilość tych wszystkich rzeczy preferowałbym odbiór osobisty w Poznaniu, ale jestem w stanie również to wysłać. W razie co proszę o kontakt na telefon: 781358758 Nie wiem gdzie mam wstawić ten post, jestem tutaj nowy. Mam nadzieję, że nie łamię regulaminu. Chcę po prostu komuś oddać praktycznie nowy zestaw do zabawy bo ja już nie potrzebuję.
  17. Witam, Na wstępie zaznaczam, że w tematyce mikrokontrolerów jestem początkujący i proszę o wyrozumiałość Mam potrzebę stworzyć system bazujący na RFID, którego zadaniem jest odczyt pomiaru czasu okrążeń pokonywanych rowerem. Dodam, że odczyt ten miałby być zapisywany do bazy danych, z której można by później wyświetlić indywidualne wyniki dla każdego zawodnika. Myślałem o zastosowaniu Raspberry Pi z uwagi na możliwość stworzenia serwera, jednak mam zagadkę co do doboru samego RFID. Musiałby on dobierać sygnał z odbiornika na odległość 1-1.5m z dość dużą dokładnością. Czy możecie polecić jakiś zestaw spełniający te wymagania i który nie zrujnuje mnie finansowo? Ma to w ogóle jakiś sens? Dziękuję za pomoc i pozdrawiam.
  18. Jestem tu nowy, więc proszę o wyrozumiałość. Próbowałem szukać czegoś podobnego na forum, ale bezskutecznie. Bardzo proszę o pomoc w kwestii zabrania się do wykonania następującego projektu. Mam Rpi 4, przeczytałem dostępne poradniki dotyczące Raspberry Pi, ale nie wiem, jak ruszyć. Chciałbym móc przy pomocy Rpi i Domoticza: - otwierać i zamykać bramę wjazdową na posesję, - móc sprawdzić będąc poza domem, czy jest ona zamknięta lub otwarta, oraz zmienić w razie potrzeby ten stan. Obecnie otwieranie i zamykanie jest wykonywane za pomocą pilota bramowego, a ponadto jest możliwość wykonania tego przy pomocy przycisku unifonu. Kupiłem kilka modułów ESP, jednak nie wiem, czego potrzebuję jeszcze i jak to wykonać? Zdaję sobie sprawę, że to może trochę jak porywanie się z motyką na słońce, ale chciałbym na początek zrobić coś namacalnego własnymi siłami i przy wydatnej pomocy szanownych forumowiczów. Mam czas, chęci i samozaparcie, chociaż jestem początkujący. Od czego zacząć?
  19. Witam, Chciałbym prosić o pomoc w dopasowaniu oraz znalezieniu elementów do projektu który robię. Mianowicie, w projekcie użył bym kilku wentylatorów, ledów oraz czujników (Chodzi o cyrkulacje powietrza w pokoju i jednoczesne zmniejszenie temperatury) możliwe też że wyświetlacza LCD. Oczywiście chciałbym sterować tym z rpi, a z racji tego że dopiero rozpoczynam przygodę - prosił bym o pomoc w znalezieniu niezbędnych elementów które pomogą mi zrealizować projekt.
  20. Hej, Zacząłem bawić się z małą szklarnią obsługiwaną przez Raspberry Pi, jako że w szklarni temperatura może być za duża to chciałbym aby była możliwość chłodzenia/odciągania wilgoci powietrza. Mam już zrobioną obsługę czytania wartości z czujników temperatury, wilgotności gleby i wilgotności powietrza. Teraz zostało mi ogarnięcie pompki (5V) do nawodnienia i dwóch wentylatorków: 1 który wydmuchuje powietrze z zewnątrz - chłodzenie a drugi który wdmuchuje - wilgoć (1x12V a drugi planuje użyć ze starego kompa, jeszcze go nie posiadam). Posiadam: Wentylator: PF4010D12HS 12V 0.12A Tranzystory 2N7000 Tranzystory 2N3904 Pompka: https://allegro.pl/oferta/pompka-zanurzeniowa-5v-biala-zta31509-8151984645?snapshot=MjAyMC0wNy0wMlQxMDozNzoxOS40NzRaO2J1eWVyOzlkY2RmNjNhYTk0OTAyMDUwYjgzYWY2ZjM0NjI4ODI5N2U3YTI4NzUwYjMwNTFjYTAxYWE0YTdiNWIzNDdmN2U%3D Wszystko co do tej pory podłączyłem (2x czujnik wilgotnosci gleby, 2x czujnik temp/wilg powietrza, przycisk 'emergency' który zatrzymuje program + świeci diodą) działa na zasilaniu 3.3V z malinki. Teraz chciałbym podpiąć rzeczy na 5V. Wiatraczek podpięty bezpośrednio pod 5V działa (nie z najlepszymi rpm ale zupełnie wystarczająco), tak samo pompka. Czy mógłby ktoś pomóc z ogarnięciem podłączenia ww. elementów? Z góry dzieki [EDIT] oczywiście chodzi o podłączenie tych elementów z możliwością sterowania poprzez porty malinkowe
  21. Raspberry Pi jest często używane jako kontroler automatyki domowej. Inteligentne sterowanie roletami i oświetleniem to mały wycinek tego co potrafi malinka z Domoticzem. Na początku warto zacząć od ustawień systemu, podłączenia czujników temperatury (DS18B20) oraz konfiguracji powiadomień. [blog]https://forbot.pl/blog/kurs-raspberry-pi-projekty-domoticz-ds18b20-maile-id27526[/blog]
  22. Cześć! Zastanawiam się jakich programów używacie do pisania skryptów w Python. Jak wiadomo, język ten jest ekstremalnie wrażliwy na wszelkie białe znaki, więc dobry edytor to podstawa. Obecnie używam domyślnego Thonny Python IDE, lecz chciałbym mieć auto-uzupełnienie/podgląd do obiektów i metod. Zainstalowałem PyCharm, lecz nie do końca rozumiem dlaczego nie mogę importować bibliotek potrzebnych do mojego programu - unable to import module. Fajnie jakbyście podzielili się czego Wy używacie.
  23. Cześć, przymierzam się do projektu inteligentnego domu, mam w głowie zarys planu tego co chcę osiągnąć, ale ze względu na niewielkie doświadczenie z elektroniką będę bardzo wdzięczny za wszelkie rady i sugestie. Ogólna koncepcja jest taka: Serwer na Raspberry Pi zbierający dane z czujników i wysyłający komendy do elementów wykonawczych. Czujniki i elementy wykonawcze rozproszone po całym mieszkaniu (i poza nim ) W pierwszej kolejności chciałbym zacząć od kilku prostych czujników i łączenia się do nich z mojego komputera (na razie bez serwera na malince). Myślałem o tym żeby czujniki wyposażać w esp8266 i łączyć się do nich po HTTP. W przyszłości, jak powstałby serwer na Raspberry Pi, to mógłby odpytywać czujniki i zbierać dane. Jeśli chodzi o zasilanie czujników to myślałem o zasilaniu bateryjnym/akumulatorowym. Tu pojawia się pierwszy problem, bo słyszałem, że esp potrzebuje dość sporo energii do zasilania. Myślicie, że taki układ ma prawo działać przez dłuższy czas? A może zamiast esp powinienem spróbować czegoś innego? Z góry dzięki za wszystkie rady
  24. Witam, Właśnie rusza projekt, który ma umożliwiać zdalne nauczanie zagadnień z mechatroniki i przetwarzania sygnałów. Idea jest taka, aby każdy uczeń/student miał w domu swoje własne stanowisko ze szkoły, sam rejestrował dane, a następnie, żeby nauczył się je przetwarzać w chmurze. Na chwilę obecną szukane są pomysły, np.: 1) użytkownik sam zbiera dane drganiowe z kilkudziesięciu cykli prania, a dostarczony generator dodaje sygnały powolnego uszkodzenia łożyska, generując zbiór Big Data. Następnie, użytkownik zgodnie z instrukcją opracowuje w chmurze algorytm Novelty Detection (np.sieć LSTM). 2) w zestawie jest obudowa łożyska, która jest elektromechanicznie wzbudzana z wykorzystaniem Arduino/Raspberry Pi. Drugi układ Arduino/Raspberry Pi rejestruje odpowiedź na wymuszenie. Następnie, estymowana funkcja odpowiedzi częstotliwościowej (FRF) jest wykorzystywana jako część stochastyczna sygnału syntetycznego rozwoju uszkodzenia łożyska tocznego. Na jej podstawie budowany jest zbiór Big Data, który bardzo wiernie odzwierciedla sygnały rzeczywiste. Dane są zbierane od wielu użytkowników i są użyte w procesie uczenia maszynowego w chmurze. 3) oczywiście, takie zestawy WYMUSZENIE/REJESTRACJA same w sobie pozwalają na analizę wpływu rodzaju wymuszenia na estymowaną FRF 4) Dalsze pomysły?! Pozdrawiam, Ajab00
  25. Podczas ostatniej akcji kuponowo-rabatowej stałem się posiadaczem RaspberryPi 3B+. Od początku w planach miałem wykorzystanie tego mini komputerka jako serce konsoli retro. W pierwszej chwili chciałem stworzyć duży, stacjonarny automat Arcade. W porę doszedłem jednak do wniosku, iż nie mam za bardzo miejsca na taki "mebel". Dlatego też wizja się zmieniła. Postanowiłem zbudować przenośne urządzenie, podpinane do dowolnego Tv za pomocą kabla HDMI o długości 5m. Tak oto zrodziły się pierwsze plany. Zrobiłem jak zwykle przegląd rynku, sprawdziłem ceny poszczególnych elementów, analizowałem swoje możliwości wykonania obudowy. Ten etap trwał dość długo, ponieważ nie ukrywam, iż mam mało czasu na takie zabawy. Jednak w maju w końcu zabrałem się do budowy. Na początek musiała powstać przemyślana obudowa. Zdecydowałem się na zestaw przycisków i joystików z Aliexpress (nie spieszyło mi się, a za zaoszczędzone pieniądze można kupić coś dodatkowo). I tak oto w czerwcu stałem się posiadaczem zestawu jak poniżej: Oczywiście na tym etapie wybrałem już sposób rozmieszczenia przycisków i dokupiłem dodatkowo przyciski COIN oraz 1GRACZ i 2GRACZY (dolny rząd): Obudowa została wykonana ze starych paneli, narożniki wzmocnione kantówką 2x3cm i 2x2cm (wszystko z posiadanych ścinków). Rozplanowałem też umieszczenie wentylatora nawiewowego oraz kratki wentylacyjnej, co by zapewnić naszej konsoli dobre warunki pracy (wentylator z PC na 12V). Panele są różne, więc po wykonaniu pudła całość została przeciągnięta szpachlą samochodową z włóknami wzmacniającymi oraz przeszlifowana. Tak wykonana obudowa została oklejona folią carbon zakupioną na allegro. Skoro przyjąłem, że konsola będzie przenośna to trzeba było wzmocnić narożniki. Zrobiłem to z wykorzystaniem kątowników aluminiowych oraz narożników. Pozostało wykonanie połączeń elektrycznych. Przyciski są podświetlane, więc szkoda było tego nie wykorzystać. Stąd mamy po 4 przewody do każdego przycisku. Wykorzystałem posiadany zasilacz 5V 4A i zasiliłem z niego całość: poprzez przejściówki adapter gniazda 5.5/2.1-microUSB RaspPi, podświetlenie przycisków, wentylator. Na potrzeby wentylatora od PC dołożyłem małą przetwornicę StepUp ustawioną na 12V. Trzeba było rozplanować wyprowadzenie HDMI, USB i gniazdo zasilania z obudowy. W tym celu wyfrezowałem sobie płytkę z aluminium i umieściłem w niej takie oto przedłużki: Oczywiście serce naszej konsoli również znalazło się w środku wraz z oprogramowaniem RetroPie 4.5 i kartą SD 64GB zapełniona grami. Przy pierwszej konfiguracji korzystałem ze standardowej klawiatury PC ale w późniejszym etapie dla wygody wykorzystuję klawiaturę MT08 oraz dorywczo pad Tracer Recon PC. Nie opisuję procesu instalacji i konfiguracji RetroPie, ponieważ najlepiej w tym celu korzystać z internetu i strony projektu; https://retropie.org.uk/ Całość działa od kilku dni. Miałem sporo problemów z konfiguracją joysticków. Początkowo dobrze działały tylko w menu RetroPie a w grach osie i przyciski były pozamieniane. Poradziłem sobie z tym ręcznie edytując pliki konfiguracyjne i w nich dokonałem odpowiednich zmian. Dłuższe testy pokażą co należy zmienić. Już na wstępie planuję dodanie przycisku do zał/wył malinki: Do dopełnienia całości - od spodu znajduje się 6 gumowych nóżek, by nie rysować stołu/ławy itp. Wszystkie zdjęcia pochodzą z różnych etapów budowy i nie koniecznie odzwierciedlają w pełni gotowe urządzenie. Jednak już w takiej formie przechodziło wstępne testy. RaspPi jest podczepione do dolnej płyty. Wszystko w środku zamocowane by nic nie latało. Wentylator wraz z przeciwległą kratką zapewniają bardzo dobre chłodzenie wszystkich urządzeń. Na razie z niedogodności to w razie problemów z kartą sd trzeba rozkręcić dół (8 śrubek w narożnikach). Przydałaby się jakaś mała klapka rewizyjna, ale na razie nie mam pomysłu na jej wykonanie. Ostatecznie dodam chyba również oznaczenia na przyciskach.
×
×
  • Utwórz nowe...