Skocz do zawartości

Tablica liderów


Popularna zawartość

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

  1. 5 punktów
    Interaktywna zabawka dla kotów gwarantująca zabawę w każdej chwili, żaden kot nie oprze się uciekającej czerwonej kropce. Jest to niewielkie pudełeczko z wbudowanym modułem wifi i banalnie prostą obsługą. Główne funkcje: sterowanie dowolnym urządzeniem z przeglądarką internetową. losowe ruchy lasera o zmiennej prędkości. ustawianie czasu jak długo ma działać. ustawianie harmonogramów automatycznego włączenia. regulacja jasności lasera. regulacja zakresu ruchu i prędkości lasera. możliwość sterowania z dowolnego miejsca na świecie przez internet. sterowanie za pomocą google asystenta. prosta konfiguracja. Zabawka może być zasilana dowolną ładowarką od telefonu, może to być również powerbank. Przy pierwszym uruchomieniu zabawki, zostanie uruchomiona nowa sieć wifi ..::LASERCAT::.. wystarczy połączyć się z nią i wskazać naszą sieć domową, a po zrestartowaniu urządzenie automatycznie podłączy się do niej i już możemy korzystać z zabawki. Z tyłu znajduje się wejście zasilania micro USB, jak w telefonie oraz przycisk. Krótkie wciśnięcie to włączenie/wyłączenie lasera, przytrzymanie przez 3 sek. powoduje rozłączenie obecnej sieci wifi i uruchomienie ponownej konfiguracji. Gdy urządzenie jest już podłączone do naszej sieci wifi to po wpisaniu adresu zabawki w przeglądarce internetowej zobaczymy panel sterujący: Zastosowany laser jest małej mocy, taki sam jak w innych tego typu zabawkach czy bazarkowych wskaźnikach. Dodatkowo dla bezpieczeństwa jest możliwość ustawienia mocy świecenia lasera od 0% do 100%. Pozostałe ustawienia pozwolą dostosować zakres ruchów do miejsca w którym znajduje się zabawka i określić czy kropka ma się poruszać tylko po podłodze, czy częściowo wchodzić na ścianę co może dostarczyć dodatkowej frajdy dla kota. Schemat jest bardzo prosty: Widok płytki PCB: Jak zwykle w garażowym zaciszu metodą "żelazkową" - elektronicy używają żelazka zdecydowanie częściej jak ich partnerki - powstaje mała płytka. Płytka została zabezpieczona przed utlenianiem lakierem PVB16. Całą robotę wykonuje tutaj tani i lubiany układ ESP8266, który posiada moduł WiFi. Dioda laserowa jest zasilana źródłem prądowym dodatkowo kluczowanym z PWM-a co pozwala płynnie regulować jasność od 0% do 100%. Skoro już bebechy mam, to teraz trzeba to wszystko złożyć w całość. Obudowę wykonałem ze sklejki wyciętej laserowo, składanej na wczepy palcowe. No to składamy: Dodanie serwomechanizmów do których przyczepiony jest laser. Oczywiście bez trytytki projekt by się nie udał No i sprzęt jest gotowy, ale co nam po sprzęcie jak on zupełnie nie wie co ma robić? Nie wie, że teraz trzeba machać tym laserkiem tak żeby kot ganiał w tę i we w tę Trzeba to wszystko zaprogramować. Uruchamiamy nasze ulubione IDE czyli Visual Studio Code z wtyczką PlatformIO i zaczynamy pisać program. Soft został napisany z wykorzystaniem Arduino Core, a na całość składa się kilka części: główny program sterujący silniczkami, wyznaczanie losowych ścieżek. serwer www, który udostępnia ładny panel sterowania. konfiguracja sieci WiFi z wykorzystaniem Captive Portal. multicast DNS. stworzenie strony www (html + css + javascript). obsługa komunikacji po websockecie. zdalne wgrywanie plików przez stronę www, np. zmiana wyglądu głównej strony. zdalna aktualizacja oprogramowania bez zbędnych kabli. W oczekiwaniu na gotowe oprogramowanie tester cierpliwie czeka. Panel sterujący dostępny z poziomu przeglądarki internetowej nie jest hostowany nigdzie na zewnątrz, całość znajduje się w zabawce, wykorzystałem bootstrapa plus kilka dodatkowych komponentów. Zastosowany mDNS pozwala połączyć się z urządzeniem wpisując w przeglądarce adres "lasercat.local" zamiast adresu IP. Niestety na chwilę obecną android nie wspiera tego typu rozwiązań, ale na iPhonach działa to bardzo dobrze. Na filmie mała prezentacja z trochę już wybawionym głównym testerem Elroyem a poniżej pokazano jak można włączyć zabawkę po prostu mówiąc do telefonu "Ok Google, włącz laser"
  2. 2 punkty
    pewnie mówisz masz import processing.serial.*; int literyH = 50; int myInt; float myFloat; float theta; int start = 0; Serial myPort; // The serial port void setup() { size(300,300); myPort = new Serial(this, Serial.list()[1], 9600); myPort.clear(); } void draw() { textSize(literyH); if (myPort.available() > 0) { myInt = myPort.read(); myFloat = map(float(myInt), 33, 255, 10, 180); background(0); //println(myInt); fill(myFloat,myFloat*2,myFloat*3); // fiolet text("val: " + myInt,width/10, height/5); } if (start==1) { translate(width/2,height/2); // Translate to the center rotate(theta); // Rotate by theta rect(-26, -26, 52, 52); if (myInt >49) theta += myFloat/1000; } else if (start==0) { translate(width/2,height/2); // Translate to the center rotate(theta); // Rotate by theta rect(-26, -26, 52, 52); } } void mousePressed() { if ((start==0) && (mouseX > width/2-26) && (mouseX < width/2+26) && (mouseY > width/2-26) && (mouseY < width/2+26)) { start = 1; myPort.write(50); } else { start = 0; myPort.write(49); } } Jedyna " trudność" jaka może być przy podłączeniu arduino to wybór poprawnego portu COM czyli : myPort = new Serial(this, Serial.list()[1], 9600); Serial.list()[1] nie oznacza , że to jest COM1 w moim wypadku to jest COM4 dla poprawnego określenia pod jakim portem jest arduino najlepiej użyć funkcji printArray(Serial.list()); ewentualnie jeżeli pod usb mamy podpięte tylko arduino i żadnych innych urządzeń to będzie to Serial.list()[0]. Jeżeli ktoś będzie tym bardziej zainteresowany to wieczorem mogę pokazać jak to będzie wyglądało.
  3. 2 punkty
    Może być 10k. Wrzuć na prawdę pusty kod, void setup i void loop bez zawartości. Będziemy wiedzieli czy to wina software czy hardware. Plis...
  4. 1 punkt
    W tym temacie chciałem się podzielić doświadczeniami związanymi z Processing 3. Temat zamieściłem w dziale arduino z trzech powodów: Po pierwsze faktycznie wykorzystywałem arduino nano i uno do komunikacji między processing zainstalowanym na PC a płytką arduino. Powód drugi do fakty , że processing na początku wydał mi się bardzo podobny do arduino i mam tu na myśli zarówno edytor jak i reference. Struktura szkicu w processing: void setup() { } void draw() { } No i trzeci powód to fakt , że samo środowisko ma w znacznym stopniu ułatwiać wizualizacje danych czy po prostu tworzenie grafiki. Poniżej prosty przykład z potencjometrem Na smartfony z androidem można zainstalować APDE z google play aczkolwiek nie wszystkie biblioteki są dostępne w porównaniu do wersji PC. Jeżeli ktoś już korzysta lub korzystał z processing niech podzieli się swoimi przemyśleniami.
  5. 1 punkt
    @adrianrogalski witam na forum! W pierwszym przypadku program powinien działać poprawnie, jeśli trzymasz cały czas wciśnięty przycisk, a chyba nie o to tu chodziło Zwróć uwagę, że program w takiej formie sprawdza czy odebrano jakieś dane przez UART tylko "natychmiast po wciśnięciu przycisku", a nie cały czas. Musisz sprawić, że program poczeka do momentu podania danych lub zapętlić część, w której odbierane są dane
  6. 1 punkt
    Zawsze można podłączyć przycisk do Vcc (GPIO16 ma PULLDOWN) Ale to już dla baaaaardzo leniwych...
  7. 1 punkt
    Zgadza się, masz rację. Wrzucone schematy nie były zaktualizowane, poprawiłem je w poście. Dopiero w praniu wyłapałem brak rezystora na GPIO16. Co do GPIO0 i GPIO2 też się z Tobą zgodzę, że powinny być pull-upy, ale z w praktyce jeszcze nigdy mi się nie zdarzyło, żeby nie wystartował z flasha bez nich, jestem świadomy, że wystawiam się tym na potencjalne problemy w Rev.2 już je dodam Btw. dzięki za zwrócenie uwagi na to i przypomnienie mi o problemach z GPIO16
  8. 1 punkt
    Mam pytanko: na schemacie masz przycisk S1 podłączony do GPIO16 bez rezystora podciągającego (GPIO16 jako jedyny nie ma wewnętrznego PULLUP). Działa Ci to dobrze? Dodatkowo - zostawianie wiszących GPIO0 i GPIO2 to nie jest specjalnie dobry pomysł - oba powinny być podciągnięte rezystorami do Vcc. A poza tym fajne - czasem żałuję że nie mam kota
  9. 1 punkt
    Bo to jest napięcie progowe przełączania bramki i wtedy stany bramek się zmienią i zacznie się rozładowywać i tak w kółko.
  10. 1 punkt
    Zmierzyłeś czy gdzieś przeczytałeś? 13V i 50mA to 0.65W- całkiem sporo jakna komputerek klasy Arduino. Dopóki nie musisz świecić jakimś dużym wyświetlaczem a jedynie coś mierzysz i wysyłasz np. przez radio do domu, powinno starczyć. Decyzja jest Twoja, rozumiemy to, ale może napisz chociaż na jakiej podstawie. Mierzyłeś prąd lub moc stacji pogodowej? Czy możesz podać wymiary tych ogniw? To daje pojęcie o mocy, bo muszą być naprawdę jakieś mikre jeśli tylko 0.5W z czterech na raz wyciągasz w pełnym Słońcu. Nawet gdyby każde było wielkości pudełka papierosów to i tak powinno wyjść więcej mocy.
  11. 1 punkt
    Nowy schemat jest OK. Nie bądź taki srogi, ja raczej traktuję to jak wypadek przy pracy. Chłopak się stara, czasem faktycznie ręce opadają (bo przecież każdy ma jakieś sprawy pozaforumowe) i się ulewa, ale z tego co maver144 pisał wcześniej i o co pytał to moim zdaniem ma zadatki na elektronika Przynajmniej drąży temat jak rzadko kto i nie porzuca go po dwóch odpowiedziach.. Nie wiem czy powinienem odnosić się do każdego akapitu z ostatniego posta, bo większość to zdania oznajmujące z którymi w większości się zgadzam. W kontekście innego podłączenia tranzystora pytanie o napięcie wyjściowe zaczyna mieć sens. Tranzystor npn z kolektorem na plusie zasilania i wyjściem z emitera to wtórnik emiterowy więc jego napięcie będzie co najwyżej takie jakim napięciem jest sterowana jego baza minus 0.6V spadku na diodzie BE. Trzeba więc zajrzeć do schematu połączeń wewnętrznych scalaka i zobaczyć jak to tam zrobili. Nnawet gdyby to było najlepiej jak można (czyli baza podciągana jakimś opornikiem lub tranzystorem pnp do plusa) to możemy oczekiwać co najwyżej Vcc-0.6V. Układy tego typu (większość wzmacniaczy operacyjnych i niektóre komparatory) nawet nie wiedzą, że pracują z zasilaniem bipolarnym. To jest tylko nasz punkt widzenia, gdy robimy masę gdzieś w środku a przynajmniej wewnątrz widełek +Uz/-Uz. Odnosimy wtedy do niej sygnały wejściowe i do niej odniesione dostajemy wyjścia. Komparator to także wzmacniacz więc z reguły może pracować również w takiej konfiguracji. Wystarczy np. że postawisz jego masę na -UZ a plus jego zasilania i opornik podciągający wyjście zapniesz na +Uz. Jeżeli odpowiednio zrobisz sprzężenie zwrotne dostaniesz wzmacniacz liniowy z wyjściem bipolarnym (względem jakiejś masy o której tylko Ty wiesz). Zaletą takiego swobodnego tranzystora w odróżnieniu od dwutranzystorowego wyjścia typowego wzmacniacza operacyjnego jest to, że możesz w pewnej konfiguracji pracować na dowolnych (uni- lub bipolarnych) sygnałach wejściowych (w zalezności od tego jak rozpiąłeś zasilanie scalaka) a dostać sygnał cyfrowy/dwustanowy odniesiony do masy, czyli nadający się wprost dla jakiejś bramki cyfrowej. A przecież zamiana sygnałów "analogowych" na "cyfrowe" to podstawowe zadanie tego 1-bitowego przetwornika A/C. Niektóre komparatory mają wprost nóżkę masy oprócz +Uz/-Uz właśnie po to, by sygnał wyjściowy był z założenia odniesiony do niej. Nie trzeba wtedy takich myków z pływającym tranzystorem, bo stopień wyjściowy robią wtedy porządnie na dwóch tranzystorach i sygnał nie ma wad niesymetrii stopnia z otwartym kolektorem. Co ciekawe, nawet w przypadku kanonicznego LM311 różni producenci różnie traktują ten wyjściowy tranzystor. Kolektor co prawda jest wszędzie wyjściem głównym i to zgadza się z Twoją obecną aplikacją (czyli obciążenie do Vcc), ale z emiterem już jest różnie. U Texasa mamy oznaczenie emitera i choć w ich schematach w większości jest on podłączany do masy to nie zawsze. W ST za to pin ten nazywa się GND (w odróżnieniu od +Uz/-Uz) i w zasadzie wszędzie jest podłączany do masy wyjściowej. Tak naprawdę nie jest to goły npn a raczej pewien zespół tranzystorów przy okazji zapewniający ograniczenie prądu wyjściowego. Acha, wygląda na to, że w połączeniu emitera jako wyjścia nie można spodziewać się więcej jak ok. Vcc-1.5V. Tak, oporniki histerezy pobierają prąd z wyjścia w obu stanach i w przypadku LEDa może to mieć znaczenie. Zauważ jednak, że wystarczy zwiększyć ich wartości np. 10-krotnie co nie zmieni szerokości histerezy a spowoduje, że w zasadzie prąd przez nie płynący nie zapali nawet dobrej diodki. Oczywiście w przypadku komparatora z wyjściem totem-pole nie byłoby problemu. Dostałbyś wtedy sztywne GND i sztywne Vcc więc i obliczenia histerezy by się uprościły. Wybór tego typu scalaków jest dzisiaj tak wielki, że trzeba dobrze wybrać. Oczywiście można ściubolić każdy grosz albo kupować pierwszy z brzegu LM311 i budować na nim fajne układy, ale warto pamiętać, że są inne możliwości - czasem zwyczajnie upraszczające życie. Gdy już poznasz na wylot tego staruszka, rozejrzyj się wśród komparatorów
  12. 1 punkt
    Po co ma coś wrzucać, skoro to jest soft AT. A co do schematu to brakuje kondensatorów, polecam 100n + 1000u. I nie pisz, że na filmie działa bez, też napisałem, że kiedyś działały mi podłączone do FTDI, a dzisiaj już nie chcą. Zresztą na czas programowania to może działać OK (uC pobiera 15mA bez włączonego modemu WIFI), ale nie podczas normalnej pracy gdy jest uruchomiony modem i średni pobór jest 70mA + piki po kilkaset.
  13. 1 punkt
    Ja zaprojektowałem w nim już mnóstwo płytek i jak na moje potrzeby jest jak najbardziej ok ale musisz wyrobić sobie własną opinię.
  14. 1 punkt
    No właśnie nie wiem co o tym sądzić. Każda kolejna iteracja powinna przybliżać do poprawnego rozwiązania a tu mimo poprawek dostajemy wciąż nowe błędy, jakby ktoś bawił się symbolami schematowymi nie bardzo rozumiejąc co one oznaczają. A to ostatnie zwarcie do masy to już ręce mi trochę opadły - nie widać tego na prostym rysunku czy jak? Może dlatego taka gorycz wypłynęła, przepraszam.. Pytanie o napięcie wyjściowe też brzmi dziwnie, bo przecież Kolega musiał zajrzeć do danych katalogowych scalaka by poprawnie podłączyć emiter i kolektor tranzystora wyjściowego. Nic z tego nie zostało po 2 tygodniach?
  15. 1 punkt
    Tutaj co nieco o fuzji sygnału z akcelerometru i żyroskopu oraz o kalibracji: http://students.iitk.ac.in/roboclub/2017/12/21/Beginners-Guide-to-IMU.html A wzór o który pytasz pochodzi z dokumentacji modułu:
  16. 1 punkt
    Moja ogólna uwaga jest taka: jeżeli po 10 dniach wrzucasz do sieci schemat z takim babolem, to strach pomyśleć co będzie gdy zrobisz coś na szybko? A teraz konkretnie: Przyjrzyj się zwarciu kondensatora C1 do masy. Zaczynam podejrzewać, że rysując jakiś fragment schematu ogarniasz go tylko na grubość palca wokół punktu Dioda Zenera to element przez który musi płynąć prąd rzędu 1mA+. Wstawiłeś diodę 5.1V przy zasilaniu 5V - jak chcesz uzyskać małe napięcie odniesienia w ten sposób? Jeżeli wystarczą Ci okolice np. 0.6V to możesz tam dać zwykłą diodę krzemową spolaryzowaną w dół, ale puść przez nią tyle prądu (wartość R2) by obciążenie jej obwodem histerezy nie powodowało istotnych jego zmian. Myślę, że kilka mA będzie tu w sam raz. Przelicz do tego R2. Wyjście z tego komparatora w tej konkretnej konfiguracji to otwarty kolektor. Takie coś w ogóle nie daje napięcia tylko zwiera do masy albo nie. Gdy zwiera to przy małych prądach możesz liczyć na jakieś 100mV lub trochę mniej. Gdy nie zwiera, to napięcie jest takie jaki obwód zrobiłeś na zewnątrz. A Ty dałeś diodę LED na której (gdy jest czerwona) spada ok. 2V nawet przy bardzo małych prądach. Dlatego możesz liczyć na ok 3V w stanie wysokim. Gdy sterujesz LEDem to oczywiście nie ma znaczenia, ale jeśli chcesz ten sygnał wykorzystać gdzieś dalej, musisz wziąć pod uwagę spadek napięcia na LED1 albo dać równolegle do niej opornik podciągający wyjście bezpośrednio do plusa, np. 10k. Wtedy dla małych prądów obciążenia dostaniesz prawie pełne 5V w stanie wysokim. I znowu: wszystko zależy od tego co chcesz tam jeszcze podłączyć.
  17. 1 punkt
    A nie powinien być podpięty jak już to do zasilania przez rezystor? EDIT: Źle przeczytałem skoro RESET masz ODPIĘTY od masy i wisi w powietrzu, daj go dla testów do zasilania przez rezystor. Generalnie nie ma powodów by nie wierzyć logom. Skoro wskazują na reset z uwagi na PIN RST, wyeliminujmy ew. ten kierunek. Druga sprawa, miałem ostatnio podobny problem. Kod mi się skompilował, wgrał bez problemu do ESP a po uruchomieniu procesor się w kółko resetował. Przyczyną był jakiś bubel w kodzie, kompilator nie darł się że jest źle, ale dla ESP było już nie miło i ten się resetował. Może też tak masz? Wgraj dla testów inny, prosty kod i zobacz czy będzie się resetować. Może to nie problem hardware, tylko jak wtedy u mnie - software...
  18. 1 punkt
    Moduły sprzedawane dawniej z 512kB Flash bez problemu ruszały zasilane z FTDI, te dzisiejsze 1MB są bardziej kapryśne. Reset na moim ESP-01 jest podciągnięty przez rezystor do VCC, ale generalnie przy uruchamianiu trzeba podać odpowiednie rezystory na piny IO0, RST, IO15 (w ESP-01 musi być OK, bo nie jest wyprowadzony), CHPD, GPIO2 (czasami), dodać kondensatory blisko VCC bo nowe szarpią tak, że nawet stabilizator 500mA klęka, wybrać odpowiednią wielkość flash (zwykle 1MB działa najlepiej), tryb komunikacji (bezpiecznie DOUT), konwerter logiki dla komunikacji z 5V (ewentualnie) i już się można nimi bawić. No i z każdym modułem jest inaczej, np. esp12s ma wszystkie pull-up/down potrzebne do standardowej pracy już pod blaszaną kopułką. Jak ktoś używa trybu deepsleep z wybudzaniem timerem to jeszcze polecam użycie diody od RST do GPIO16.
  19. 1 punkt
    Pojawiła się potrzeba wykonania prostego sterownika do bramy garażowej, który miałby powiadamiać mieszkańców czy aktualnie garaż jest zamknięty czy otwarty oraz w dowolnej chwili sprawdzić status. Tak powstało niewielkie urządzenie montowane na szynę DIN. Jest zasilane z dowolnej ładowarki od telefonu, posiada zabezpieczenie przed odwrotną polaryzacja zasilania. Sterownik ma kilka wejść/wyjść; IN1 - dolna krańcówka od zamknięcia garażu. IN2 - górna krańcówka od pełnego otwarcia garażu. wyjście przekaźnikowe NO do zdalnego otwierania/zamykania bramy. RS485 - pozwala podłączyć czujnik odległości wykrywający czy auto jest w garażu. czujnik temperatury DS18B20. przycisk do resetowania ustawień WiFi i uruchomienia ponownej konfiguracji. W sterowniku zastosowałem popularny układ ESP8266 w wersji WemosD1 mini. Jak widać za wiele rzeczy tu nie ma, oprócz ESP znajduje się przekaźnik, DS18B20 oraz transceiver RS485. Projekt miał być prosty, szybki i jednostkowy dlatego nie zastosowałem dodatkowych stopni ochrony wejść w postaci np. optoizolacji. Tradycyjnie płytka powstała na żelazku i wytrawiona w kwasie. Polutowana i zabezpieczona lakierem do PCB. Schemat ideowy: Wspomniany wcześniej czujnik odległości jest zbudowany z wykorzystaniem ultradźwiękowego czujnika HC-SR04 i Arduino Nano, które cyklicznie wysyła informacje do głównego sterownika. Schemat czujnika: Sterownik ma zaimplementowany serwer WWW co pozwala na sterowanie praktycznie dowolnym urządzeniem z przeglądarką. A panel sterowania prezentuje się tak: Dodałem obsługę powiadomień push na telefon z wykorzystaniem mechanizmu IFTTT (if this then that). Wystarczy zainstalować tą aplikacje na telefonie, a w sterowniku wprowadzić unikalny klucz aplikacji powiązany z konkretnym telefonem. Aktualizacja oprogramowanie wykorzystuje mechanizm OTA i sprowadza się do wgrania pliku przez panel www. Dodatkowo wystawione jest proste API, które pozwala na integracje z większością systemów smart home typu Domoticz, Home Assistant itp.
  20. 1 punkt
    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.
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×
×
  • Utwórz nowe...