Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją od 14.06.2020 we wszystkich miejscach

  1. 7 punktów
    Czasem patrzymy na dostępne na rynku płytki z mikrokontrolerami i myślimy sobie "ja bym to zrobił lepiej". Zazwyczaj nie mamy pretekstu żeby rzeczywiście tak zrobić, ale czasem tak się życie ułoży, że mamy okazję spróbować. Tak właśnie miałem z płytką firmy Feather M0 Basic firmy Adafruit i wydaje mi się, że wychodząc z oryginalnego projektu udało mi się dokonać kilku ulepszeń (ale także przyszło mi pogodzić się z paroma kompromisami). A zaczęło się od tego, że często używam w moich projektach mikrokontrolera SAMD21 w jego najmniejszej obudowie QFN32 i nieraz przydałaby się możliwość przetestowania układu zanim zamówi się płytkę. Niestety, płytki które posiadam nie wyprowadzają wszystkich pinów, więc testowanie za ich pomocą nie zawsze jest możliwe. Postanowiłem zatem zrobić swoją płytkę, ale dać jej standardowy układ pinów — padło na standard Adafruit Feather. Najbardziej rzucającą się w oczy polskiemu użytkownikowi wadą płytki Adafruita jest niewątpliwie cena. Niestety, produkcja w USA, koszty wysyłki, a także konieczność pokrycia wypłat dla armii ludzi piszących dokumentację i rozwijających oprogramowanie powoduje, że nie jest ona tania. Zatem pierwszym celem, który sobie postawiłem, jest takie zaprojektowanie nowej płytki, żeby można było ją wykonać jak najtaniej. Oczywiście od razu pojawiła się konieczność kompromisów — postanowiłem usunąć część układu odpowiedzialną za obsługę i ładowanie baterii — nie ma zatem gniazdka do baterii, a nóżka do której byśmy ją podłączali jest niepodłączona. Usunąłem też wszystkie komponenty, które nie są absolutnie niezbędne — nie ma zatem kwarcu, zamiast tego używany jest wewnętrzny oscylator, wyleciał przycisk reset, zastąpiony zworką bezpośrednio na płytce (trzeba tylko dotknąć czymś metalowym), poleciały też diody świecące — choć potem jedna wróciła. Oryginalna płytka używa mikrokontrolera w opakowaniu QFN48, ale ja potrzebowałem QFN32 — tańsze, ale też ma mniej nóżek. Na szczęście odrobina gimnastyki pozwoliła mi brakujące nóżki zastąpić takimi, które były niepodłączone w oryginalnej płytce. Ba, dodałem nawet trzy dodatkowe nóżki dostępne dla użytkownika: dwie analogowe i jedna zwykła. Została mi jedna nóżka, którą postanowiłem podłączyć do diody świecącej, aby mając gołą płytkę można było sobie chociaż pomrugać. Oczywiście i tu nie obyło się bez kompromisu — aby obsłużyć SPI musiałem poświęcić nóżki normalnie używane do debugowania — zatem albo debugujemy, albo używamy SPI. W pierwszej wersji płytki zostało mi dużo wolnego miejsca, a że koszty wysyłki płytek zależą od ich wagi, postanowiłem zmniejszyć tę wagę dodając parę losowej wielkości dziur. Kiedy przyszło do wybierania koloru płytki, podobieństwo do sera skłoniło mnie do wybrania koloru żółtego. A właśnie, wprowadziłem jeszcze jedno ulepszenie: dziurki na piny są ułożone w zygzak w taki sposób, że da się w nie wetknąć nóżki goldpinów bez konieczności lutowania. Ostatnią częścią, którą postanowiłem usunąć jest gniazdko USB. Nie ma się co dziwić, bo tylko są z nim same kłopoty — ludzie narzekają, że jest w złym miejscu, że się urywa jak pociągną za kabel, do tego jest to jedyna część wymagająca dziur w płytce — i podrażająca tym montaż.Tylko jak bez gniazdka USB będziemy naszą płytkę zasilać, o wgrywaniu do niej programów i obserwowaniu ich wyników już nie wspominając? Okazuje się, że da się zrobić "gniazdko" USB z samej płytki, po prostu wycinając ją we właściwy kształt i umieszczając w odpowiednich miejscach styki. Płytka musi wówczas też mieć odpowiednią grubość, ale na szczęście nie ma dzisiaj wielkich problemów z zamówieniem takich płytek (i wychodzą nawet taniej niż standardowe, z powodu mniejszej wagi). Zatem zaprojektowałem nową wersję, z gniazdkiem USB-C (jak szaleć to szaleć). W tej wersji dziury są tylko w miedzi, zamiast przez całą płytkę, bo wykoncypowałem sobie, że taką cienka i płaską płytkę mogę używać jako wizytówki, a do tego potrzebowałem po drugiej stronie miejsce na zamieszczenie wizytówkowych informacji. Niestety, kiedy płytki wreszcie przybyły (dzięki zawirowaniom czasoprzestrzennym po 4 tygodniach, odwiedziwszy po drodze Niemcy i Wielką Brytanię) okazało się, że co prawda mechanicznie gniazdko działa doskonale, ale prąd płytka dostaje tylko jeśli podłączę ją kablem USB 2.0, podłączona do portu USB-C kablem USB-C nie jest wykrywana przez komputer i w związku z tym nie dostaje zasilania. Czas zatem na poczytanie co tam w standardzie piszą — okazuje się, że wzmianka o rezystorach ściągających na nóżkach CC, którą zignorowałem, bo wydawała się dotyczyć tylko trybu OTG, jest jednak istotna. Rozczarowało mnie to trochę, bo nie tylko musiałem zaprojektować nową płytkę, ale jeszcze nie oszczędzam na liczbie komponentów — jedno gniazdko USB zastąpić będę musiał dwoma rezystorami. No ale rezystory przynajmniej są tanie i montowane powierzchniowo, zatem wziąłem się do pracy. Zrezygnowałem ostatecznie z pomysłu wizytówki, puste miejsce wypełniłem obszarem prototypowym, w którym można sobie wlutować własne elementy, a dziury są teraz już tylko narysowane. Poza tym dodałem dwie nóżki CC do gniazdka USB i podłączyłem do dwóch rezystorów 5.1kΩ. Przez chwilę jeszcze rozważałem użycie tylko jednego rezystora, bo większość kabli i tak używa tylko jednego pinu CC, ale okazuje się, że to właśnie jest błąd, który popełnili projektanci Raspberry Pi 4, a który spowodował problemy z bardziej zaawansowanymi kablami. Postanowiłem błędu nie powtarzać. Ostateczna wersja projektu wygląda tak: Na razie używam płytki do własnych eksperymentów i sprawuje się dobrze, ale zastanawiam się nad zamówieniem większej liczby już zmontowanych i zaprogramowanych płytek — mogą się przydać do prowadzenia warsztatów z CircuitPythona gdy epidemia się skończy.
  2. 6 punktów
    Stacja pogodowa z wysyłką danych na stronę WWW Od paru tygodni testuję stację pogodową którą udało mi się zmontować w ostatnim czasie. Stacja oparta o sterownik Lan Kontroler V2.5 firmy Tiny Control. Jest to kompaktowe rozwiązanie zawierające: 5 wejść analogowych: pomiar temperatury, napięcia i prądu, oraz innych wielkości fizycznych, wejście cyfrowe w standardzie 1wire, wejście cyfrowe do obsługi czujnika temperatury i wilgotności DHT22, 4 wejścia logiczne: jako czujnik stanu do monitoringu, jako licznik impulsów z licznika energii, 1 przekaźnik (NZ, NO, C), 1 wyjście tranzystorowe, 4 wyjścia do załączania przekaźników oraz pomiar temperatury i napięcia zasilania na płytce. Do sterownika podłączyłem następujące czujniki: temperatury/wilgotności/ciśnienia - wszystko w jednym: CZUJNIK BME280/SPLITER 1WIRE/ RJ12 Grove - czujnik opadów / wody DFRobot Gravity - analogowy czujnik wilgotności gleby - odporny na korozję DFRobot Gravity - czujnik światła ultrafioletowego UV analogowy Miernik prędkości wiatru (chiński, zamówiony na aliexpress) Podłączenie Urządzenie Lan Controler wymaga podłączenia czujników do odpowiednich wejść analogowych/cyfrowych. Czujnik BME280 podłączany jest do złącza wire1. Po zmontowaniu całość prezentuje się następująco: Oprogramowanie Sterownik Lan Controler posiada wbudowany serwer www i panel zarządzania parametrami sterownika oraz wejściami: dodatkowo posiada możliwość wysyłki danych do serwerów protokołem HTTP, taką opcję zbierania danych umożliwia np. serwer Thing Speak (https://thingspeak.com/) ThingSpeak to aplikacja i interfejs API dla urządzeń IoT (opensourcowe) do przechowywania i pobierania danych z urządzeń elektronicznych za pomocą protokołu HTTP i MQTT. tak wyglądają dane z mojej stacji pogodowej na platformie Thinspeak: dzięki opcji zagnieżdżania poszczególnych widgetów z ThingSpeak na innych stronach, zrobiłem własną zawierającą kluczowe parametry pogodowe: Rozwój: w planie dodatkowy czujnik - przepływu wody, mierzący ilość opadów, planuję oprzeć to o czujnik przepływu YF-S402, natomiast przed zimą czujnik zanieczyszczenia powietrza. Oczywiście wszystkie dane będą publikowane na stronie WWW automatycznie.
  3. 5 punktów
    Moje pytanie, czy już wiesz cokolwiek na temat uczenia maszynowego? Jeśli nie, polecam zacząć od podstaw - kursów z Machine Learning jest dość sporo. Sprawa numer dwa - zdecydowana większość (jak nie wszystkie) dobrych materiałów jest po angielsku, więc polecam też skupić się na rozwoju tej umiejętności Jeśli chodzi o same materiały: - kaggle: (od podstaw Pythona, przez ML, wizualizacje, inzynieria cech i trochę o deep learning), poza tym jest to portal, na którym jest sporo innych ciekawych rzeczy jak na przykład różne zadania, w których można się sprawdzić - klasyk od Andrew Ng z uczenia maszynowego: w zasadzie jest to kurs z portalu Coursera - sieci konwolucyjne, jeden z klasyków z Uniwersytetu Stanforda Powiedzmy, że to są takie podstawy. Stąd do aplikacji uczenia maszynowego do robotyki jeszcze daleko. Ale... istnieje już trochę projektów i platform, które wykorzystują te rzeczy i analizując te projekty można się sporo nauczyć. - https://f1tenth.org/learn.html - zawody autonomicznych samochodów w skali 1/10, sprzęt jest ustandaryzowany (mniej więcej), zadaniem zawodników jest praca nad algorytmami - donkeycar: autonomiczne auto na bazie RaspberryPI - DEEPDRIVE.PL sporo ciekawych postów na swoim blogu ma też Karol Majek Inne tematy, które mogą być dla Ciebie interesujące w przyszłości to np. Reinforcement Learning. Metody te pozwalają na uczenie się agenta (twojego modelu), jak sterować układem. Aczkolwiek, sensowne wyniki jak na razie możesz uzyskać tylko w symulacji (polecam, np. OpenAI gym). Z mojego doświadczenia mogę powiedzieć tyle, że warto na początek skupić się na tym (1) jak działa samo uczenie maszynowe, (2) jak działa np. TensorFlow, Keras albo PyTorch. (3) Spróbuj wytrenować sieć, która jest w stanie rozpoznać coś na obrazku i mniej więcej określić pozycję. Wówczas możesz spróbować wykonać prostego line followera poprzez prostą kontrolę silników w zależności od położenia obiektu na obrazie. AI to temat rzeka. Pytanie, czego konkretnie potrzebujesz Najprostsze rzeczy, które może zrobic każdy to integracja wizji komputerowej albo audio z jakimiś kontrolerami. Zdecydowanie wyższa szkoła jazdy to jakieś AI kontrolujące zachowania "wyższego poziomu", ale tutaj jeszcze nie doszedłem. Jak na razie to w ubiegłym roku z kolegami braliśmy udział w zawodach autonomicznych dronów (AIRR). Hardware był ustalony i należało napisać autopilota, który będzie sterować dronem wykorzystując kamery i IMU. Generalnie polegało to na tym, że brałeś obraz z kamer, szukałeś obiektów i zwracałeś jakieś liczby, a dalej to już jakieś klasyczne algorytmy, które robiły fuzję, a następnie sekcja odpowiadająca za nawigację. Mam nadzieję, że trochę pomogłem.
  4. 4 punkty
    Użytkownik Reddita (DIY_Maxwell) miał drukarkę 3D, Raspberry Pi i dużo wolnego czasu - a oto efekt Źródło » https://www.reddit.com/r/raspberry_pi/comments/hm4s83/a_stopmotion_animation_i_made_using_raspberry_pi/
  5. 3 punkty
    Witam! Aktualizacja projektu: 1. Przyszły płytki pod enkodery, więc teraz pozycja układów w stosunku do osi silnika jest idealna 2. Zaimplementowałem wiele poprawek w oprogramowaniu układowym. 3. Pamięć EEPROM podłączona, więc teraz mam możliwość zapisu i odczytu danych kalibracyjnych dla danego układu silnik / enkoder 4. MPU6050 podłączony i mam już dostęp do danych z żyro i akcelerometru Plan na rozwój oprogramowania: 1. Dalsza optymalizacja oprogramowania (np użycie DMA do odczytu enkoderów oraz MPU). 2. Początkowo planuję użyć filtr komplementarny do ustalenia kąta wychylenia robota względem płaszczyzny pionowej. Później poeksperymentuję z filtrem Kalmana. 3. Zacznę od pojedynczego kontrolera PID który będzie miał za zadanie utrzymać zadany kąt wychylenia robota. Na wyjściu będzie długość wektora do sterowania FOC oraz kierunek obrotów (znak). 4. Gdy powyższy PID będzie działał prawidłowo, wtedy dodam kolejny PID który będzie utrzymywał zadaną prędkość robota, a na wyjściu będzie wymagany kąt wychylenia robota. Ta wartość będzie podawana jak referencyjna dla pierwszego kontrolera. 4. Kolejny PID do korygowania prędkości obrotowej lewego i prawego silnika. Będzie miał za zadanie utrzymanie robota na prostym kursie, lub skręcanie w zadanym kierunku Ponieważ czeka mnie kolejny wyjazd (obowiązki zawodowe) więc jestem zmuszony wstrzymać prototypownie do października. W między czasie w wolnej chwili dopracuję to co mogę nie mając dostępu do sprzętu, czyli schemat i projekt płytki drukowanej. Zacznę też projektować robota od strony mechanicznej (pewnie założę oddzielny wątek DIY gdy już będę miał co zaprezentować). Poniżej jedna z płytek enkodera: Obowiązkowe są tylko elementy IC1 i C1, reszta jest opcjonalna zależnie od tego jak chcemy wykorzystać sam układ i w jaki sposób podłączyć enkoder. Pozdrawiam i do następnego razu.
  6. 3 punkty
    Witam! Kolejny update. Eksperymentowałem trochę z obsługą wolnych obrotów. Pocztałem trochę na temat cogging torque (okazało się że po polsku nazywa się to moment zaczepowy ). Przetestowałem teorię z minimalną długością wektora i niestety nie zadziałała. Okazało się że gdy zmieniłem sposób sterowania silnika (w momencie gdy zmniejszany był kąt wyprzedzenia, a wektor miał stałą wartość), to PID sobie nie radził. Nic dziwnego w końcu był ustawiany dla sterowania silnikiem przy stałym kącie wyprzedzenia równym 90 stopni, oraz zmiennej długości wektora. Przy odwrotnej sytuacji współczynniki kp, ki, kd już nie pasowały. Musiałbym pewnie wprowadzić oddzielne współczynniki dla obu sytuacji. Na razie zarzuciłem walkę z momentem zaczepowym bo nie było to celem projektu. Wprowadziłem pomiar prądu silnika. Użyłem do pomiaru rezystora bocznikowego 0,1 ohm, oraz wzmacniacza x20 V/V (INA2181A). Wyjście wzmacniacza podłączyłem do ADC mikrokontrolera. Dodałem też prosty interfejs przez UART. Aktualnie można wydawać następujące komedy: 1. "torque [wartość]" - uruchamia tryb stałego momentu, wartość od -255 do +255 W tym trybie długość wektora jest zawsze stała i nie zależy ani od pozycji, ani od prędkości czy obciążenia 2. "speed [wartość]" - uruchamia tryb stałej prędkości, wartość to ilość obrotów/minutę ze znakiem. 3. "pos [wartość]" - uruchamia tryb stałej pozycji wału, wartość 0 do 360 stopni. 4. "current [wartość]" - ustawia makymalny prąd silnika. Ograniczenie to ma priorytet nad wszystkimi trybami pracy kontrolera. W międzyczasie spaliłem też mikrokontroler na płytce nucleo gdy przez nieuwagę do ADC zamiast wyjścia ze wzmacniacza podłączyłem jedną z linii zasilania silnika Na szczęście wlutowanie nowego układu załatwiło sprawę i płytka znów działa Poniżej filmik z działania ograniczenia prądu silnika: Pozdrawiam, Marek
  7. 3 punkty
    Cześć wszystkim, Mam na imię Marek. Przez ostatnie kilka lat byłem tylko okazjonalnym czytelnikiem forum. Teraz to pewnie się zmieni, ponieważ postawiłem przed sobą nowe wyzwanie. Jest nim zdobycie możliwie dogłębnej wiedzy o uC z rodziny STM32. Mam wykształcenie elektroniczne i długoletnie doświadczenie w projektowaniu i programowaniu układów sterowania opartych na 8 bitowych AVR. Urządzenia programuję w C, C++ oraz Delphi na PC-ta. Teraz będę przecierał nowe ścieżki związane z STM-ami. Na początek poszedł przygotowany przez Wasz zespół, kurs bardzo pomocny przy stawianiu pierwszych kroków. Pozdrawiam Marek
  8. 3 punkty
    Cześć, dzisiaj wykonałem próbę podłączenia prostej kamery VGA (sensor CMOS) do zestawu FPGA firmy QMTECH z Artix-7 (chip FPGA: XC7A100T-2FGG677i). Tutaj jest link do tego zestawu: https://pl.aliexpress.com/item/4000170042795.html?spm=a2g0o.productlist.0.0.1bbc3a488cWayC&algo_pvid=b8e2d6de-11a7-4045-be1d-dc82c5229b85&algo_expid=b8e2d6de-11a7-4045-be1d-dc82c5229b85-3&btsid=39edaf33-09cc-4522-882b-0168a91a733d&ws_ab_test=searchweb0_0,searchweb201602_4,searchweb201603_55i Zestaw ten kupiłem jakiś czas temu i postanowiłem go użyć w tym projekcie ze względu na dużą ilość zasobów - szczególnie dużą ilość BRAM 4,660Kb (potrzebna na frame-buffer). Pewnie łatwiej i sensowniej byłoby podłączać jakąś kamerę z interfejsem MIPI (i lepszym sensorem), ale nie posiadam żadnego zestawu FPGA, który by miał wbudowany taki interfejs Jest to moja pierwsza próba podłączenia jakiejkolwiek kamery do zestawu FPGA. Wybrałem tanią kamerę "OV7670" (sensor firmy Omnivision) - tutaj link do sklepu (chińskiego): https://www.banggood.com/Wareshare-OV7670-Camera-Module-CMOS-Acquisition-Board-Adjustable-Focus-300000-Pixel-p-1478355.html?rmmds=search&cur_warehouse=CN Tutaj link do datasheet do tego sensora: https://www.voti.nl/docs/OV7670.pdf Wybrałem projekt ze strony "FPGA4Student" ponieważ z kilku branych pod uwagę wydał mi się najprostszy:był https://www.fpga4student.com/2018/08/basys-3-fpga-ov7670-camera.html Projekt był zrobiny dla zestawu FPGA "Basys 3" z Artixem-7 (XC7A35T-1CPG236C) który posiada tylko 1800 Kb wewnętrznej pamieci BRAM - stąd frame-buffer obsługuje tylko max. rozdzielczość 320x240. Można by go też odpalić na zestawach "Artix-7 35T Arty" lub "Digilent Cmod At-35T" - tutaj linki do tych zestawów: https://kamami.pl/zestawy-uruchomieniowe/560134-artix-7-35t-arty-zestaw-ewaluacyjny-dla-fpga-artix-7.html https://kamami.pl/zestawy-uruchomieniowe/562401-digilent-cmod-a7-35t-modul-uruchomieniowy-z-fpga-artix-7-410-328-35.html Ale wracając do projektu - moja płytka FPGA firmy QMTECH (XC7A100T) nie posiada wyjściowego interfejsu VGA (ma HDMI które wypróbowałem i które działa dobrze), stąd wynikła potrzeba zbudowania go samemu. Wybrałem prosty interfejs (12) rezystorów wzorując się na układzie z zestawu "Basys 3". Tutaj schemat tego interfejsu: Zmontowałem do na płytce prototypowej (potrzebne jest gniazdo VGA 15 pinowe). Tak wygląda cały układ z kamerą, interfejsem VGA (na zielonej płytce) i zestawem FPGA QMTECH. A tu obraz na monitorze (tylko składowa niebieska): Jak widzicie próba nie zakończyła się pełnym sukcesem obraz jest o rozdzielczości 320x240 pikseli (i tak miało być) natomiast jest widoczna na ekranie tylko składowa niebieska.Podejrzewam, że błąd jest na zielonej płytce z interfejsem VGA - bo była ona dzisiaj "na szybko" polutowana a nie była najpierw przetestowana (może pomyliłem się przy gnieździe VGA). Zamieszczam tu pełen projekt dla Vivado 2018.3. Plik constraints dla mojej płytki QMETCH, ale na oryginalnej stronie projektu mo\zna pobrać pełen projekt dla "Basys 3". basys3_ov7670_v1.zip W najbliższym czasie zamierzam usunąć błędy z interfejsu VGA oraz zwiększyć pojemność frame-buffer'a do pełnej rozdzielczości VGA (na mojej płytce powinno wystarczyć pamieci BRAM w układzie FPGA). Zamieszczam projekt, bo może ktoś będzie także chciał spróbować podłączyć taki model kamery do układu FPGA. Zachęcam wszystkich do własnych prób z układami FPGA, bo w dziale "Układy programowalne" na Forbocie ostatnio bardzo mało się dzieje. Pozdrawiam
  9. 3 punkty
    Witam ponownie! Update z prac Zadowolony z siebie, gdy udało mi się wprawić w obroty silnik, postanowiłem posprawdzać jak wyglądają zakłócenia w układzie. Powiem tylko delikatnie że nie byłem zadowolony gdy zobaczyłem na oscyloskopie co się dzieje na linii 3.3V Miałem dużo szczęścia że nie uszkodziłem nowego NUCLEO, bo przepięcia dochodziły do 5.5v. Trochę poczytałem co mogę zrobić. Oczywiście beztroskie łączenie mas układów było przyczyną. Skończyło się na rozłożeniu i ponownym złożeniu całego układu, tym razem z poprawnym połączeniem mas (topologia gwiazdy itd..). W końcu odebrałem też encodery magnetyczne. Wydrukowałem podstawkę do testowania silnika i zmontowałem wszystko w całość. Szybka kalibracja wszystkiego i mam silnik sterowany metodą FOC. Od razu widać było różnicę w działaniu: - Moment obrotowy jest płynny bez znacznych skoków (jednak minimalne wahania da się wyczuć) - Prąd zmalał o rząd wielkości (dla tych samych obrotów bez enkodera miałem 200mA, teraz jest to około 20mA) - Silnik przestał się nagrzewać Poniżej efekt prac: Jak widać na powyższym filmiku, program cały czas stara się trzymać optymalny kąt 90 stopni pomiędzy wektorem pola od magnesów stałych a wypadkowym wektorem pola od uzwojeń. Przy takim przesunięciu uzyskujemy największy moment obrotowy. Kolejnym krokiem będzie przejście z modulacji SPWM na SVPWM. O tym czym jest SVPWM można poczytać tutaj: https://www.switchcraft.org/learning/2017/3/15/space-vector-pwm-intro Pozdrawiam, Marek
  10. 2 punkty
    "Takie tam" urządzenie do gry w Backgammona na zakończenie kursu - jako owoc kilkunastu świetnie spędzonych wieczorów. Zastępuje wiecznie spadające ze stołu "analogowe" kostki. Bardzo dziękuję za ten kurs (oraz inne kursy). Naprawdę, kawał dobrej roboty no i wartość edukacyjna jest nie do przecenienia. Szacun!
  11. 2 punkty
    @Ruby witam na forum Miło słyszeć, że zdecydowałeś się na naukę z naszego kursu! O miernik możesz być spokojny - nie będziesz miał z tego tytułu żadnych problemów. Wykonasz wszystkie pomiary tak samo jak na tym innym mierniku. Jeśli zamawiane towary są na stanie to zamówienia opłacone do godziny 12 są wysyłane tego samego dnia. Czyli jeśli złożyłeś zamówienie w piątek to (zależnie od godziny) paczka powinna być u Ciebie w poniedziałek lub wtorek. Na pewno dostaniesz maila informującego o wysyłce.
  12. 2 punkty
    Moja wersja stacji pogodowej z wyświetlaniem wyników na lcd: #include <OneWire.h> #include <DallasTemperature.h> //Biblioteka termometru cyfrowego OneWire oneWire(A5); //podłącznie termometru do A5 DallasTemperature sensors(&oneWire); //przekazanie informacji do biblioteki #include "DHT.h" DHT dht; //biblioteka czujnika wilgoci #include <LiquidCrystal.h> //biblioteka lcd LiquidCrystal lcd(8, 9, 10, 11, 12, 13); //inf. o wyswietlaczu void setup() { // put your setup code here, to run once: Serial.begin(9600); dht.setup(2); //czujnik wilgoci pin 2 sensors.begin(); //inicjalizacja termometru lcd.begin(16, 2); //inicjalizacja lcd lcd.clear(); } void loop() { // put your main code here, to run repeatedly: sensors.requestTemperatures(); //zapytanie o odczyt termometru float temperatura = sensors.getTempCByIndex(0); //zapisanie odczytu jako stałej int wilgotnosc = dht.getHumidity(); //zapisanie odczytu jako stałej int odczyt = analogRead(A0); int zachmurzenie = map(odczyt, 0, 1024, 1, 5); lcd.setCursor(0, 0); lcd.print("Temperatura"); lcd.setCursor(0, 1); lcd.print(temperatura); lcd.setCursor(4, 1); lcd.print((char)223); lcd.setCursor(5, 1); lcd.print("C"); //wyświetlenie temperatury powietrza delay(2000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wilgotnosc"); lcd.setCursor(0, 1); lcd.print(wilgotnosc); lcd.setCursor(3, 1); lcd.print("%RH"); //wyswietlenie wilgotnosci powietrza delay(2000); lcd.clear(); switch(zachmurzenie) { //wyswietlenie inf. o zachmurzeniu case 1: lcd.setCursor(0, 0); lcd.print("Zachmurzenie"); lcd.setCursor(0, 1); lcd.print("Calkowite"); break; case 2: lcd.setCursor(0, 0); lcd.print("Zachmurzenie"); lcd.setCursor(0, 1); lcd.print("Duze"); break; case 3: lcd.setCursor(0, 0); lcd.print("Zachmurzenie"); lcd.setCursor(0, 1); lcd.print("Umiarkowane"); break; case 4: lcd.setCursor(0, 0); lcd.print("Zachmurzenie"); lcd.setCursor(0, 1); lcd.print("Male"); break; lcd.setCursor(0, 0); lcd.print("Zachmurzenie"); lcd.setCursor(0, 1); lcd.print("Bezchmurnie"); break; } delay(2000); lcd.clear(); }
  13. 2 punkty
    Dziękuję wam za odpowiedzi! Jakie to było irytujące! Już działa... Obecnie używam poczty wp z serwerem smtp.wp.pl i portem 465 (https://pomoc.wp.pl/jak-skonfigurowac-program-pocztowy) i mogę spamować na moje skrzynki mailowe. Ważne, żeby włączyć w opcjach poczty wp dostęp rzez IMAP oraz POP. Swoją drogą, jakimś cudem kilka testowych wiadomości doszło do mojej starej poczty wp - dokładnie dwie - a później już im się odechciało, mimo że skrzynki gmail odbierały bezproblemowo każdą wiadomość. Ja już nawet nie próbuję tego zrozumieć.... ;D Działa wystarczająco dobrze! Zmiana ustawień w koncie google niestety mi nie pomogła, ale będę mieć to na uwadze w przyszłości. Dzięki za podpowiedzi!
  14. 2 punkty
    To już jest bardziej pytanie dla informatyka, a tam poza odpowiedzią "U mnie działa" jest też inna odpowiedź "Nie wiadomo" Ale możliwe, że masz zabezpieczoną pocztę - w gmailu coś się zmieniło, że aplikacje mają osobne wygenerowane hasło aplikacji, musisz poszukać w panelu myaccount.
  15. 2 punkty
    W kontekście tego układu ciężko analizować napięcia, jeżeli opór R jest duży to styki mogą mieć wpływ ale napięcie powinno zmieniać się raczej proporcjonalnie. Układ z kursu ma inny cel - tranzystory MOS są tu traktowane trochę lżej, bo są trudniejsze i układ ten służy do tego, żeby raz podłączyć R do zasilania i raz do masy i zaobserwować np. pojemność bramki. Ale żeby sprawdzić jak działa, przejść przez punkty pracy to trzeba już regulowane napięcie na bramce. Układ do testów wyglądałby tak:
  16. 2 punkty
    Witam serdecznie, nazywam się Adrian i pochodzę z pięknego Gdańska. Na karku 23 lata i sprowadza mnie tutaj chęć rozwijania się w różnych dziedzinach informatyki. Jako, że moja praca inżynierska będzie zawierała w sobie Rpi to zdecydowałem się na zakup pełnego zestawu edukacyjnego, który jak mam nadzieję pozwoli mi przejśc przez ciekawę strefę nieznanych mi jeszcze zagadnień. IoT oraz Smart House to według mnie przyszłość więc czas wziąć to w swoje ręcę! Pozdrawiam, Lazur
  17. 2 punkty
    @Tobitobiasz44 to była ostatnia część tego kursu, jak będzie coś nowego na pewno to ogłosimy
  18. 2 punkty
    Przy zasilaniu rzeczy ogólnie. Zachęcam do przeczytania kursu elektroniki z tej strony, na pewno odpowie ci na to i wiele innych, jeszcze nie zadanych pytań.
  19. 2 punkty
    Każdy kiedyś zaczynał, a jak nic jeszcze nie wiesz, to ciężko się w Internecie szuka, bo nawet nie znasz odpowiednich słów. Dlatego podpowiadam terminy, ale nie ma potrzeby zaraz się nad człowiekiem znęcać.
  20. 2 punkty
    Tak, projektujemy i produkujemy m.in. układy elektroniki bezpieczeństwa ruchu drogowego, np. sekundniki na skrzyżowaniach, sygnalizatory akustyczne na przejściach dla niewidomych, przyciski zgłoszeniowe dla pieszych, itp. Wszędzie tam siedzą 8 bitowe AVR-y lub PIC-e.
  21. 2 punkty
    Przeglądam Twoje aktualizacje i muszę Cię pochwalić za profesjonalne podejście do tematu. Są eksperymenty, wnioski i rzeczowe poprawki. Nie łapiesz się od razu za sam cel tylko pomału do niego brniesz (tu takie nawiązanie do podejścia, które ostatnio się w wielu miejscach panoszy - Chcę bibliotekę Arduino która zrobi wszystko...) Mało jest ludzi z takim podejściem, także tak trzymaj
  22. 2 punkty
    @ceiem super, rysowanie kilku wykresów działa i logika kosatki do gry też jest Możesz jeszcze popróbować zapisać program tak, żeby po przytrzymaniu przycisku nie losowało cały czas nowych liczb - w zwykłej grze pewnie by to było uciążliwe ale tak to super, fajnie że robisz zadania dodatkowe!
  23. 2 punkty
    Historyczne ceny z zakończenia dnia znajdziesz na stooq. A co to samej predykcji, w internecie jest sporo tutoriali gdzie ktoś robi to zwykle na LSTM i amerykańskiej giełdzie, albo swego czasu BTC. Na przykład https://www.kaggle.com/humamfauzi/btc-price-prediction-using-lstm Jako ciekawostka spoko, ale w ten sposób nie przewidzisz cen.
  24. 2 punkty
    Skoro cewka jest na prąd zmienny to czemu usilnie szukasz przetwornicy DC=>DC? 1. Opcja Skoro masz stycznik, z cewką na "nietypowe" napięcie, to najprostszym wyjściem z impasu jest rozebranie stycznika i wymianie cewki na nową z napięciem pracy ~230V. Oczywiście też na prąd zmienny musi być nowa cewka, jak stara była na taki prąd !! Inaczej, spalisz nową cewkę. Trochę roboty, ale notabene najmniejszy koszt, i nie zajmuje ci nic dodatkowego miejsca, jak w opcji 2. 2. Opcja Do sterowania obecną cewką, potrzebujesz 50V prądu zmiennego. No to zamiast kombinować wystarczy zdobyć transformator 230/400V (co wygodniej) na 50V i już masz potrzebne napięcie sterowania. STEROWANIE stycznikiem. dla obu opcji notabene. Można oczywiście, elektronicznie przez opto-triaka typu MOC + triak malej mocy, ale prościej zastosować sobie dodatkowy tzw. przekaźnik interfejsowy z cewką na 5V który już bez problemu wysterujesz z Arduino, i jego stykiem sterować cewkę stycznika.
  25. 2 punkty
    Niestety oba sposoby nie pomogły ale zauważyłem że taśma z przewodami od kamery była poluzowana i bez problemu wyszła z gniazda. Może mocowanie było poluzowane albo zatrzask? Czy jest możliwe że doszło do uszkodzenia kamery? EDIT: poprawiłem mocowanie taśmy i po tym zauważyłem, że nie domknąłem zatrzasku od zewnętrznej strony. Poprawiłem i już działa dobrze. Dzięki za pomoc. Specjalnie założyłeś konto, żeby pomóc innym w takiej sprawie? Szanuję
  26. 2 punkty
    Witam szanowne grono:) mam na imię Piotr, interesuje się elektroniką i astrofotografią, od niedawna również programowaniem, dopiero startuje i na pewno będę miał mnóstwo pytań do doświadczonych członków forum:))
  27. 2 punkty
    Nie chodzi o X i Y, ale o dryft kąta (X i Y nie mają z tym nic wspólnego). Chciałeś aby nieruchomy miernik nie pokazywał że się kręci, prawda? Więc niestety - metodą prób i błędów. Pamiętaj tylko o jednej ważnej sprawie: żyroskop nie pokazuje jakichś tam kątów, ale prędkość kątową, a program na tej podstawie oblicza o ile "przekręcił się" miernik. Niestety - Ziemia też się kręci, i to całkiem szybko, dlatego prędkość kątowa będzie dla nieruchomego miernika zawsze różna od zera - i tę wartość musisz znaleźć. Automatyczna kalibracja nie jest niestety zbyt dokładna...
  28. 2 punkty
    @Gieneq aaaa teraz rozumiem. Dziękuję bardzo Zamówiłem wczoraj zestaw do drugiej części i działam dalej... Świetny kurs.
  29. 2 punkty
    Może wina przewodu microUSB, spróbuj na innym.
  30. 2 punkty
    Próbkuję pozycję enkodera co 0,1s i wyznaczam różnicę. Z tą wyliczoną wartością oraz wartością referencyjną wchodzę do regulatora PID gdzie wyjściem jest bezpośrednio wartość dla generatora PWM. Myślałem też o wrzuceniu do regulatora średniej z kilku pomiarów, ale wydaje mi się że mogłoby to wprowadzić niepotrzebne opóźnienie w reakcji układu. Może jakaś średnia ważona, gdzie ostatni pomiar miałby najwyższą wagę. Jeszcze nie miałem czasu na takie eksperymenty. Nigdy nie słyszałem (bo elektronika to tylko moje hobby), ale z opisu wynika że doświadczyłem tego zjawiska. Przy niskich obrotach dało się zauważyć pewną nieregularność. Szczególnie widać to w trybie serwo gdzie przy niektórych kątach układ ma problem z utrzymaniem pozycji. Myślę że w moim przypadku nałożyły się dwa zjawiska: 1. Charakterystyka samego silnika oraz wspomniany przez ciebie "cogging torque" 2. Odczyty z enkodera magnetycznego nie są regularne. Enkoder ma 4096 kroków, ale np na 1 stopień przypada czasem więcej a czasem mniej kroków. Myślę że duże znaczenie ma dokładność umieszczenia magnesu nad układem (w moim przypadku to wciąż prowizorka, więc pewnie mam jakieś odchyły). Zamówiłem PCB pod enkodery, czekam aż przyjdzie. Zauważyłem że w tak prostej implementacji FOC największe nieregularności pojawiają się przy najniższych wartościach wektora pola magnetycznego. Mam taką teorię (wciąż nie sprawdzoną), że mógłbym wprowadzić minimalną długość wektora, a gdy zajdzie potrzeba zejścia niżej, to płynnie zmiejszałbym kąt wyprzedzenia z 90 stopni do zera (zależnie od potrzeb). Myślę że zwiększyłoby to kontrolę kosztem zmniejszenia sprawności przy niskich obrotach. Sprawdzę moją teorię niedługo i dam znać Pozdro!
  31. 2 punkty
    Na początek najlepiej poszukać jakiegoś stażu lub praktyk. Ze względu na to, że nie jest to pełnowymiarowa praca i nie masz doświadczenia, nie ma co liczyć na wysokie wynagrodzenia, ale raczej chodzi o naukę i zdobycie doświadczenia. Większość pracodawców patrzy na projekty, więc warto zrobić coś w stylu portfolio z krótkimi opisami. Skończyła się sesja i wiele firm rusza z rekrutacją na praktyki studenckie, ale nie trzeba być koniecznie studentem, żeby się na takie dostać.
  32. 2 punkty
    @KubaCz, a jakie masz doświadczenie? Możesz pochwalić się jakimiś, nawet najprostszymi projektami elektronicznymi lub informatycznymi, nad jakimi pracowałeś hobbystycznie? Miałeś jakąś styczność z elektroniką/informatyką "poza szkołą"? Branże, o które pytasz, są bardzo szerokie, wszystko zależy od tego, co chciałbyś konkretnie robić Chodzi o jakąś pracę natury "inżynierskiej" czy o to, aby jedynie była powiązana z dziedzinami, które wymieniłeś? Staż wchodzi w grę czy musi być to już praca "normalna"? Pozdrawiam
  33. 2 punkty
    Może Ci się spodobać montaż manhattański (poszukaj manhattan style pcb). Polega to na tym, że bierzesz jednostronną płytkę PCB (za grosze na Aliexpress) i podpinasz ją do masy. Z innej płytki wycinasz malutkie kawałeczki (na Aliexpress są gotowce, zobacz na kwadraciki na zdjęciu) i kleisz je kropelką do tej głównej płytki. Teraz do głównej płytki lutujesz te nóżki, które mają być spięte z masą, a do tych kwadracików lutujesz nóżki, które spięte być nie mają z masą, ale mają być spięte między sobą. W załączniku przykład znaleziony w necie.
  34. 2 punkty
    W zasadzie każda praca jaką znajdziesz będzie dzisiaj związana z elektroniką lub informatyką, nawet praca na kasie w supermarkecie wymaga interakcji z systemem teleinformatycznym (a nierzadko nawet dość dużej wiedzy, żeby obejść problemy w "systemie"). Myślę, że raczej powinieneś się zastanowić w jakiej dziedzinie chciałbyś pracować, a następnie dowiedzieć się jak komputery i elektronika są w tej dziedzinie używane i jakie firmy oferują dla tej dziedziny rozwiązania — wtedy kontaktujesz się z taką firmą i dowiadujesz od nich czego oczekują od pracownika. Ja bym tak zrobił, w każdym razie.
  35. 2 punkty
    Trzeba być jednak świadomym pewnych właściwości stosowania w układzie czujnika, asymetrii i zaniku faz, o którym pisze kolega wyżej. Mianowicie zabezpiecza on układ przed zmianą kierunku obrotów, tylko w obwodzie przed czujnikiem! Więc jak ktoś namiesza na styczniku za nim, czy klemrecie silnika, to taki czujnik już prawidłowo nie zadziała. PS. Kolego pewnie pyta o układ gwiazda/trójkąt. W tym układzie tak naprawdę, w miarę skuteczną ochroną jest, dobre i jednoznaczne oznakowanie przewodów, w skrzynce zaciskowej silnika, i skrzynce sterowania. Dodatkowo, czujnik zaniku i asymetrii faz. Obowiązkowo schemat naklejony, na drzwiczkach sterowania. Właściwie więcej się zrobić nie da. Nie ma praktycznie możliwości wyeliminowania błędu ludzkiego podczas montażu.
  36. 2 punkty
    Tak na szybko: Po wykonaniu "return" w danej funkcji nie wykona się nic więcej. Czyli gdy masz funkcję zmierzOdleglosc to kod, który masz w tej funkcji, ale poniżej linijki "return dystans;" nigdy się nie wykona. Więc nalezało by przenieść return na koniec tej funkcji. Druga kwestia jest to, że nie masz nigdzie gaszenia diod (dotyczy kodu za return). Więc nawet jak return przeniesiesz to raz zapalona dioda nie zgaśnie. Jeżeli chodzi o debugowanie diodą to w pewnym sensie zadziałało ono u ciebie bo jak zapewne zauwazyleś diody nigdy się nie zapalały wiec powinieneś się domyśleć, że z jakiegoś powodu kod tutaj nie dociera. Choć ja wolę debugować za pomocą serial bo wtedy mam możliwość sprawdzenia jeszcze wartości wybranych zmiennych. Ale warto zapamiętać. Jeżeli coś nie chce się wydarzyć to problemem jest coś wcześniej niż instrukcja, która się nie wywołuje.
  37. 2 punkty
    Trzymam kciuki, sam projekt wydaje się innowacyjny.
  38. 2 punkty
  39. 2 punkty
    Cześć, można niestety niechcący "zbrickować" płytkę Elbert poprzez błąd w pliku "ucf" (definicja pinu zegara). Powinno dać się przywrócić Elberta do życia. Patrz ten wątek: Pozdrawiam BTW: chyba w internecie jest też jakiś tutorial jak "odbrickować" Elberta (ale go nie testowałem).
  40. 2 punkty
    Cześć, widzę, że skorzystałeś z platformy "ThingSpeak.com" też z niej korzystałem i uważam, że jest super (i zebrane dane można sobie od razu 'obrobić" w MATLAB'ie). Fajny projekt Pozdrawiam
  41. 2 punkty
    Witam wszystkich. Zajmuje się elektronika z czystej ciekawości.
  42. 2 punkty
    A jeżeli chciałbyś wiedzieć co było nie tak w tym kodzie to to, że za pierwszym razem zmienne rozmiarStrony1 oraz rozmiarStrony2 miały ustawiona wartość i przy kolejnym wprowadzaniu danych te zmienne nie były puste więc nie przypisywało im nowych wartości tylko pozostawiało stare :) w tym kodzie wystarczyło by dodać na końcu pętli czyszczenie tych zmiennych :)
  43. 2 punkty
    Witam! Update z frontu. Mam już NUCLEO z STM32F303RE oraz silniki do robota. Na razie na szybko przerzuciłem kod na nowy mikrokontroler oraz podłączyłem silnik. Wciąż brakuje mi enkoderów, więc nie można nazwać tej metody kontroli prawdziwym FOC. Bez feedbacku o położeniu wirnika, silnik tylko podąża za wirującym polem magnetycznym wygenerowanym przez uzwojenie. Jest to jakaś metoda sterowania, ale bardzo nieefektywna bo wektory pola magnetycznego od magnesów stałych i od uzwojenia praktycznie są w jednej linii. Przebiegi PWM są generowane z częstotliwością 35kHz, więc silnik działa bezgłośnie. Nawet przy tym nieefektywnym sterowaniu moment obrotowy jest zaskakująco duży, a prądy nie przekraczają 0.5A (12V ,100% wypełnienia PWM, minimalne obroty). Co do samego sterownika to postanowiłem wprowadzić następujące modyfikacje do założeń projektu: 1. Zabezpiecznie nadprądowe - pomiar ze wszystkich faz jednocześnie. Wykorzystam możliwość ustawienia poziomu maksymalnego prądu jaką daje mi mikrokontroler (comparator + DAC). 2. Monitorowanie prądu silnika - z wykorzystaniem przetwornika A/D 3. Dodam też zewnętrzną pamięć EEPROM I2C do przechowywania konfiguracji Pozdrawiam, Marek
  44. 2 punkty
    @cooltechproject witam na forum Zachęcam do stałej aktywności na forum! Jeśli szukasz jakiś ciekawych tematów dla swoich dzieci to dla tego rocznika idealnie nada się też micro:bit, zerknij na mój najnowszy kurs: https://forbot.pl/blog/kurs-microbit-wstep-spis-tresci-id41358
  45. 2 punkty
    Bardzo fajny układ, wszystko działa jak należy: a także druga strona: Z ciekawości policzyłem i zmierzyłem rezystancje LED1: 533,33Ω (pomiar: 528Ω) LED2: 800Ω (pomiar: 796Ω) LED3: 1130,95Ω (pomiar: 1134Ω) LED4: 4000Ω (pomiar: 3926Ω) LED5: 1200Ω (pomiar: 1187Ω)
  46. 2 punkty
    Bardzo ciekawy i przydatny kurs! W kolejnych odsłonach myślę, ze fajnie gdyby pojawiło się coś na temat mikrofonów, konwersji PDM -> PCM oraz wyjścia audio DAC. To są tematy trudne do samodzielnej nauki w oparciu o dokumentacje czy repozytoria, dlatego kurs na ten temat bardzo by się przydał. Pozdrawiam
  47. 2 punkty
    Cześć, zadanie jakie było do wykonania polegało na tym, żeby udostepnić dane ze sterowników przemysłowych poprzez siec ethernetową na dowolnie wybranym pececie. Problem był tylko taki, że sterowniki nie maja wbudowanego webserwera, ale pracują za to w sieci Modbus. W tym przypadku zadanie sprowadziło się do dwóch podzadań: stworzyć mastera w sieci Modbus bazując na Arduino Mega oraz na tym samym Arduino postawić web serwera. Oba zadania od strony programowej zrealizowano za pomocą Bascoma a od strony sprzętowej instalując na Mega shielda Wiznet W5100. Oczywiście można te zadania zrealizować na wiele innych sposobów ale sposób opisany powyżej był dla mnie najwygodniejszy. Dodatkowo jest dość rozwojowy, bo Mega można zastąpić Nano z odpowiednim shieldem ethernetowym, co redukuje koszt, a dzięki temu można praktycznie do każdego urządzenia podpiąć indywidualny zestaw (Nano+eth sield) i dzięki temu uniknąć problemów związanych z zakłóceniami na okablowaniu RS485 jakie trzeba użyć aby połączyć wszystkie urządzenia slave w sieci Modbus z masterem, mając na uwadze, że sterowniki PLC pracują czasami przy dość sporych maszynach. Poniżej filmik z testów: Pozdrawiam
  48. 2 punkty
    Czy nie lepiej wtedy kupić jakiegoś NUCa?
  49. 2 punkty
    @Marcinllot Witaj na forum Może spróbuj doinstalować RetroPie do Rasbiana (a nie doinstalować Desktop do RetroPie), tutaj jest instrukcja (https://retropie.org.uk/docs/Manual-Installation/) jak to można zrobić, może wtedy zadziałają dwa monitory
  50. 2 punkty
    Super pomysł!!! Czekam na sprzedaż życzę żeby zrobiło taką karierę jak Arduino
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×
×
  • Utwórz nowe...