Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'elektronika'.

  • 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 - DIY
    • Projekty - DIY roboty
    • Projekty - DIY (mini)
    • Projekty - DIY (początkujący)
    • Projekty - DIY 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

Kategorie

  • Quizy o elektronice
  • Quizy do kursu elektroniki I
  • Quizy do kursu elektroniki II
  • Quizy do kursów Arduino
  • Quizy do kursu STM32L4
  • Quizy do pozostałych kursów

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


Imię


Strona

  1. Od dawna interesowały mnie pomiary warunków meteorologicznych w mojej miejscowości, pierwsza stacja meteorologiczna, którą zbudowałem około roku 2010, wykonana była na mikrokontrolerze Atmega32. Do komunikacji z światem wykorzystywała moduł LAN Wiznet 7010a. Stacja ta była oprogramowana w języku BASCOM. Projekt który chcę zaprezentować dzisiaj działa już od roku 2018 i został oprogramowany w środowisku Arduino. Stacja została podzielona na 2 moduły, pierwszy pomiarowy oparty jest na klonie Arduino Nano oraz drugi odbiorczy którego sercem jest ESP8266 NodeMCU v3, służy on również do wyświetlania aktualnych pomiarów na wyświetlaczu LED dot matrix o wymiarach 8x56 punktów. Na pracach stolarskich się nie będziemy skupiać napiszę tylko że klatka meteorologiczna została wykonana z drewna sosnowego i umieszczona na wysokości 2 m. Moduł Pomiarowy Czujniki jakie zastosowałem to dwie sztuki DS18B20 pierwszy zajmuje się pomiarem temperatury przy gruncie na wysokości 5cm, drugi pełni rolę zapasowego czujnika temperatury na wypadek uszkodzenia się głównego czujnika BME280. Do pomiaru prędkości wiatru wykorzystuję wiatromierz firmy Maplin na jeden obrót wiatromierza przypadają 2 impulsy z kontaktronu który jest w nim zamontowany, producent dostarcza również odpowiedni wzór według którego można obliczyć rpm oraz prędkość wiatru w km/h. Dane mierzone przez wiatromierz możemy podzielić na dwie wartości, pierwsza to chwilowa prędkość, druga prędkość w porywach, aby uśrednić wartości mierzone program zlicza impulsy z 5s a następnie dokonuje odpowiednich obliczeń. Zebrane dane przesyłane są do drugiego urządzenia poprzez moduły radiowe które działają na częstotliwości 433,92 MHz. W tym celu zastosowana została biblioteka RCSwitch. Każda mierzona wartość jest wysyłana jako osobna transmisja. aby rozróżnić pomiary z konkretnych czujników mierzona wartość mnożona jest przez 100 a następnie dodawana jest liczba 100 000 dla pierwszego czujnika, 200 000 dla drugiego itd. Przykład kodu który realizuje tę funkcję poniżej: // temperatura sensor BME codetosend = temp * 100 + (1 * 100000); mySwitch.send(codetosend, 24); // wilgotnosc sensor BME codetosend = hum * 100 + (2 * 100000); mySwitch.send(codetosend, 24); Moduł Wewnętrzny Obudowa, która idealnie nadawała się do implementacji wewnętrznego modułu pochodzi z tunera IPTV Motorola VIP1910-9. Przedni panel został wykonany z ciemnego półprzepuszczalnego plastiku który idealnie nadaje się do umieszczenia w nim wyświetlacza. Sercem urządzenia jest układ ESP8266. "Moduł wewnętrzny" został również wyposażony w czujnik temperatury oraz wilgotności DHT22, dodatkowo w celu prezentacji zmierzonych wartości dołączone zostało 7 szt. modułów wyświetlacza LED dot matrix z układem MAX7219. Do obsługi tej matrycy zastosowałem bibliotekę Max72xxPanel.h która współpracuje z biblioteką Adafruit_GFX.h w ten sposób nie byłem zmuszony implementować do rozwiązania własnych czcionek. Matryca ta oprócz modułowej konstrukcji umożliwia również sterowaniem jasnością podświetlania, w tym celu aby uprzyjemnić użytkowanie w porach nocnych odbiornik został wyposażony w fotorezystor dzięki któremu potrafi określić natężenie oświetlenia otoczenia i odpowiednie ustawienie podświetlenia. Na wyświetlaczu w pierwszej kolejności wyświetlam aktualną godzinę oraz temperaturę wewnątrz pomieszczenia oraz wilgotność, po około jednej minucie wyświetlane są informacje odczytane z stacji meteo czyli temperatura wilgotność i ciśnienie, postanowiłem nie wyświetlać tutaj informacji dotyczących prędkości wiatru oraz temperatury przy gruncie. Decyzję tą podjąłem na podstawie użytkowania innego podobnego rozwiązania, akurat jak chcemy odczytać godzinę to wyświetlane są inne informacje. Dodatkowo w godzinach nocnych, które zostały ustawione w sztywnych ramach czasowych między 21:00 a 7:00 informacje odczytane z stacji meteo zostały okrojone tylko do temperatury. W projekcie zostały zastosowane 2 rodzaje animacji pierwsza z nich, przesuwa tekst z prawej strony wyświetlacza na lewą, z możliwością zatrzymania w interesujących momentach. Drugi rodzaj to pionowa animacja. Mikrokontroler również poprzez protokół NTP i bibliotekę time.h pobiera aktualną godzinę i datę. Za odbiór danych z pierwszego układu odpowiedzialny jest moduł radiowy którego obsługą tak jak w poprzednim module zajmuje się biblioteka RCswitch. Poniżej fragment programu który demonstruje w jaki sposób odbierane i dekodowane są dane: rc = mySwitch.getReceivedValue(); // czujnik temperatury powietrza BME280 if (abs(rc)>=50000&& abs(rc)<150000) { rc=(rc-100000)/100; if (rc > -50 and rc < 60) { temp1 = rc; Serial.print("Czujnik BME280 - temperatura: \t"); Serial.println(rc); matrix.drawPixel(55,0,1); matrix.write(); } } // czujnik wilgotności BME280 if (abs(rc)>=150000 && abs(rc)<250000) { rc=(rc-200000)/100; if (rc > 5 and rc <= 100) { hum = rc; Serial.print("Czujnik BME280 - wilgotnowsc: \t"); Serial.println(rc); matrix.drawPixel(55,1,1); matrix.write(); } } Dzięki zastosowaniu zewnętrznej anteny oraz odbiornika opartego na superheterodynie, zasięg w otwartym terenie to około 250 m. Po odebraniu danych z pierwszego układu poprzez moduł radiowy następuje przekazanie ich do serwera z systemem Domoticz. Domoticz to bardzo lekki system automatyki domowej, który pozwala monitorować i konfigurować różne urządzenia, przełączniki, czujniki takie jak temperatura, opady deszczu, wiatr, promieniowanie ultrafioletowe (UV), zużycie energii elektrycznej, zużycie gazu, zużycie wody i wiele więcej. Wykresy dostępne są również na stronie www http://meteo.palowice.net Poniżej film z działania odbiornika, smużenie animacji które występuje na filmiku ludzie oko nie rejestruje. Gdyby kogoś interesował kod to również zamieszczam: meteo.zip
  2. Dzień dobry, czy ktoś wie jak się nazywa koszyk na baterie z takim wyjściem jak na zdjęciu?
  3. Cześć, myślę nad projektem elektronicznej szachownicy, która będzie identyfikować jaka figura stoi na polu. Wiem, że jest już podobny temat na forum, jednak założeniem tamtego projektu było, aby elektroniczna szachownica nie różniła się niczym od tej tradycyjnej, żadne wiercenie czy coś nie wchodziło w grę. Mój projekt nie ma takiego ograniczenia i zastanawiam się czy następujące rozwiązanie ma jakiś sens: figury i pionki będą miały pod spodem diody o różnej barwie, a każde pole będzie posiadać czujnik koloru, który w ten sposób ma zidentyfikować naszą bierkę. Nie miałem co prawda do tej pory styczności z czujnikami koloru i nie wiem czy to w ten sposób zadziała, stąd moje pytanie do Was. Myślicie, że ma to rację bytu? Czy sugerujecie jakieś inne rozwiązanie?
  4. Cześć wszystkim, Ostatnio zainteresowałem się pewnym zjawiskiem fizycznym, polegającym na możliwości wykorzystania dźwięku do gaszenia ognia [link] [link]. Postanowiłem samemu zbudować podobne urządzenie, jednak podczas doboru elementów natrafiłem na pewne problemy, których niestety sam nie potrafię rozwiązać. 1. Schemat urządzenia 2. Zasada działania urządzenia Chciałbym, aby zaprojektowane urządzenie, za pomocą głośnika (generowanej fali akustycznej) było w stanie zgasić np. płomień zapalonej świeczki typu tealight [link] czy ogień z podpalonego denaturatu, wypełniającego pojemnik po wyżej wspomnianej świeczce. Z tego względu podstawą takiego urządzenia musi być odpowiedni głośnik. Uważam, że dobrym wyborem okaże się głośnik o impedancji 8 Ω, głośności 91 dB i mocy maksymalnej 200 W. Dzięki temu będę miał zapas na wykonywanie coraz to bardziej skomplikowanych eksperymentów, z możliwością podnoszenia poprzeczki. Owszem zapaloną świeczkę można po prostu zdmuchnąć ale trzeba od czegoś zacząć 😉 [link]. Również zdaję sobie sprawę, że do uzyskania takiego zjawiska potrzebuję odpowiedniej częstotliwości fali akustycznej oraz poziomu natężenia dźwięku. Precyzyjną częstotliwość fali akustycznej mogę wygenerować dzięki Arduino Uno oraz funkcji tone() [link], zaś kontrolę nad poziom natężenia dźwięku uzyskam dzięki wzmacniaczowi z wbudowanym potencjometrem [link]. Idąc dalej wzmacniacz potrzebuje zasilania od 6 V do 12 V. Większe napięcie przy stałej impedancji zapewnia większe natężenie. Większe natężenie to większa moc głośnika. Rozwiązaniem okaże się tutaj moduł z tranzystorem [link] pozwalający na włączanie urządzeń wymagających zasilania od 5 V do 15 V. Co więcej uchronię Arduino Uno przed natężeniem większym niż 20 mA. Wybrałem taki moduł z serii Grove, ponieważ posiadam nakładkę Grove Base Shield v2 [link] rozszerzającą możliwości pinów Arduino Uno oraz dysponuję wyświetlaczem LCD 2 x 16 [link] tej samej firmy, na którym wyświetlałbym daną częstotliwość fali akustycznej oraz poziom natężenia dźwięku. Co więcej planuję dokupić 2 przyciski, dzięki którym sterowałbym częstotliwością fali akustycznej generowanej przez Arduino (zmniejszenie częstotliwości / zwiększenie częstotliwości) [link]. Całość planuję zasilić akumulatorem 12 V ; 1,2 Ah, w połączeniu z przełącznikiem ON/OFF i stabilizatorem LM7805 [link] odpowiadającym za dostarczenie bezpiecznego napięcia 5 V do Arduino wraz z dwoma kondensatorami 1000 μF ; 25 V, których zadaniem jest eliminacja zakłóceń i zapewnienie prawidłowej pracy układu. Zasilanie do Arduino zapewnię poprzez wtyk DC [link]. 3. Problem do rozwiązania Mam nadzieję, że udało mi się zrozumiale wytłumaczyć planowany sposób działania urządzenia. Poniżej zapisałem pytania, na które niestety sam nie potrafię odpowiedzieć, a są według mnie kluczowe do poprawnego zadziałania prototypu: Czy mój tok rozumowania jest prawidłowy? Czy może coś mi umknęło? Czy przedstawiony schemat zakłada poprawne połączenia wejść / wyjść komponentów urządzenia? Czy zasilanie 12 V w połączeniu ze stabilizatorem okaże się wystarczające do uruchomienia głośnika, nie uszkadzając przy tym Arduino? Czy głośnik w połączeniu ze wzmacniaczem będzie generował dźwięk? Czy może czegoś brakuje? Z góry dziękuję za poświęcony czas i pomoc! 😊
  5. W jaki sposób efektywnie fotografować elektronikę t.j. części, płytki itp. komórką? Ja najlepsze rezultaty otrzymałem gdy robiłem zdjęcia w odległości ok. 20 cm od obiektu w trybie pro na balkonie. Nie wtedy efektu beczki fotografowanych obiektów. Mam również możliwość zapisu zdjęcia w formacie HEIF/HEIC zamiast JPG co daje lepszą jakość zdjęcia. Jak zrobić idealnie proste zdjęcie płytki PCB? Czy to jest możliwe bez użycia uchwytu/statywu?
  6. Domin28

    Wybór stacji Hot-Air

    Cześć mam pytanie mianowicie chce zakupić swój pierwszy hot-air, nigdy nie miałem do czynienia z lutowaniem SMD więc będę dopiero się uczył. Dlatego chciałem zapytać która z tych stacji waszym zdaniem będzie odpowiednia a jednocześnie nie będzie przerostem formy nad treścią. Stacja na gorące powietrze HOT-AIR Zaoxin 852. Stacja lutownicza Hot-Air TECHREBAL 858D. Stacja lutownicza Hot-Air z wbudowaną turbiną RF4 RF-H2 1000W.
  7. Jakie w dzisiejszych czasach możecie polecić papierowe książki do nauki elektroniki? Ja ze swojej strony mogę zareklamować takie pozycje: https://ebookpoint.pl/ksiazki/encyklopedia-elementow-elektronicznych-tom-1-rezystory-kondensatory-cewki-indukcyjne-przelaczni-charles-platt,enele1.htm https://ebookpoint.pl/ksiazki/encyklopedia-elementow-elektronicznych-tom-2-tyrystory-uklady-scalone-uklady-logiczne-wyswietla-charles-platt-with-fredrik-jansson,enele2.htm#format/d https://ebookpoint.pl/ksiazki/encyklopedia-elementow-elektronicznych-tom-3-czujniki-orientacji-ingerencji-i-wlasciwosci-otoczen-charles-platt-fredrik-jansson,enele3.htm Jak się okazuje nie wszystko można znaleźć w internecie. W/w pozwalają na znalezienie informacji o danym komponencie wraz z fotografiami, schematami i wykresami. Poniżej fragmenty książek: encyklopedia-elementow-elektronicznych-tom-1-rezystory-kondensatory-cewki-indukcyjne-przelaczni-charles-platt.pdf encyklopedia-elementow-elektronicznych-tom-2-tyrystory-uklady-scalone-uklady-logiczne-wyswietla-charles-platt-with-fredrik-jansson.pdf encyklopedia-elementow-elektronicznych-tom-3-czujniki-orientacji-ingerencji-i-wlasciwosci-otoczen-charles-platt-fredrik-jansson.pdf
  8. Witam, chciałem zrobić wzmacniacz do projektu, znalazłem TL494 na internecie i okazało się że jest to popularny układ do wzmacniaczy klasy D. Więc zrobiłem go raz na płytce uniwersalnej i nic, teraz zrobiłem to samo ( bez mosfetów ) na płytce prototypowej i znowu nic. Sytuacja wygląda w ten sposób, wpinam się sygnałem audio z telefonu/modułu bluetooth, podłączam zasilanie, cisza, puszczam jakiś test prawa lewa strona na telefonie i napięcie na wyjściach które powinny iść na mosfety się nie zmienia. Jeden mosfet jest otwarty drugi zamknięty i tak cały czas. Nie ma jakiejkolwiek reakcji na sygnał wejściowy. Czy ktoś z was może mi powiedzieć co robie źle?
  9. Chciałabym się dowiedzieć czemu jest to podłączone?
  10. Cześć! Jako początkujący elektronik nie zdawałem sobie początkowo zbytnio sprawy z szkodliwości wdychania dymu powstającego przy lutowaniu, dlatego przy pracy nie używałem dotychczas żadnego wentylatora, siłą rzeczy opary leciały wprost na mnie i po kilku godzinach w takich warunkach najczęściej wieczorem pojawiały się np. bóle głowy, kaszel, już nie myśląc o tym jakie skutki przyniosło by to przyszłości. Postanowiłem coś w tym kierunku w końcu zrobić i wzorując się na układzie AVT3215 chciałbym przedstawić bardzo prosty w założeniu jak i konstrukcji projekt odciągacza oparów, który można zbudować tanim kosztem: Sterowanie wentylatorem odbywa się poprzez regulowany stabilizator LM317, kręcąc potencjometrem zmieniamy napięcie dostarczane do wentylatora, możemy dzięki temu płynnie zmniejszyć lub zwiększyć jego obroty, chociaż szczerze powiedziawszy ta funkcja jest mała przydatna w moim odczuciu, ponieważ i tak zawsze lutuje przy największych obrotach. Całość jest zasilana z zewnętrznego zasilacza 12V 0,5A, który zapożyczyłem od lampki biurkowej. Dużym atutem tego układu jest to, że można go zbudować dosłownie z części znalezionych w szafie, osobiście musiałem dokupić gniazdo DC oraz stabilizator na co w sumie wydałem +/- 10 zł (gdzie kupiłem sobie od razu kilka sztuk na zapas) Wentylator nie jest przymocowany na stałe, dzięki temu można go złożyć i łatwiej przechować np. w szufladzie. Jako podstawkę wykorzystałem tą, która została mi z kursu arduino, akurat pasowały mi otwory, także uznałem, że dam jej 'drugie życie' 🙂 Lista potrzebnych komponentów: gniazdo DC płytka uniwersalna 2x diody LED 2x rezystory 1k 2x rezystory 330Ω 2x kondensatory elektrolityczne 220uF 1x kondensator elektrolityczny 47uF 2x kondensatory ceramiczne 100nF potencjometr 5K regulowany stabilizator LM317 złącze ARK wentylator na 12V Schemat ideowy: Działanie w praktyce:
  11. Instalacja antenowa u młodego i początkującego krótkofalowca. Budowana od zera . Jest to worklog co może potrwać kilka lat. [na dzień pisania postu [25,12,2021] trwa to małymi krokami 1.5 roku gdyż nie kupuje elementów na raz [uwaga w tekście będę przemycał terminologie slangu na początku tekstu z wyjaśnieniem a potem zastępczo ] [i uproszczenia w terminologii i zasad działania ale jestem otwarty na pytania np jakiego narzędzia np praskę lub typ złącza użyłem czy innego elementu montażowego np. wspornik kominowy ] Po zgromadzeniu elementów trochę trwa. Ich obrobienie i zamontowanie . Każdy krótkofalowiec w pewnym monecie chce zamontować w swoim domu . [w swoim QTH domowym] Jakieś anteny i tu jest to mocno uwarunkowane gzie się mieszka. jak ktoś mieszka w bloku to pół biedy Jak na ostatnim piętrze i ma dostęp do dachu. To spoko ale np. w środku 11 piętrowego budynku. To mu zostaje rozciągnięcie anteny z balkonu lub parapetu do latarni lub drzewa . Zawsze taka osoba ma jeden problem . Znaleźć gzie można uziemić anteny. (temat naszej konstrukcji ) Tu czasami przychodzą sztuczki z instalacją ogrzewania lub wodną. Ja całe szczęście mieszkam w domku wolno stojącym. Więc tu mogę sobie wbijać różnorakie żelastwo w ziemie . U siebie mam na razie 2 anteny i w postępie tego workloga będzie ich więcej . Na dachu mam tak zwane X-30N Na tak zwany VHF i UHF. Czyli na częstotliwości około 145MHz i 440 MHz (w uproszczeniu ). Gzie to odpowiada długości fali radiowej 2Mmetrów i 70 CentyMetrów . po której zamontowaniu wyszły problemy z niską jakością instalacji telewizji naziemnej która miała 20 lat i była robiona na kolanie która została wymieniona ciekawostka przewód ,,antenowy '' bardzoo niskiej jakości dodawany w zestawie z anteną drugą z anten jest tak zwane LW long wire jak sama nazwa mówi to kawał drutu na fale krótkie od 3,5MHz 80Metrów do około 50MHz czyli 6Metrów (nie mam zdjęcia trudno jest ją na nim zmieścić tak żeby była widoczna antena żeby dobrze działała potrzebuje tak zwane przewody przeciw wagi i uziemienie najpierw zostało wstępnie wbite uziemienie a potem dodany element kompozytowy co się nazywa studzienka inspekcyjną/ uziomowa uziemienie będzie miało dobite kilka elementów dla poprawy parametrów i będzie nie wystawało no nad studzienkę więc gdy anteny nie będzie będzie można ją zamknąć pokrywką i np skosić trawę to już mamy wstępny zarys prac na 2 systemach anten ale co jak nam tych anten przybędzie 2 musimy zadbać o np ochronę odgromową instalacji więc jak mamy dużo anten lub przewodów pod anteny to musimy je gdzieś umieścić w jednym miejscu i opisać tu taki przykład jest ta listwa aluminiowa co na razie mi do tego służy taki odpowiednik pacz panelu w serwerowni ale docelowo do radio szaku (czyli biurka / pokoju gzie się bawisz radiami ) będą przychodziły przewody tylko te najbardziej potrzebne lub ewentualnie będzie jakiś przełącznik automatyczny na zewnątrz budynku więc tu się pojawia skrzynka na to wszystko na pacz panel na jakąś elektronikę skrzynka jest (bo już ją mam ) metalowa i będzie miała zrobione własne uziemienie skrzynka jest z użytku wtórnego posiada da niechlujną konserwacje lakierniczą kilka dławnic które nam się przydadzą posiada też buzzer / syrenę 24V kilka diod 24 v może nam się przydadzą posiada też wiele zbędnych otworów po osprzęcie ale trochę starego osprzętu przed malowaniem trzeba z niej wymontować więc do dzieła pomalujmy ją w między czasie omówmy sobie kolejne elementy co się pojawią w skrzynce jest w nich w pewnym sensie ochronnik antenowy głównej mierze jest to samo co warystor tak samo jak ochronnik w instalacji domowej 230v ma zabezpieczyć przed wystąpieniem za dużego napięcia na instalacji antenowej w tym przypadku uderzenia pioruna i po przez zwarcie żyły ,,ciepłej '' w przewodzie koncentrycznym z ekranem a ekran podłączony jest w tym przypadku z naszym przypadku z naszym pacz panelem a on jak wiemy z ziemią w skrzynce posiada on on wymienne nazwijmy to bezpieczniki ciąg dalszy nastąpi do usłyszenia w między czasie trwa dalsze malowanie i gromadzenie elementów i przygotowywanie pewnej kombinacji opartej o raspberry pi z RTL-SDR
  12. Cześć wszystkim, Obecnie staram się skonstruować urządzenie dokonujące pomiarów stężenia tlenu (maksymalny zakres: 30%). Wybrałem odpowiednie komponenty, jednak nie jestem pewien czy całość zadziała. Potrzebuję rady osoby, która nieco bardziej zna się na Arduino, w porównaniu do mnie (początkującego) aby oceniła przygotowane przeze mnie bardzo uproszczone schematy 🙂 Zadaniem urządzenia, tak jak wspomniałem wcześniej, jest dokonywanie pomiarów stężenia tlenu. W momencie wykrycia stężenia większego niż 21,5% tlenu w atmosferze powinien uruchomić się buzzer: sygnał ostrzegawczy. Wyniki pomiarów mają wyświetlać się na ekranie LCD, zaś całość będzie zasilana baterią 9V. Dane pozyskam podłączając urządzenie do laptopa według 10 lekcji kursu Arduino, poziom I [Link], tak aby móc przedstawić uzyskane wyniki w postaci wykresów. Zależy mi na tym czy dane komponenty są odpowiednio podłączone. Dzięki temu będę mógł przejść do pisania kodu. Wykorzystane komponenty: - Arduino Uno R3 - Nakładka na Arduino: Base Shield v2 https://botland.com.pl/grove-nakladki-bazowe/4440-grove-base-shield-v2-nakladka-na-arduino-5904422368852.html - Czujnik tlenu https://botland.com.pl/grove-czujniki-gazow-i-pylow/17917--grove-czujnik-tlenu-mix8410-analogowy-.html - Buzzer https://botland.com.pl/grove-moduly-dzwiekowe/11298-grove-buzzer-modul-z-buzzerem-aktywnym-5903351246453.html - Wyświetlacz LCD https://botland.com.pl/grove-wyswietlacze/14736-grove-wyswietlacz-lcd-2x16-i2c-bialo-niebieski-z-podswietleniem-5904422322465.html Mam również pytanie co do wyboru zasilania. Czy zwykła bateria 9V wystarczy do pracy takiego urządzenia? W jaki sposób można to ewentualnie obliczyć? Z góry dziękuję za pomoc osobom chętnym 👍 Pozdrawiam, Wojciech (Wejmon) Ciecierski
  13. ciekawostka elektronika w służbie badania pogody witajcie chciałem bam pokazać jak wyglądają pomiary (w uproszczeniu ) temperatury i innych parametrów atmosfery codziennie w Polsce obecnie na dzień pisania postu codziennie 2 loty podstawowe 12:00utc i 24:00utc i koło 6-8:00 LT i koło 18:00 LT dodatkowe loty tak zwane burzowe przy jakiś np mocniejszych i gwałtowniejszych zjawiskach meto z 3 miejsc + wojsko + inne miejsca na świecie i Europie są poszczane balony stratosferyczne z tak zwaną sondą pomiarową zazwyczaj posiadające czujnik temperatury i wilgotności ale czasem np Niemcy mają dodatkowy moduł ciśnienia atmosferycznego a czasami są puszczane sondy nazwijmy to specjalne np z czujnikiem pomiaru ozonu lub z miejscowości Lindenberg w Niemczech jest wysyłana sonda nazwijmy to testowa (krowa) za którą jedzie zazwyczaj pracownik odpowiednika niemieckiego instytutu meteorologii tak zwana krowa to jest bliżej nie określona konstrukcja składająca się np z wielu sond lub czujników w fazie badań testowych balon zazwyczaj osiąga górną wartość wznoszenia wynoszącą 32km +- kilka set metrów po czym pęnka i spada w Polsce nie posiada spadochronu lecz czasem balon się tylko roszczeni i powoduje bycie spadochronem a np Niemcy wszystkie sondy zaopatrują w spadochron polska po skończonym radio sondażu traktuje traktuje sondę jako odpad i nie interesuje ich to co się z tym dzieje jest grupa osób co je zbiera np ja przykład ja wygląda sonda w tym przypadku VAISALA RS41-SG za jakiś czas może uzupełnię ten post o więcej typów sond np RS92 lub M20 które od nowego roku w Polsce zastąpią RS41 ewentualnie o wojskowe sondy (polskie) z serii pilosonde lub niemieckie z serii FDM ja z upolowaną sondą z wrocławskiego instytutu meteorologii 2 minuty po upadku
  14. Dzień dobry, dobry wieczór. Przerabiam kurs elektroniki poziom I w ramach przypomnienia sobie podstaw elektroniki. Zatrzymałem się na temacie związanym z tranzystorami bipolarnymi. Wymyśliłem sobie, że spróbuję zaprojektować układ podłączenia tranzystora do diody LED i obliczyć wszystko od zera. Wypiszę moje dane i co zamierzałem obliczyć. Uzas = 9V DC Icmax = 10 mA tutaj zakładałem, że nie chcę mocniej obciążać diody, dlatego "max" β = 200 odczytane bezpośrednio z noty katalogowej Rc = 1kΩ z obliczeniem tej rezystancji akurat nie miałem problemu Założyłem, że napięcie między bazą a kolektorem wyniesie około 0,7V. Teraz przechodzę do rzeczy. Wartość prądu Ib w kursie, w ćwiczeniu praktycznym wyniósł 0,86 mA. Zakładając, że β = 200 a prąd kolektora Ic = 6,64 to ze wzoru Ib = Ic/β wynika, że prąd bazy musi się równać 0,0332 mA. Ib = Ic/β = 6,64/200 = 0,0332 mA. I taki sam mam problem w moim układzie. Chcę aby Ic wyniosił 10 mA, więc: Ib = Ic/β = 10/200 = 0,05 mA Poszedłem z tym dalej i obliczyłem rezystancję rezystora Rb: Rb = (Uzas - Ube) / Ib = (9V - 0,7) / 0,05 mA = 184,44 kΩ Rezystancja ogromna ale spróbowałem podłączyć. Nie zadziałało. Co zrobiłem w moich obliczeniach źle? Co jest w nich nie tak? W załączniku załączam schemat i obliczenia. Po prawej moje a po lewej zgodnie z wynikami z kursu.
  15. Cześć wszystkim, potrzebuję zbudować audio switcha takiego jak na znalezionym schemacie lecz nie potrafię dobrać odpowiedni przełącznik obrotowy i w tej sprawie właśnie pisze do was tu na forum.
  16. Do naszego zespołu w firmie FlyArgo (Aleja Katowicka 11, 05-830 Wolica) poszukujemy Mechatronika. Poniżej przedstawiamy najważniejsze informacje dotyczące oferty. Obowiązki: Projektowanie systemów elektronicznych, w tym: Projektowanie systemów elektronicznych (połączenia między płytkami PCB, dobór komponentów, tworzenie interfejsów) Tworzenie i modyfikację schematów PCB Analiza systemów elektronicznych - zapewnienie stabilnej pracy układów Zarządzenie produkcją PCB Tworzenie oraz nadzorowanie dokumentacji produktów Nadzór nad walidacją produktów i podzespołów elektronicznych Aktywny wkład w proces rozwoju urządzeń Profil Kandydata: Biegła znajomość podstaw elektroniki cyfrowej i analogowej Znajomość C/C++ Znajomość komponentów elektronicznych, układów elektronicznych analogowych/cyfrowych, aplikacji na mikrokontrolerach Znajomość narzędzia edycji schematów, projektowanie PCB w EAGLE Podstawowa wiedza w zakresie procesu produkcyjnego urządzeń elektronicznych Doświadczenie w obsłudze sprzętu laboratoryjnego Umiejętność lutowania TH/SMD Umiejętność budowy i montażu prototypów, uruchamiania, badania, usuwania błędów i testów walidacyjnych Umiejętność czytania dokumentacji technicznej układów elektronicznych Doświadczenie w zakresie testów elektroniki (kompatybilności elektromagnetycznej, testy elektryczne, testy klimatyczne) Komunikatywność, samodzielność, bardzo dobra organizacja pracy, terminowość Znajomość interfejsów szeregowych: SPI, I2C, UART, Doświadczenie w pracy z układami ARM Komunikatywna znajomość języka angielskiego Mile widziane: Doświadczenie w pracy z układami STM32 (CubeMX, HAL, FreeRTOS) Znajomość interfejsów szeregowych: USB, CAN Doświadczenie w pracy z silnikami BLDC, enkoderami, IMU, kamerami (MIPI - CSI, USB, Ethernet), układami FPGA Embedded Linux Dobra znajomość C/C++ Znajomość systemów kontroli wersji (GIT) Doświadczenie w druku 3D i projektowaniu częśći (CAD) Doświadczenie z modelami RC i dronami Oferujemy: Pracę z najnowszymi technologiami w obszarze elektroniki oraz oprogramowania Wsparcie rozwoju pracownika Przyjazną atmosferę sprzyjającą pracy twórczej Pracę przy autorskich produktach Code review, regularny feedback Niekorporacyjną atmosferę, work-life balance Tworzenie sprzętu dla klientów z całego świata Ekscytujące wyzwania! Rabbit Hole: 01001110 01100001 00100000 01110010 01101111 01111010 01101101 01101111 01110111 01101001 01100101 00100000 01111010 01100001 01110000 01111001 01110100 01100001 01101010 00100000 01101111 00100000 01110000 01101111 01110000 01100011 01101111 01110010 01101110 00100000 01011000 01000100 Zachęcamy do przesyłania zgłoszeń oraz zadawania ewentualnych pytań na adres mailowy k.domagalska@vertigo.global 🙂
  17. Głównym założeniem tego projektu było stworzenie urządzenia wyświetlającego liczbę klatek na sekundę w grach komputerowych, jak i również innych informacji o obciążeniu komputera. Zdaje sobie sprawę, że projekty podobnego to tego pojawiały się już nie raz w sieci pod różnymi postaciami. W tym projekcie skupiłem się jednak na tym, aby całość zmieściła w małej kompaktowej obudowie, którą można w elegancki sposób zamontować pod monitorem. Możliwość wyświetlania FPS również jest tutaj czynnikiem wyróżniającą ten projekt na tle innych. Jest tak głównie dlatego że o ile informacje o wykorzystywanej ilości pamięci RAM, czy też obciążeniu procesora można dosyć łatwo pozyskać za pomocą różnych bibliotek w programie po stronie komputera, tak z klatkami na sekundę jest trochę trudniej. Użyte komponenty Sama budowa tego monitorka jest naprawdę prosta. Zostały w nim użyte właściwie tylko 3 komponenty: Arduino nano wyświetlacz OLED 128x32 przycisk dotykowy Pierwotnie zakładałem również użycie diody LED do sygnalizacji pewnych błędów, czy też wciśnięcia przycisku dotykowego. Uznałem jednak, że w tym przypadku nie miało by to większego sensu zważając na potrzebę minimalizacji. Można byłoby się zastanowić czemu wybór padł na arduino nano, a nie np. arduino pro micro. Arduino pro micro jest mniejsze, prawda? Zgadza się, dlatego też użyłem tego mikrokontrolera w pierwszej wersji tego wyświetlacza, który skończył dość marnie. Było tak dlatego, że przez przypadek chcąc poprawić przewód HDMI za monitorem, szarpnąłem niechcący za przewód idący do arduino. No i stało się, wyrwałem wtyk micro USB z płytki. Chcąc uniknąć ponownie takiej wpadki w następnej wersji użyłem mikrokontrolera, który kosztem ciut większej wielkości jest tańszy oraz posiada lepiej zamontowany na płytce wtyk USB mini. Jeśli chodzi o wyświetlacz to sprawa była prosta. Taki OLED 128x32 nie tylko rozmiarami idealnie pasuje do całego projektu, ale też po prostu prezentuje się ładnie i daje dużo możliwości. No i na koniec czujnik dotykowy. Dostępny w wielu rozmiarach, tani oraz przede wszystkim nie wymagający praktycznej żadnej siły do jego aktywacji. Ukryty w prawym boku obudowy dodaje estetyczności, nie zmniejszając przy tym komfortu użytkowania. Obudowa Obudowa została w całości wydrukowana na drukarce 3D. Sam model do druku zaprojektowałem w programie Fusion 360. Tak jak już pisałem, zależało mi na niewielkich rozmiarach. Dlatego cały model przeszedł przez wiele iteracji, a w każdej z nich starałem się zminimalizować jego wielkość. Zadbałem tutaj również o to, aby każdy z elementów w środku miał dopasowane pod siebie miejsce celem łatwego montażu. Po historii z wyrwaniem wejścia na płytce, finalnie dodałem jeszcze mały uchwyt na przewód mający minimalizować ryzyko ponownego uszkodzenia portu USB. Software Oprogramowanie po stronie komputera to prosty skrypt napisany w pythonie. Poza łączeniem się z arduino i przesyłaniem mu danych, musi te dane jeszcze skądś brać. I tutaj pojawił się mały problem, jeśli chodzi o pobranie ilości klatek w aktualnie włączonej grze. Nie da się od tak wyliczyć takiej wartości w programie, nie ma też na to gotowej funkcji. Z pomocą przyszedł popularny program o nazwie Msi AfterBurner. Nie wchodząc w szczegóły, program ten pozwala na monitorowanie zasobów komputera ( RAM, CPU, GPU itp.), jak i również uzyskanie potrzebnych nam FPS w aktualnie włączonej grze/programie. Teraz już tylko wystarczyło użyć wbudowanej w program funkcji do logowania tych danych do pliku, oraz odczytać je w pythonie i przesłać do arduino. Czy taki sposób jest wydajny? Cały proces wykorzystania pliku jako bufora do danych nie powinien w znaczący sposób obciążyć komputera, jednak lepszą opcją byłoby wykorzystywanie współdzielenia pamięci między dwoma programami. Aby to jednak osiągnąć potrzebna jest trochę większa wiedza z programowania w C++/C#, której niestety jeszcze nie posiadam. W przypadku arduino program po za odczytaniem danych oraz ich wyświetleniem, obsługuje również dotykowy przycisk. Pojedyncze dotknięcie przycisku zmienia wyświetlaną zawartość na 1 z 6 ekranów, zaś przytrzymanie przycisku powoduje zmianę ekranu co jedną sekundę. Dostępnymi ekranami są: klatki na sekundę, użycie CPU i GPU, temperatura CPU i GPU, użycie pamięci RAM i VRAM, prędkość wentylatora oraz ekran główny powodujący wygaszenie ekranu po paru sekundach. Dalsze plany W przyszłości planuje jeszcze większą minimalizacje wielkości obudowy, bo jest na tym polu jeszcze dużo do zrobienia. Mam zamiar również poduczyć się C++, aby móc wykorzystać współdzieloną pamięć między programami, rezygnując z odczytywać danych z pliku.
  18. Na łamach Forbot-a temat był już wcześniej poruszany i tak naprawdę cały artykuł powstał ze względu na duże niezrozumienie tematu oraz reakcje osób na forum. Celowo odnoszę się bezpośrednio do artykułu Sandry, ponieważ część z informacji warto przeczytać, a nie chcę powtarzać tego samego, dlatego przed przeczytaniem dalszej części polecam lekturę. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » Niestety autorka dopuściła się moim zdaniem błędu interpretacyjnego samych przepisów, jak i niezrozumieniu samej konstrukcji urządzeń DIY wykonywanych przez amatorów. Prowadzi to do błędnych wniosków, które miałem okazję czytać na forum pod tym wpisem. Niestety w tej części nie będzie już tak łatwo, każde z pytań ma kilka zmiennych na które nie da się odpowiedzieć wprost tak lub nie. Pytanie: Czy muszę umieszczać znak CE i robić certyfikaty jeśli chce sprzedać mój projekt DIY? Aby odpowiedzieć na to pytanie odpowiadają nam konkretnie cztery z kilkudziesięciu dyrektyw tzw. nowego podejścia (wcześniej było tzw. stare podejście i było trochę bardziej upierdliwe dla producentów): 2011/65/UE DYREKTYWA ROHS II I 2015/863 DYREKTYWA ROHS III (pomijam z opisu, ponieważ przyjmujemy założenie, że korzystamy z gotowych podzespołów) 2014/53/UE DYREKTYWA RADIOWA / DYREKTYWA RED 2014/35/UE DYREKTYWA NISKONAPIĘCIOWA LVD i teoretycznie 2014/30/UE DYREKTYWA KOMPATYBILNOŚCI ELEKTROMAGNETYCZNEJ EMC Definicje W związku z tym musimy odnieść się do rozporządzenia wprowadzającego obowiązek stosowania znaku CE na produktach określonych w dyrektywach tzw. nowego podejścia (Rozporządzenie Parlamenty Europejskiego i Rady (WE) NR 765/2008) Jako hobbystę amatora, który wymyśla sobie produkt, najczęściej z półproduktów, np. wspomniany przez autorkę poprzedniego artykułu budzik, interesują nas definicje: - udostępnienie produktu na rynku - producent Tutaj mamy tak naprawdę pierwszy zgrzyt interpretacyjny w poprzednim artykule. Z niewiadomych mi przyczyn definicja udostępniana produktu na rynku, określona przez ustawodawcę źródło: art. 2 pkt 1 Rozporządzenia Parlamentu Europejskiego i rady (WE) NR 765/2008 z dnia 9 lipca 2008 r. ustanawiające wymagania w zakresie akredytacji i nadzoru rynku odnoszące się do warunków wprowadzania produktów do obrotu i uchylające rozporządzenie (EWG) nr 339/93 Została odczytana jako alternatywa, czyli kiedy chociaż jeden z danych elementów ma miejsce. Jest to całkowicie błędne rozumowanie. Niestety jedną z opisywanych wcześniej wykładni jest wykładnia logiczna i nie została tutaj zastosowana. W naszym przykładzie nie bierzemy pod uwagę „działalności handlowej” tylko hobbystyczną. W związku z tym nie udostępniasz swojego projektu na rynku, ponieważ nie jesteś podmiotem profesjonalnym. Koledze możesz oddać wszystko (nawet dziewczynę/chłopaka) i „zła unia” nie ma nic do tego, oczywiście jeśli robisz to poza działalnością handlową. Aby rozróżnić czy jesteśmy hobbystą-amatorem, czy też jest to działalność handlowa, musimy wziąć pod uwagę cel w jakim dany przedmiot powstaje. Jeśli wykonujesz go dla siebie, ale później chcesz go odsprzedać, nie podchodzi to pod działalność handlową. Jeśli natomiast produkujesz dany przedmiot tylko w celu jego sprzedaży, jest to jak najbardziej przesłanka do zastosowania dyrektywy, niezależnie czy prowadzimy działalność gospodarczą czy nie. Podstawa prawna: 1. art. 3 ustawy prawo przedsiębiorców z dnia 6 marca 2018 r. (Dz.U. 2018 poz. 646) 2. art. 5a pkt 6 ustawy o podatku dochodowym od osób fizycznych z dnia 26 lipca 1991 r. (Dz.U. 1991 nr 80 poz. 350) 3. art. 3 pkt 9 ustawy ordynacja podatkowa z dnia 29 sierpnia 1997 r. (Dz.U. 1997 nr 137 poz. 926) 4. art. 43[1] Ustawy kodeks cywilny z dnia z dnia 23 kwietnia 1964 r (Dz.U. 1964 nr 16 poz. 93) No dobra ale co jeśli jednak chciałbym na tym zarabiać? Tutaj sprawa się komplikuje, ponieważ ma to się zupełnie odwrotnie do opisywanej wcześniej ustawy o prawach konsumenta (link do poprzedniej części). Mamy dwie istotne sprawy, pierwsza to czy prowadzimy działalność czy tez wykonujemy to jako zleceniobiorca. Dlaczego jest to istotne? Ponieważ zgodnie z definicją dyrektywy: źródło: art. 2 pkt 3 Rozporządzenia Parlamentu Europejskiego i rady (WE) NR 765/2008 z dnia 9 lipca 2008 r. ustanawiające wymagania w zakresie akredytacji i nadzoru rynku odnoszące się do warunków wprowadzania produktów do obrotu i uchylające rozporządzenie (EWG) nr 339/93 W skrócie – podpisując odpowiednio zredagowaną umowę o dzieło stajemy się jedynie wytwórcą danego produktu i to na zleceniodawcy spoczywa obowiązek przestrzegania przepisów związanych z dyrektywami CE. Fajne, nie? No tak, tylko trochę nieuczciwe 😉 Prawdopodobnie nie do wybronienia też w sądzie ze względu na czynność pozorną w celu ominięcia przepisów (art. 83 KC). Dlatego nie wchodźmy w szarą strefę i przyjmijmy, że chcemy jednak sprzedawać nasz produkt jako producent i pod naszą nazwą. Bez znaczenia jaką formę działalności przyjmiemy – zarabiamy na tym, więc jesteśmy producentem. Podstawa prawna: art. 83 Kodeksu Cywilnego Ok ale właściwie to ja przecież niczego nie robię sam, kupuję podzespoły i składam je tylko do kupy. One wszystkie mają znaczek CE, więc czemu się czepiać wyrobu końcowego. Niestety po złożeniu go w całość, wytwórca ponosi odpowiedzialność za całość układu (powrót do podstaw z poprzedniego artykułu – prawo autorskie). Wracamy wiec do dyrektyw określających do jakich produktów musi być zastosowany znak CE. 2014/53/UE DYREKTYWA RADIOWA / DYREKTYWA RED Jeśli twoje urządzenie posiada Bluetooth, Wifi 2,4G, nRF, czy też inny podobny protokół łączności radiowej, niestety twoje urządzenie powinno posiadać znak CE. Autorka poprzedniego artykułu błędnie zdefiniowała amatorską służbę radiolokacyjną, co niewiele ma wspólnego z wymienionymi protokołami, tym bardziej, że w ogóle nie dotyczy kwestii gdy chcemy na tym zarabiać. Martwić się? Pójdę do więzienia? Nie. Wytłumaczę to na końcu. 2014/35/UE DYREKTYWA NISKONAPIĘCIOWA LVD Dotyczy urządzeń pracujących w zakresie napięcia 50-1000V AC/DC i 74-1500V DC. Praktycznie do większości z urządzeń opartych na Raspberry Pi, Arduino, ESP, Pi Pico, Spresense itd., ta dyrektywa nie ma zastosowania. Wystarczy tylko aby zasilacz był oddzielnym peryferyjnym podzespołem, wtedy zamiast jego producentem stajemy dystrybutorem, czyli po prostu przerzucamy pełną odpowiedzialność ze znakiem CE na producenta który go wytworzył (czy też jego importera). W związku z tym dla własnego bezpieczeństwa lepiej kupować go od polskiego kontrahenta. Czyli w tym przypadku znak CE nie jest potrzebny. Podstawa prawna: art.1 dyrektywy 2014/35/UE 2014/30/UE DYREKTYWA KOMPATYBILNOŚCI ELEKTROMAGNETYCZNEJ EMC Jest to moim zdaniem najmniej prawdopodobny powód dla jakiego mielibyśmy przeprowadzać badania pod kątem zgodności produktu, ponieważ w przypadku większości zastosowań i niskich napięć, nie mamy możliwości powodować zaburzeń elektromagnetycznych (jedynie mogą być podatne na inne zakłócenia) Podstawa prawna: art 2 ust 2 lit d) dyrektywy 2014/30/UE Idąc za definicją zespołu podzespołów czyli aparatury: źródło: art 3 ust. 1 pkt 2 dyrektywy 2014/30/UE Przyjmujemy, że nasz budzik zasilany napięciem 3,3V nie będzie samoistnie włączać nam telewizora i powodować ciąży u sąsiadki. Po prostu z założenia jest to głupie. Oczywiście jeśli naszym projektem jest elektromagnes, warto jednak przeprowadzić by te cholerne badania 😉 Reasumując, znak CE na wyrobach hobbystycznych DIY typu budzik musimy zastosować jedynie w przypadku gdy podłączamy je bezpośrednio do gniazdka 230V (nie przez zasilacz innego producenta) i gdy mamy w nim zastosowany system łączności radiowej (czyli prawie każdy). Oczywiście tylko i wyłącznie jeśli robimy to w celach handlowych, a nie dajemy chłopakowi/dziewczynie prezent z okazji zadawania się z nami i naszymi gazami lutowniczymi. Pytanie: Czyli muszę odezwać się do firmy zajmującej się certyfikacją CE, żeby przebadała mój projekt i wystawiła certyfikat? Nie, zupełnie nic z tych rzeczy. „Zła unia” nie zmusza małych wytwórców do przeprowadzania badań za grube tysiące, tylko po to żeby sprzedali dziesięć budzików po 200 zł. Ogólnie nie istnieje coś takiego jak certyfikat CE. Przepisy definiują jedynie jednostki notyfikacyjne dla grup produktów, które muszą posiadać szczegółowe badania dla swoich produktów. Każdy z producentów ma w większości przypadków przeprowadzić badania we własnym zakresie i wystawić deklarację zgodności WE. Jest to dokument, który jako producent wystawiasz wg wzoru dostępnego na stronach Parlamentu UE i wkładasz sobie do szuflady, nic więcej z tym nie musisz robić. W przypadku gdyby pojawiła się kontrola, masz obowiązek go przedstawić. Dodatkowo na produkcie powinien pojawić się znaczek CE lub jeśli nie uda się go zamieścić na produkcie ma być dostępny na oddzielnym dokumencie dołączonym do produktu. Myślę, że w przypadku korzystania z gotowych podzespołów dostarczanych przez innych producentów, typu płytki rozwojowe, spokojnie możemy bazować na ich badaniach dotyczących protokołów radiowych działających zgodnie z normami. Również warto w tym przypadku korzystać z polskich podmiotów. Pozostaje jedynie kwestia odpowiedzialności prawnej jaka grozi w przypadku sprzedaży wadliwego produktu. Zapraszam do ostatniej części artykułu.
  19. Na wstępie chciałbym zaznaczyć, że jest to artykuł napisany pod kątem wyłącznie hobbystów, pasjonatów i osób, tak jak ja, uczących się elektroniki i programowania. Ponieważ niektóre zagadnienia są dużo bardziej skomplikowane, nie mogą być przenoszone 1:1 dla producentów seryjnych podzespołów czy też działalności stricte zawodowej. Natomiast postaram się w tej serii artykułów opisać podstawowe problemy prawne na jakie może natrafić każda osoba chcąca sprzedać wykonane projekty. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » Spis treści: 1. Podstawy – Czy mogę sprzedawać projekty DIY? 2. Znak CE – co to jest i co się z tym wiąże 3. Odpowiedzialność twórcy 1. Podstawy Często spotykam się z nierozumieniem rozmówców dotyczącym pojęcia prawodawstwa i całego systemu prawnego. W świecie prawniczym istnieje metoda rozumienia tekstów ustaw, dyrektyw, rozporządzeń itd., zwana wykładnią. Jest to zestaw zasad pomagający rozumieć tekst w sposób w jaki autor (ustawodawca) chciał aby to było zrozumiane. Działa to trochę na zasadzie tekstu źródłowego i bibliotek: teoretycznie bez nich program mógłby działać, ale za bardzo nie wykonuje tego co miał robić. Dlatego nie wystarczy przeczytać jeden akt prawny, a trzeba spojrzeć na sprawę szerzej i korzystać z definicji legalnych ustanowionych przez autora. Czyli po ludzku musimy przeczytać więcej dokumentów napisanych trudnym językiem oraz mając na uwadze podstawy prawodawstwa. Głównym aktem normatywnym (ustawą), na którym opieramy większość relacji międzyludzkich, jest kodeks cywilny. Reguluje on praktycznie wszystko od zasad sprzedaży, poprzez sprawy spadkowe, aż do szkód wyrządzonych przez zwierzęta wchodzące w miedzę. Dlatego też do niego zawsze będziemy się odnosić w przypadku różnego rodzaju umów sprzedaży, gwarancji, rękojmi oraz odpowiedzialności twórcy. Natomiast należy pamiętać, że są to tylko ogólniki i większość z tych przepisów regulowana jest szczegółowo przez inne ustawy jak np. Ustawa o prawach konsumenta, Ustawa o prawie autorskim i prawach pokrewnych. Przy niektórych specjalistycznych zagadnieniach mogłyby jeszcze być istotne rozporządzenia ale tak jak wspomniałem na wstępie, bierzemy pod uwagę sytuację tylko wariant hobbysty, amatora, konstruującego „migającą diodę”. Nie bez przyczyny wspomniałem o tych dwóch dodatkowych ustawach, ponieważ są one dosyć istotne w przypadku chęci sprzedaży naszych projektów. Jeśli zdecydujemy się na sprzedaż online, jesteśmy zobligowani do przestrzegania przepisów Ustawy o prawach konsumenta, brać pod uwagę możliwość zwrotu towaru bez podania przyczyny, możliwość reklamacji i pełną odpowiedzialność za sprzedawany produkt. Ale czy zawsze? Odpowiedź brzmi: NIE Po pierwsze – jeśli jesteśmy hobbystą, nie posiadającym własnej działalności gospodarczej, nie podlegamy pod tę ustawę. Po prostu jesteśmy zwykłym chałturnikiem, który w świetle prawa nie jest podmiotem profesjonalnym – coś jak grajek na weselach, robi to tylko okazjonalnie. Teoretycznie jeśli przedmiot powstaje tylko po, żeby go sprzedać, powinniśmy jednak zarejestrować naszą działalność, gdyż jest to delikt podatkowy. Jednakże w przypadku gdy tworzymy sobie jakiś projekt dla zabawy i później po prostu chcemy go sprzedać, nie ma tutaj przeciwskazań, a powyższa ustawa nie ma zastosowania. Dlatego też sprzedając go na portalu aukcyjnym, kupujący nie ma prawa zwrotu bez podania przyczyny. Podstawa prawna: art. 27 w zw. z art. 1 pkt. 1 ustawy o prawach konsumenta z dnia 30 maja 2014 r. (Dz. U. 2014 poz. 827) Dodatkowo istnieje wyłączenie w powyższej ustawie dotyczącej sprzedaży na odległość produktów wytworzonych na zlecenie kupującego, personalizowanych itp. W takim przypadku również następuje wyłączenie z prawa do zwrotu towaru, nawet jeśli jesteście przedsiębiorcą. Piszę to nie przez przypadek, gdyż przy małej modyfikacji kodu, jesteście w stanie pozbyć się sporego problemu związanego ze zwrotami, szczególnie jeśli sprawa dotyczy projektów DIY. Podstawa prawna: art. 38 pkt. 3 ustawy o prawach konsumenta z dnia 30 maja 2014 r. (Dz. U. 2014 poz. 827) Drugą ustawą o której wspomniałem jest Ustawa o prawie autorskim i prawach pokrewnych. Bardzo często w różnych dyskusjach na forach internetowych pomijany jest fakt, że w świetle prawa zarówno kod źródłowy programu jak, projekt układu elektronicznego czy też sama płytka z zainstalowanymi konkretnymi podzespołami elektronicznymi, jest chroniona prawem autorskim. Oczywiście w przypadku udostępnianego oprogramowania istnieją licencje na zasadzie których autor je udostępnia, jednakże większość z nich jest tylko do użytku osobistego bez możliwości zarabiania na ich odsprzedaży. Czyli nie każdy projekt DIY możemy sprzedawać masowo ale jeśli wykonaliśmy go dla siebie, zawsze możemy go odsprzedać komuś innemu (natomiast pozwać mogą nas i tak). Podstawa prawna: art. 1 ust. 2 pkt. 1 w zw. z art. 1 ust. 1 ustawy o prawie autorskim i prawach pokrewnych z dnia 4 lutego 1994 r. (Dz. U. 1994 Nr 24 poz. 83) Pytanie: Czy w związku mogę sprzedać swój projekt DIY? Odpowiedź brzmi: TAK Co więcej, kodeks cywilny umożliwia przetwarzanie rzeczy zakupionych/znalezionych, daje dodatkowe prawa kiedy podnosi się jej wartość. Z punktu widzenia polskich przepisów nie jest zabroniona sprzedaż materiałów elektronicznych, składanych z innych podzespołów, które dodatkowo wyposażone są w autorskie oprogramowanie. Oczywiście nie mogą być to produkty niebezpieczne, czy też specjalistyczne, które obowiązują oddzielne przepisy – jak np. sprzęt medyczny czy zapalniki do materiałów wybuchowych lub broń. Mógłbym zakończyć w tym miejscu, niestety pozostaje nam jeszcze kwestia sprawy związanej ze znakiem CE, który jest wymagany na produktach wprowadzonych do obrotu na ternie Unii Europejskiej. O tym w kolejnej części.
  20. Opisałem już ogólne ramy prawne w jakich poruszamy się przy określaniu możliwości sprzedaży produktów oraz wymogi jakie mają spełniać. Przejdźmy teraz do najmniej przyjemnej części zagadnienia, czyli ryzyka związanego z tego typu działalnością. Ten artykuł bierze udział w naszym konkursie! 🔥 Na zwycięzców czekają karty podarunkowe Allegro, m.in.: 2000 zł, 1000 zł i 500 zł. Potrafisz napisać podobny poradnik? Opublikuj go na forum i zgłoś się do konkursu! Czekamy na ciekawe teksty związane z elektroniką i programowaniem. Sprawdź szczegóły » W tej części odejdę trochę o mojego założenia z początku czyli: jesteśmy hobbystami, robiącymi projekty typu „migająca dioda”. Ponieważ de facto tutaj nie mamy żadnego ryzyka związanego z odsprzedażą gotowego projektu, zrobionego pod nas, na zasadzie „jest już mi niepotrzebny może inny pasjonat się tym zajmie”. Jeśli ktoś to kupuje wie dobrze, że konstrukcja prawdopodobnie przestanie działać po kilku minutach, jak to zwykle mają w zwyczaju 😉 Weźmy pod uwagę sytuację gdy jesteśmy cały czas na tym samym etapie rozwoju biznesu (czyli nie istnieje) ale chcielibyśmy sprzedawać nasze projekty ludziom, którzy z techniką mają do czynienia gdy używają smartphona. Z założenia taka osoba może uważać, że kupuje produkt pełnowartościowy, który ma działać zgodnie z tym co było napisane na pudełku/aukcji i raczej nie chce sprawdzać wszystkich kabelków czy dobrze stykają przez 2h. Pierwsze co nasuwa mi się przez myśl jest w tym przypadku możliwość zwrotu towaru zgodnie z Ustawą o prawach konsumenta. Drugie to niezgodność towaru z umową. Warto w tym przypadku dobrze opisać swój produkt, ponieważ jeśli pojawią się nieścisłości w opisie, konsument ma zawsze prawo do zwrotu towaru, w tym zwrotu kosztów przesyłki. Nie obowiązuje tutaj opisywany przeze mnie wyjątek do ustawy. Trzecie to wadliwość samego produktu. Oprócz gwarancji, której warunki możecie określić w karcie gwarancyjnej produktu, obowiązuje coś takiego jak rękojmia. Tak jak w przypadku gwarancji można wykluczyć dużo usterek jako z winy użytkownika, tak w przypadku rękojmi konsument w ciągu pierwszego roku od zakupu ma prawo zwrócić towar jako niesprawny na zasadach rękojmi. To wy jako twórca musicie udowodnić w ciągu 14 dni od daty zgłoszenia, że towar jest uszkodzony z winy posiadacza. W przypadku opóźnienia w odpowiedzi reklamacja jest uznana z mocy prawa. Dodatkowo konsument ma jeszcze 1 rok (łącznie 2 lata) na zgłoszenie usterki ale w tym przypadku sam musi udowodnić, że była to wada fabryczna. Czwarta to możliwość spowodowania szkód z tytułu wadliwego działania produktu Jako twórca (i wytwórca właściwie) ponosicie wszelką odpowiedzialność prawną z tytułu szkód spowodowanych przez produkt w przypadku jego prawidłowego użytkowania. Czyli jeśli produkt się zapali i spowoduje pożar, możecie być pociągnięci do odpowiedzialności, nawet karnej. Jeśli w jakiś sposób zakłóci pracę innego urządzenia, np. rozrusznika serca, tak samo. Jeśli z powodu jego nieprawidłowego działania żona odkryje, że ktoś ma romans i się z nim rozwiedzie, też, tyle że to akurat odpowiedniość cywilna, a tutaj możemy pozwać kogo chcemy, za co chcemy 😉 Dlatego bardzo polecam wszystkim stosowania zasilaczy zewnętrznych jeśli potrzebujemy niskiego zasilania w naszych projektach. Bardzo ułatwia to zdjęcie z siebie odpowiedzialności w przypadku przepięć, pożarów z nimi związanych itp. Po prostu lepiej nie bawić się w wysokie napięcia, gdy się jest amatorem. Piąta to możliwość problemów związanych z oznakowaniem CE Najczęściej pojawiająca się w przypadku problemów z czwartej możliwości. Ogólnie najmniej prawdopodobny scenariusz. Chyba, że robimy zabawki dla dzieci, wtedy możemy spodziewać się kontroli. Podsumowanie Mam nadzieję, że udało mi się nakreślić ogólne ramy prawne dotyczące sprzedaży produktów DIY, podstawowych pojęć i ryzyka związanego z takim sposobem zarabiania. Bardzo proszę nie traktujcie tego tekstu jako wykładni, ponieważ opierałem się w nim na pewnych założeniach, które mogą całkowicie nie odnosić się do waszej sytuacji. Celowo upraszczałem zagadnienia, aby były jak najprostsze w zrozumieniu, jak to przy upraszczaniu, pomijałem również niektóre aspekty przepisów. Prawo jest dosyć skomplikowane, dlatego każdy prawnik uwielbia powiedzenie „co do zasady”.
  21. Niskobudżetowy zegar Nixie Każdy elektronik chyba kiedyś widział urządzenie oparte o lampy Nixie. Z racji ich uroku, niepowtarzalnego wyglądu i chęci zrobienia czegoś "wow", i ja taki zbudowałem. Działanie lamp Nixie: Dla tych, którzy nie wiedzą co lampy Nixie, już służę pomocą: lampy Nixie zostały wynalezione w latach 60. ubiegłego wieku. Pierwsza firma która je produkowała tak je nazwała i się ta nazwa przyjęła. Były też to pierwsze wyświetlacze cyfrowe. Ich działanie polega na jonizowaniu się gazu (neonu z domieszkami) wokół katody z przyłożonym napięciem ok. 180V. Zjonizowany gaz powoduje świecenie się, i układa się wokół katody (w tym przypadku cyfry). Na żywo wygląda to bezcennie, lecz należy pamiętać że to wysokie napięcie. Budowa: Ale może najpierw coś o mnie: nazywam się Leon, mam 14 lat, chodzę do 8 klasy podstawówki i interesuję się elektroniką, informatyką, itp. Mam też drukarkę 3D - nie wykorzystałem jej w konstrukcji z racji jej awarii (czekam jeszcze na nowego rampsa 😉 ). Przechodząc już do zegara: z racji mojego stosunkowo młodego wieku, nie mam zbyt dużo pieniędzy na projekty więc chciałem na całość przeznaczyć ok. 100 zł zebranych od dziadków. Dlatego miało wyjść tanio i dobrze. Założenia z góry były jasne: multiplexowanie 1 sterownikiem, użycie 4 lamp, oraz materiałów z odzysku. Zacząłem od zrobienia przetwornicy step-up na 200V prądu stałego. Skorzystałem z tego schematu, który się sprawdził dość dobrze. Potem przyszedł mi sterownik 74141, oraz neonówka - mogłem już sprawdzić czy wszystko działa, i działało za pierwszym razem (możecie zacząć budować bunkier na apokalipsę). Następnie przeszedłem do zrobienia płytki głównej - goła atmega 328 z kwarcem 16mhz, ze sterownikiem na jednej płytce. Od razu zamontowałem moduł czasu RTC DS1302 (najtańszy) który lekko zmodyfikowałem - piny dałem z drugiej strony, a na górze zamontowałem koszyczek na dużą baterię od biosa. Do tego doszedł stabilizator 7805 i sterownik katod lamp. Całość wyszła całkiem schludnie - jestem z tego zadowolony. Na końcu doszły mi tranzystory do sterowania anodami lamp. Zastosowałem tu klucz z NPN MPSA42 oraz PNP MPSA92. I tutaj, podczas testów zrobiłem błąd - z racji małego protoboarda zrobiło się zwarcie, przez które zjarałem mój pierwszy rezystor w życiu (!), a tranzystory jakoś działały dalej. Po naprawieniu usterki 1 lampa działała - mogłem wyświetlić wszystkie cyfry od 0 do 9. Mogłem też zmierzyć, że napięcie zapłonu wynosi 180V i obniża się do 140V napięcia pracy. Teraz zostało mi zrobić podstawki - model pod lampy IN-12 do druku mogę udostępnić, ale z racji uszkodzenia płyty musiałem je zrobić sam. Wziąłem więc starą pokrywkę od farby, wyciąłem prostokąty, markerem zaznaczyłem miejsca na piny wdg. datasheetu, mini wiertarką wywierciłem otwory. Musiałem przygotować też same piny do podstawek - użyłem tu rozwierconych pinów z podstawek precyzyjnych, a następnie młotkiem wbiłem we wcześniej przygotowaną podstawę. Elektronika była gotowa, więc zacząłem programować. Po chwili dodałem mikrofon elektretowy, aby po klaśnięciu zegar się sam wyłączył, i od razu przeświecił wszystkie cyfry w celu uniknięcia efektu zatrucia katod. Zauważyłem też, że cewka w przetwornicy się dość mocno grzeje - dałem więc kapkę pasty termoprzewodzącej z domieszkami złota i przykleiłem radiator. Została mi już najgorsza część - obudowa. Normalnie bym takową wydrukował, ale że nie mogłem, wyciąłem ze sklejki listewki które pomalowałem szprejem na czarny mat. Wywierciłem otwory, poskręcałem śrubami M2,5. Wyszło źle, krzywo, niedokładnie - po prostu do d.... , pewnie dlatego że to była moja pierwsza obudowa ze sklejki, i z pewnością wydrukuję później obudowę (post zaktualizuję). Z daleka, jak patrzymy na zegar, wygląda on ciekawie - czarna bryła, lampy rosyjskiej produkcji i to klaśnięcie - wszystko to sprawia, że zegar dodaje niepowtarzalny klimat do pokoju. Zegar robiłem cały tydzień szkolny. Działanie zegara: Zegar wyposażyłem w klawiaturę 3 przycisków - "+", "-", oraz "prog". Przytrzymując przycisk prog możemy nastawić zegar, klikając odpowiednio + i -, oraz kliknąć prog ponownie by nastawić kolejną cyfrę. Podczas zwykłego działania, kliknięcie + spowoduje wyświetlanie się minut oraz sekund, a - będzie wyświetlał godziny i minuty. Dodatkowo, jeżeli podczas uruchamiania zegara przytrzymamy przycisk +, zostanie wywołany efekt "slot machine". Całość programowałem w środowisku Arduino, za pomocą programatora USBASP. Lista zakupów: 4x lampy IN-12 - ok. 10zł/sztuka, 50zł całość (+przesyłka) konwerter step-up - jakieś 20zł za całość sterownik, neonówka i przesyłka - 20zł tranzystory z drobiazgami - 20zł ----------------------------------------------------------------------- Za całość zapłaciłem jakieś 110zł. Resztę elementów już miałem. Dość nieźle, kiedy najtańsze zegary były chyba za ok. 300zł. Cudem jest fakt, że przeżyłem - akurat teraz mnie nic nie kopnęło, ale wcześniej doświadczyłem mocy napięcia gniazdkowego (długa historia). Sam zegar przyniósł mi dużo pochwał, szacunek u kolegów, 6 z fizyki na semestr - to tak jak te cudowne aplikacje na androida 😉 Od siebie jeszcze powiem, że na pewno zegar rozbuduję i wzbogacę o nowe funkcje. Co dalej? Mam w planach kalkulator domowej roboty, z kolegą zbudowałem już działający prototyp urządzenia podlewającego rzeżuchę. Oczywiście zachęcam do budowy zegara, ale należy pamiętać o wysokim napięciu. Pozdrawiam, Leoneq :3
  22. Witam! Z racji tego że są Święta postanowiłem stworzyć elektroniczną choinkę. Nie jest to projekt lecz ozdoba która jak dla mnie wyszła bardzo fajnie. Zacząłem od zaprojektowania układu w programie EasyEDA, następnie w polu do tworzenie ścieżek narysowałem kształt choinki i według tego obramowania rozmieszczałem elementy. Następnie płytkę wyeksportowałem do pliku "gerber" i wrzuciłem do programu FlatCAM który przekonwertował ścieżki, otwory oraz obramowanie na ruchy frezarki CNC. Niestety nie mam filmiku z procesu obróbki płytki PCB. Tak wygląda gotowa płytka do sprawdzenia i przylutowania układów. Gdy sprawdziłem wszystkie ścieżki czy nie ma gdzieś jakiegoś zwarcia przystąpiłem do lutowania elementów. I sprawdzenia działania. Na samym końcu wydrukowałem podstawkę do choinki. Tutaj filmik z działania ozdoby. Na odwrocie płytki umieściłem potencjometr którym można zmieniać czas przełączania diod LED.
  23. Cześć. Chciałbym się z Wami podzielić projektem, który jak pewnie większość takich projektów – wziął się z pewnej potrzeby. Otóż mój znajomy, który miesza w domku jednorodzinnym ma garaż. Garaż jest otwierany elektrycznie za pomocą m.in. pilota zdalnego sterowania. Często zdarzało się, że w nocy brama garażowa była otwarta bo np. ktoś z domowników miał pilot do garażu w tylnej kieszeni spodni i… po prostu usiadł. Poprosił mnie o pomoc. Chciał po prostu wiedzieć kiedy brama jest otwarta a kiedy zamknięta. Ustaliliśmy, że do sygnalizacji wystarczy prosta dioda LED. Urządzenie pokazujące stan otwarcia bramy miało być w dwóch miejscach w domu: w sypialni i w salonie obok telewizora. Oczywiście nie ma mowy o ciągnięciu jakichś kabli po nowo wybudowanym domu, więc w grę wchodzi tylko komunikacja bezprzewodowa. Zasada działania miała być prosta: Kiedy brama garażowa jest otwarta na odbiornikach widać świecącą diodę w kolorze czerwonym. Gdy jest zamknięta – w zielonym. Układ składał się więc z nadajnika, czyli modułu z kontraktonem, który „wykrywał” czy drzwi są zamknięte, oraz dwóch modułów z diodą RGB, która – w zależności od położenia drzwi – świeciła w odpowiednim kolorze. Nadajnik zbudowany jest z mikrokontrolera – klona ATMEGi, tzn. LGT8F328D (miałem po prostu kilka sztuk), czujnika zamknięcia bramy – czyli kontraktonu i nadajnika radiowego. Wybór mikrokontrolera podyktowany był tym, że w zasadzie sam program jest banalnie prosty i jakoś specjalnie nie wymagający sprzętowo, ale potrzebowałem mikrokontrolera z interfejsem SPI (o czym piszę poniżej) i… taki mikrokontroler po prostu miałem na stanie. Na początku przeprowadziłem testy z prostym nadajnikiem 433MHz, niestety zasięg nie był imponujący i po prostu nie sprawdził się. Nadajnik był zasilany napięciem 5V, mogłem próbować oczywiście zasilić go większym napięciem (12V), ale wtedy układ nieco by się skomplikował… Postawiłem więc na moduł nRF24l01 (stąd potrzeba SPI). Całość zasilana przez zasilacz zewnętrzny 5V. nRF24l01 pracuje na napięciu 3,3V, więc oczywiście w module nie zabrakło LDO, dokładnie AMS1117 3.3V. Mikrokontroler oczywiście też pracuje na napięciu 3.3V, częstotliwość taktowania to 8MHz. Odbiorniki działają na tym samym mikrokontrolerze, również wyposażone są oczywiście w moduł radiowy nRF24L01, oraz diodę LED RGB. Zasada działania układu jest prosta. Nadajnik sprawdza wejście cyfrowe z kontraktonem. Jeżeli jest „1” – tzn. drzwi są zamknięte – wysyła komunikat o treści „ON” co 1 sekundę. Jeżeli są otwarte – wysyła „OFF” co jedną sekundę. Odbiorniki natomiast czekają na komunikat. Jeżeli dostają „ON” - dioda świeci na zielono, jeżeli „OFF” – na czerwono. Jeżeli w ciągu 5 sekund nie dostaną żadnego komunikatu – dioda świeci na niebiesko. W ten oto sposób wiadomo, że nadajnik działa (lub też nie). Prototyp na pro mini służący do testów: Jeżeli chodzi o montaż w garażu, to na bramie garażowej przykleiłem magnes, na naprzeciwko magnesu umieściłem kontrakton, czyli urządzenie mechaniczne, które w polu magnetycznym magnesu zwiera dwa przewody ze sobą. Jako obudowa nadajnika i odbiorników służy zwykła puszka elektryczna. Dla układu nadajnika i odbiorników zaprojektowałem płytkę PCB (tę samą dla nadajnika i odbiorników) i zamówiłem w jednej z chińskich firm zajmujących się produkcją płytek PCB. Po otrzymaniu płytek przylutowałem niezbędne komponenty, podłączyłem i… działa już parę miesięcy. Nadajnik: Odbiornik: Gotowy projekt: Kilka uwag do projektu płytki Schemat: Jest tam kilka elementów nadmiarowych, nie używanych, ale zaprojektowanych „na zapas”. Po pierwsze jest miejsce na rezonator kwarcowy (wraz z odpowiednimi kondensatorami)– nie przylutowany. Mikrokontroler korzysta z wbudowanego oscylatora. Działa stabilnie, więc po co przepłacać Można także zauważyć, że i nadajnik i odbiornik mają wlutowaną diodę LED RGB. Bezpośrednio na nadajniku też widać czy brama jest otwarta, czy zamknięta. W projekcie na wyjściach mikrokontrolera PD5, PD6 i PB1 są tranzystory BC639 – to w wypadku, gdyby okazało się, że dioda RGB LED jest zbyt ciemna – wtedy można podłączyć np. taką diodę 3W, wiadomo – bardziej wymagająca prądowo. Jest jeszcze wyprowadzenie kilku dodatkowych wyjść mikrokontrolera, bo… było miejsce, a płytka może się jeszcze przydać do czegoś innego. Na płytce PCB widać, że nawet przycisku RESET nie przylutowałem… ale jest na niego miejsce. Zamiast LGT8F328D można przylutować na płytkę ATMEGA328P (zwierając odpowiednie wyprowadzone piny mikrokontrolera) lub ATMEGA328PB – tutaj akurat zgodne elektrycznie z LGT. Kodu źródłowego nie publikuję, bo to zaledwie kilka linijek. Kod pisany w środowisku Arduino. Projekt zdecydowanie bardziej hardware’owy. Prosty i skuteczny.
  24. Słowem wstępu, projekt ten został wykonany w czasie pandemicznego wymogu pozostania w domu, kiedy to zbliżał się koniec semestru na mojej uczelni. Był to mój projekt zaliczeniowy z przedmiotu o wdzięcznej nazwie: "Układy mikroprocesorowe". Prowadzący udostępnił listę urządzeń, z której każdy może wybrać jedno. Po dokonaniu wyboru należało wykonać je w warunkach domowych do końca wówczas trwającego miesiąca. Jako że był to dość niewygodny moment do wychodzenia po części do sklepu, a na zamówienie ich i czekanie nie chciałem marnować czasu, zrobiłem szybki przegląd swojego warsztatu. Wśród przewalających się podzespołów i elementów udało mi się dostrzec czujnik gazów MQ-2, który kiedyś kupiłem w promocji wraz z czujnikami alkoholu MQ-3. Jako że na liście widniał czujnik gazów, niewiele myśląc zebrałem to co miałem i przystąpiłem do pracy. Efektem tej pracy jest właśnie... DETEKTOR GAZÓW W POWIETRZU ATMOSFERYCZNYM OPARTY NA CZUJNIKU MQ-2 Detektor gazów przystosowano do pomiaru stężeń czterech gazów: LPG, dymu, CO oraz H2. Urządzenie zaprojektowano tak, by miało kompaktową obudowę i prosty, intuicyjny interfejs użytkownika. Wszystkie elementy tego interfejsu opisano na rysunku 1. Gaz którego odczyt ma zostać dokonany, zostaje wybrany za pomocą pokrętła głównego. Zgodnie z jego nastawą detektor będzie przeliczał odczyty czujnika pod wybrany gaz i wyświetli wynik na skali ledowej, znajdującej się po lewej stronie urządzenia. Wartości zmierzonych stężeń przelicza się na jednostkę PPM (Part Per Milion). W zależności od wysokości stężenia, skala LED pokazuje nie tylko zakres, ale także za pomocą odpowiedniej barwy pokazuje czy dany gaz znajduje się w strefie małego, umiarkowanego czy też dużego niebezpieczeństwa. rysunek 1. opis elementów detektora Urządzenie nie jest skomplikowane zarówno w swojej budowie, ale także w działaniu. Cały proces zachodzący pod obudową wykonaną z PLA opisuje schemat algorytmu na rysunku 2. rysunek 2. schemat algorytmu detektora Czytając schemat elektryczny umieszczony na rysunku 3., od lewej strony widzimy źródło zasilania, którym są akumulatory li-ion o napięciu 4.2 [V] każdy. Układ może być zamiast z akumulatorów zasilany z zasilacza o napięciu od 9 do 12 [V], o wydajności minimum 1.5 [A]. Po załączeniu układu przyciskiem “start” zasilanie prowadzone jest na dwa stabilizatory liniowe LM7805. Jeden z nich zasila mikrokontroler oraz interfejs urządzenia, a drugi odpowiada za zasilenie czujnika MQ-2. Zastosowanie dwóch stabilizatorów wiąże się z zapotrzebowaniem czujnika na prąd. Aby nie wprowadzać zakłóceń w działaniu mikrokontrolera, czujnik zasilany jest osobno a sam stabilizator jest chłodzony dodatkowo radiatorem. Sercem urządzenia jest mikrokontroler Atmega328PU. Zastosowano go ze względu na odpowiednio dużą liczbę dostępnych portów oraz wbudowany przetwornik analogowo- cyfrowy. Mikrokontroler przyjmuje sygnał analogowy z czujnika gazów na pin A1, analizuje go, sprawdza nastawę przełącznika “S1” po przez weryfikację stanów portów A2-A5, a na koniec wyświetla wynik za pomocą diod LED podpiętych pod porty PD0-PD7 oraz PB0. Oprócz tego, układ podłączony jest do 10-cio pinowego gniazda CANDA, które umożliwia programowanie mikrokontrolera bez konieczności rozbierania urządzenia i wyjmowania Atmegi328PU. rysunek 3. schemat elektryczny detektora gazów Płytę główną detektora zaprojektowano przy pomocy programu Cadsoft Eagle. Wykonany w nim wzór został przeniesiony na miedziany laminat za pomocą metody termicznej, a następnie wytrawiony nadsiarczanem sodowym. rysunek 4. Po lewej projekt PCB, po prawej zmontowana płytka Obudowa została zaprojektowana w programie Fusion360. Rzut na model złożony w programie cadowskim ukazano na rysunku 5. Na podstawie utworzonego modelu wykonano wydruki 3D, które po oszlifowaniu oraz wyczyszczeniu skompletowały projekt i umożliwiły zabudowę elektroniki w kompaktowej obudowie. rysunek 5. model obudowy w Fusion360 Jednym z najważniejszych etapów konstruowania detektora było wyprowadzenie liniowej zależności na stężenie gazu. Nota katalogowa czujnika przedstawia charakterystykę PPM w skali logarytmicznej. Wyprowadzenie wzoru było konieczne aby umożliwić mikrokontrolerowi wykonywanie obliczeń: a) wyprowadzenie zależności ogólnej: a = (Y2 – Y1) : (X2 – X1) Y - Y1 = a*(X- X1) X= ((Y – Y1) : a) + X1 logX= ((log(Y – Y1)) : a) + X1 X = 10^ (((log(Y – Y1)) : a) + X1) gdzie: X= PPM, Y= Rs: Ro PPM = 10^ (((log((Rs: Ro) – Y1)) : a) + X1) b) przykład aplikacji wzoru dla odczytu stężenia gazu LPG w powietrzu: X1 = 200, X2 = 10000, Y2 = 1,6, Y1 = 0,26 X1 = log200 = 2,3 X2 = log10000 = 4 Y1 = log1,6 = 0,2 Y2 = log0,26 = -0,58 PPM = 10^ (((log((Rs: Ro) – 0,2)) : (-0,58)) + 2,3) rysunek 6. po lewej charakterystyka PPM= f(Rs/Ro) z datasheet MQ-2, po prawej charakterystyka PPM=f(Uo) wykonana na bazie obliczeń w programie Graph 4.4.2 Film z prezentacji działania urządzenia: Na koniec udostępniam jeszcze kod napisany w środowisku Atmel Studio: #define F_CPU 16000000 #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> int main(void) { //Deklaracja portów wyjściowych DDRD = (1 << PORTD0) | (1 << PORTD1) | (1 << PORTD2) | (1 << PORTD3) | (1 << PORTD4) | (1 << PORTD5) | (1 << PORTD6) | (1 << PORTD7); DDRB = (1 << PORTB0) | (1 << PORTB1); //Deklaracja portów wejściowych DDRC = 0x00; //Załączenie rezystorów podciągających do portów A2- A5 PORTC = 0x3C; //Skala ledowa zaczyna się ładować, aby po dotarciu do wartości maksymalnej uruchamić krótki, podwójny brzęk buzzera informujący o rozpoczęciu kalibracji czujnika PORTB |= (1<<PORTB0); _delay_ms(300); PORTD |= (1<<PORTD7); _delay_ms(300); PORTD |= (1<<PORTD6); _delay_ms(300); PORTD |= (1<<PORTD5); _delay_ms(300); PORTD |= (1<<PORTD4); _delay_ms(300); PORTD |= (1<<PORTD3); _delay_ms(300); PORTD |= (1<<PORTD2); _delay_ms(300); PORTD |= (1<<PORTD1); _delay_ms(300); PORTD |= (1<<PORTD0); _delay_ms(300); PORTB |= (1<<PORTB1); _delay_ms(300); PORTB &= ~(1<<PORTB1); _delay_ms(300); PORTB |= (1<<PORTB1); _delay_ms(300); PORTB &= ~(1<<PORTB1); _delay_ms(100); //Ustawienia rejestrów do obsługi przetwornika analogowo-cyfrowego: ADMUX = (1 << REFS0) | ( 1 << MUX0 ); ADCSRA = (1 << ADEN) | (1 << ADIE) | (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2); DIDR0 = (1 << ADC0D); ADCSRA |= (1 << ADSC); TCCR0B = (1 << CS00) | (1 << CS02); //Deklaracja mierzonej wartości napięcia: double pomiar_V; //Parametry krzywej gazu LPG: double LPG_X1 = 2.3; double LPG_Y1 = 0.2; double LPG_a = 0.46; //Parametry krzywej dymu: double SMOKE_X1 = 2.3; double SMOKE_Y1 = 0.56; double SMOKE_a = 0.5; //Parametry krzywej tlenku węgla: double CO_X1 = 2.3; double CO_Y1 = 0.7; double CO_a = 0.31; //Parametry krzywej wodoru: double H2_X1 = 2.3; double H2_Y1 = 0.32; double H2_a = 0.45; //Parametry kalibracji czujnika: double ilosc_probek_kalibracyjnych = 60; double czas_probkowania_kalibracyjnego = 500; double rezystancja_Robc = 5.6; double wsp_czystosci_powietrza = 9.83; //Parametry próbkowania napięcia: double ilosc_probek_pomiarowych = 60; double czas_probkowania_pomiarowego = 5; double Rs_do_Ro = 0; //Zmienna zliczania: int i = 0; //Zmienna zliczająca- suma: int suma = 0; //Deklaracja Ro: double Ro = 0; //***********************kalibracja czujnika**************************: //W pętli "for" odczytywane jest napięcie z czujnika gazu. Czujnik jest //wystawiony na czyste powietrze. Kalibracja polega na wyznaczeniu rezy- //stanchi Ro dla czystego powietrza. Po kazdej pętli odczytane napięcie //jest sumowane. Suma tych napięć po zakończeniu pętli jest dzielona //przez liczbę próbek, otrzymując średnią wartość rezystancji. Wartość ta //podzielona przez współczynnik czystego powietrza (9.83) daje rezysta- //ncje Ro, na której będą oparte następne obliczenia. Obliczenia te wy- //konywane są raz. for (i=0;i<ilosc_probek_kalibracyjnych;i++) { pomiar_V = ADC; ADCSRA |= (1 << ADSC); Ro = ((1024-pomiar_V)/pomiar_V)*rezystancja_Robc; _delay_ms(czas_probkowania_kalibracyjnego); suma = suma+Ro; } Ro = suma/ilosc_probek_kalibracyjnych; Ro = Ro/wsp_czystosci_powietrza; //Opadanie wskazania ledowego i podwójny sygnał z buzzera informuje użytkownika o zakończeniu klibracji urządzenia PORTD &= ~(1<<PORTD0); _delay_ms(300); PORTD &= ~(1<<PORTD1); _delay_ms(300); PORTD &= ~(1<<PORTD2); _delay_ms(300); PORTD &= ~(1<<PORTD3); _delay_ms(300); PORTD &= ~(1<<PORTD4); _delay_ms(300); PORTD &= ~(1<<PORTD5); _delay_ms(300); PORTD &= ~(1<<PORTD6); _delay_ms(300); PORTD &= ~(1<<PORTD7); _delay_ms(300); PORTB &= ~(1<<PORTB0); _delay_ms(300); PORTB |= (1<<PORTB1); _delay_ms(300); PORTB &= ~(1<<PORTB1); _delay_ms(300); PORTB |= (1<<PORTB1); _delay_ms(300); PORTB &= ~(1<<PORTB1); _delay_ms(100); while(1) { //Zmienna zliczania: int j = 0; //Zmienna zliczająca- razem: int razem = 0; //Deklaracja liczonej rezystancji czujnika: double Rs = 0; //************************pomiar z czujnika************************: //W pętli "for" wyliczana jest wartość rezystancji na podstawie na- //pięcia z czujnika gazu. Obliczane rezystancje są sumowane. Po za- //kończeniu pętli, suma rezystancji jest dzielona przez liczbę pró- //bek i otrzymujemy przybliżony odczyt rezystancji czujnika. for (j=0;j<ilosc_probek_pomiarowych;j++) { pomiar_V = ADC; ADCSRA |= (1 << ADSC); Rs = ((1024-pomiar_V)/pomiar_V)*rezystancja_Robc; razem = razem + Rs; _delay_ms(czas_probkowania_pomiarowego); } Rs = razem/ilosc_probek_pomiarowych; //Znając Rs oraz Ro obliczamy ich stosunek i podstawiamy do wzoru //na zawartość cząstek LPG w powietrzu. Rs_do_Ro = Rs/Ro; _delay_ms(10); //Zawartość PPM gazu LPG w powietrzu: if (!(PINC & 0b00100000)) { double PPM = 0; PPM = pow(10,((log(Rs_do_Ro - LPG_Y1)/((-1)*LPG_a)) + LPG_X1)); _delay_ms(10); if ((PPM >= 0)&&(PPM <= 500)) { PORTB = 0b00000001; PORTD = 0b00000000; } if ((PPM >= 500)&&(PPM <= 1000)) { PORTB = 0b00000001; PORTD = 0b10000000; } if ((PPM >= 1000)&&(PPM <=2000)) { PORTB = 0b00000001; PORTD = 0b11000000; } if ((PPM >= 2000)&&(PPM <=5000)) { PORTB = 0b00000001; PORTD = 0b11100000; } if ((PPM >= 5000)&&(PPM <=7500)) { PORTB = 0b00000001; PORTD = 0b11110000; } if ((PPM >= 7500)&&(PPM <=10000)) { PORTB = 0b00000001; PORTD = 0b11111000; } if ((PPM >= 10000)&&(PPM <=15000)) { PORTB = 0b00000001; PORTD = 0b11111100; } if ((PPM >= 15000)&&(PPM <=20000)) { PORTB = 0b00000001; PORTD = 0b11111110; } if (PPM >= 20000) { PORTB = 0b00000001; PORTD = 0b11111111; } } //Zawartość PPM dymu w powietrzu: if (!(PINC & 0b00010000)) { double PPM = 0; PPM = pow(10,((log(Rs_do_Ro - SMOKE_Y1)/((-1)*SMOKE_a)) + SMOKE_X1)); _delay_ms(10); if ((PPM >= 0)&&(PPM <= 500)) { PORTB = 0b00000001; PORTD = 0b00000000; } if ((PPM >= 500)&&(PPM <= 1000)) { PORTB = 0b00000001; PORTD = 0b10000000; } if ((PPM >= 1000)&&(PPM <=2000)) { PORTB = 0b00000001; PORTD = 0b11000000; } if ((PPM >= 2000)&&(PPM <=5000)) { PORTB = 0b00000001; PORTD = 0b11100000; } if ((PPM >= 5000)&&(PPM <=7500)) { PORTB = 0b00000001; PORTD = 0b11110000; } if ((PPM >= 7500)&&(PPM <=10000)) { PORTB = 0b00000001; PORTD = 0b11111000; } if ((PPM >= 10000)&&(PPM <=15000)) { PORTB = 0b00000001; PORTD = 0b11111100; } if ((PPM >= 15000)&&(PPM <=20000)) { PORTB = 0b00000001; PORTD = 0b11111110; } if (PPM >= 20000) { PORTB = 0b00000001; PORTD = 0b11111111; } } //Zawartość PPM CO w powietrzu: if (!(PINC & 0b00001000)) { double PPM = 0; PPM = pow(10,((log(Rs_do_Ro - CO_Y1)/((-1)*CO_a)) + CO_X1)); _delay_ms(10); if ((PPM >= 0)&&(PPM <= 500)) { PORTB = 0b00000001; PORTD = 0b00000000; } if ((PPM >= 500)&&(PPM <= 1000)) { PORTB = 0b00000001; PORTD = 0b10000000; } if ((PPM >= 1000)&&(PPM <=2000)) { PORTB = 0b00000001; PORTD = 0b11000000; } if ((PPM >= 2000)&&(PPM <=5000)) { PORTB = 0b00000001; PORTD = 0b11100000; } if ((PPM >= 5000)&&(PPM <=7500)) { PORTB = 0b00000001; PORTD = 0b11110000; } if ((PPM >= 7500)&&(PPM <=10000)) { PORTB = 0b00000001; PORTD = 0b11111000; } if ((PPM >= 10000)&&(PPM <=15000)) { PORTB = 0b00000001; PORTD = 0b11111100; } if ((PPM >= 15000)&&(PPM <=20000)) { PORTB = 0b00000001; PORTD = 0b11111110; } if (PPM >= 20000) { PORTB = 0b00000001; PORTD = 0b11111111; } } //Zawartość PPM H2 w powietrzu: if (!(PINC & 0b00100000)) { double PPM = 0; PPM = pow(10,((log(Rs_do_Ro - H2_Y1)/((-1)*H2_a)) + H2_X1)); _delay_ms(10); if ((PPM >= 0)&&(PPM <= 500)) { PORTB = 0b00000001; PORTD = 0b00000000; } if ((PPM >= 500)&&(PPM <= 1000)) { PORTB = 0b00000001; PORTD = 0b10000000; } if ((PPM >= 1000)&&(PPM <=2000)) { PORTB = 0b00000001; PORTD = 0b11000000; } if ((PPM >= 2000)&&(PPM <=5000)) { PORTB = 0b00000001; PORTD = 0b11100000; } if ((PPM >= 5000)&&(PPM <=7500)) { PORTB = 0b00000001; PORTD = 0b11110000; } if ((PPM >= 7500)&&(PPM <=10000)) { PORTB = 0b00000001; PORTD = 0b11111000; } if ((PPM >= 10000)&&(PPM <=15000)) { PORTB = 0b00000001; PORTD = 0b11111100; } if ((PPM >= 15000)&&(PPM <=20000)) { PORTB = 0b00000001; PORTD = 0b11111110; } if (PPM >= 20000) { PORTB = 0b00000001; PORTD = 0b11111111; } } //Po dotarciu do końca komendy, pętla rozpoczyna się od począ- //tku mierząc jeszcze raz napięcie na czujniku. _delay_ms(100); } return(0); } Jeżeli dotrwaliście aż do tego momentu, to bardzo dziękuje wam za uwagę. Mam nadzieję, że ten projekt będzie pomocny dla każdej osoby rozpoczynającej swoje przygody z czujnikiem gazu MQ-2. Osobiście jestem zadowolony z rezultatu jaki osiągnąłem tym projektem. Mam jednak do niego sporo zastrzeżeń i kiedy będę miał możliwość, planuję do niego wrócić wprowadzając następujące zmiany: Skala ledowa zostanie zastąpiona wyświetlaczem 2x16 aby widzieć dokładny odczyt PPM wybranego gazu. Urządzenie zostanie wyposażone we własne źródło zasilania. Atmega328 będzie zastąpiona przez mikrokontroler atmega8. Obudowa zostanie lepiej uszczelniona. Czujnik zostanie wyprowadzony na długim przewodzie jako sonda, którą można umieścić w dowolnym miejscu. W programie napisane zostanie proste menu, dzięki czemu będzie można wygodnie wybrać gaz, przeprowadzić kalibrację (aby wyeliminować czekanie po uruchomieniu i pamiętać stałą wartość czujnika) oraz opcjonalnie zmienić współczynnik czystego powietrza. Przydatny link: Wyjaśnienie działania czujnika MQ-2 https://sandboxelectronics.com/?p=165
  25. 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 🙂
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.