Skocz do zawartości

Tablica liderów


Popularna zawartość

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

  1. 1 punkt
    Nixie - lampy od których nie można oderwać wzroku. Kiedyś podstawowy element do prezentowania danych, dzisiaj poszukiwany rarytas przez pasjonatów. Chciałem zaprezentować kilka zegarów jakie wykonałem swego czasu. Opiszę jeden konkretny, a na końcu pokażę kilka innych konstrukcji, które maja podobną elektronikę. Podstawowe funkcje Lampy LC-531 firmy DOLAM Format wyświetlania czasu HH:MM:SS Wyświetlanie daty Dwa niezależne czujniki temperatury DS18B20 Podtrzymanie bateryjne pracy układu zegara Prosta obsługa za pomocą pilota Programowany alarm z różnymi trybami powtórzeń Kilka melodyjek do wyboru jako dźwięk budzika Możliwość wł/wył zera z przodu Programowana częstotliwość „przewijania” lamp, w celu uniknięcia zatrucia katod Elektronika Zegar został oparty o mikrokontroler Atmega8 i zegar RTC PCF8563 . W urządzeniu można wyszczególnić kilka funkcjonalnych bloków: Zegar RTC przetwornica czujniki temperatury odbiornik IR multipleksowanie lamp Przetwornica oparta jest o poczciwego NE555, a jasność lamp reguluje się potencjometrem. Do zegara można podłączyć dwa czujniki temperatury, a odczytana z nich wartość będzie wyświetlana co kilkadziesiąt sekund. Do sterowania wykorzystany jest malutki pilot na podczerwień. Zegar posiada zaprogramowanych kilka melodyjek monofonicznych, które można ustawić jako dźwięk budzika. Użyłem do tego celu buzzer bez wbudowanego generatora. Fajną opcją jest tzw. “slot machine”, czyli krótkie przewijanie wszystkich cyfr, głównym celem tego zabiegu jest ochrona lamp przed zatruciem katod, zwłaszcza pierwszych lamp, gdzie cyfra nie zmienia się przez wiele godzin, szczególnie w zegarach gdzie wyświetlana jest tylko godzina. Efekt przewijania cyfr jest włączany co pięć minut i trwa 10 sekund. Jest to efekt naprawdę miły dla oka. Lampy są aktywowane za pomocą wysokonapięciowych tranzystorów z serii MMBT, a poszczególne cyfry z wykorzystaniem modułu 74141. Układ 74141 jest dekoderem kodu BCD na kod dziesiętny, który zaprojektowano specjalnie do sterowania lampami z zimną katodą. Obudowa W tym konkretnym egzemplarzu wykonana została z poczciwej zabejcowanej sosny. Całość została zamknięta pod pleksą, która była wygięta na ciepło zwykła opalarką. Płytka z elektroniką jest wyeksponowana, widać wszystkie elementy, a PCB jest zabezpieczone prostą soldermaską wykonaną z farby termoutwardzalnej. Schemat Niżej zamieszczam zdjęcia kilku innych zegarów jakie wykonałem, schemat elektroniczny jest w nich podobny.
  2. 1 punkt
    Jakiś czas temu na forum zaprezentowałem projekt procesora zrealizowanego na układzie FPGA. Był to układ zrealizowany na dwóch płytkach Elbert v2. Aby go uruchomić należało wykonać dość sporo pracy. Dzisiaj prezentuję pierwszą wersję układu DCE Q816, czyli bezpośredniej kontynuacji poprzedniego projektu. Można powiedzieć, że pierwsza wersja Q818 to tak naprawdę Q816 zrealizowany tylko na jednej płytce Elbert v2. Układ jest w pełni kompatybilny z poprzednim projektem oraz posiada identyczną listę rozkazów. Na ten moment nie będę skupiał się na budowie procesora, ponieważ jest ona praktycznie identyczna jak w układzie Q816. Jedyną różnicą jest to, że pamięć ROM oraz procesor zaimplementowane została na tym samym układzie FPGA. W związku z tym każdy, kto posiada płytkę Elbert v2 może pobrać projekt, który dostępny jest tutaj, a następnie uruchomić procesor Q818 w swoim domu. Po implementacji projektu na płytce FPGA powinniśmy zobaczyć następujący efekt świetlny. Należy również wspomnieć, że porty procesora skonfigurowane zostały w następujący sposób. przełączniki DIP Switch - wejście IN procesora (logika odwrotna) przycisk SW1 - RESET port P1 - wyjście OUT1 procesora diody LED - wyjście OUT2 procesora Programowanie procesora odbywa się poprzez zmianę zawartości pamięci ROM procesora. Aby tego dokonać musimy otworzyć plik ROM.vhd i następnie wpisać binarną zawartość kolejnych komórek pamięci. Najmłodsze 5-bitów to rozkaz dla procesora. Kolejne 8 to tzw. dana bezpośrednia, którą możemy przesłać do innych rejestrów. Poniżej umieszczam spis dostępnych rozkazów procesora oraz instrukcje dla ALU zapisywane w rejestrze C. Na ten moment jest to pierwsza wersja układu Q816 w przyszłości postaram się o uporządkowanie samego kodu, jak i dodanie kolejnych funkcji. O zmianach i kolejnych wersjach postaram się informować w komentarzach do tego posta.
  3. 1 punkt
    Idea działania Komora jonizacyjna, to urządzenie składające się z dwóch elektrod do których doprowadzane jest stałe napięcie, co powoduje powstanie pola elektrycznego w jej środku. Gdy kwant promieniowania "uderzy" w atom gazu znajdującego się w komorze, "rozbija" go na dwa jony (dodatni i ujemny), które są przyciągane do elektrod (dodatni do ujemnej i vice versa). Mierząc prąd płynący między dodatnią, a ujemną elektrodą, będzie on proporcjonalny do ilości tych jonów, zaś to będzie proporcjonalne do mierzonego promieniowania. Utrudnieniem jest, że wspomniane prądy są małe, więc wymagają dużego wzmocnienia, co zaś wymaga m.in. starannego filtrowania zasilania, oraz ekranowania, by urządzenie się nie wzbudzało. Poniżej znajduje się schemat blokowy prezentowanego rozwiązania. Część elektroniczna Pierwotnie do wytworzenia napięcia polaryzującego, miałem w planach użycie przetwornicy, jednak okazało się, że napięcie 12V z baterii jest wystarczające. Sygnał z komory trafia do wzmacniacza transimpedancyjnego, w pętli sprzężenia znajdują się szeregowo dwa rezystory o wartości aż 50G. Połączenie owych rezystorów, elektrody komory jonizacyjnej i nóżki wzmacniacza musi być wykonane w powietrzu, by uniknąć pasożytniczych rezystancji. Poniżej znajduje się render w KiCADie, oraz rzeczywiste urządzenie (wiem, fotka jest dość niskiej jakości). Część programistyczna Sygnał analogowy trafia do przetwornika ADC, i jest zbierany przez procek - tu użyłem dość mało popularnego STM8. Zaskoczeniem było dla mnie, że GCC nie obsługuje tych procesorów, zaś poświęcony im SDCC nie umie wycinać z binarki funkcji, które nie są używane! Do komunikacji z hardwarem użyłem stdperiph. Komunikacja z światem zewnętrznym jest jednokierunkowa (urządzenie wysyła pomiary co kilka sekund) za pomocą UARTa. Założeniem było, by urządzenie można było pozostawić same sobie i zdalnie je flashować, czy też pobierać z niego dane. W skrócie, wolę programować leżąc w łóżku, niż garbiąc się nad stołem pełnym kabli :) Zostało to zrealizowane przez dodanie Raspberry Pi, do której podpięty jest zarówno programator, jak i przelotka UART/USB. Soft na procka napisałem w C. Pobieranie danych po stronie maliny jest wykonywane przez skrypt w Pythonie, dane są wizualizowane skryptem w R. Użyłem R, mimo, że Python też ma biblioteki do tworzenia wykresów, bo bardzo podobają mi się wykresy w R. Dokumentacja powstała w LATEXie. Całość dostępna jest na GitHubie - zapraszam do odwiedzenia Wyniki Poniżej znajdują się dane pomiarowe zebrane za pomocą urządzenia.
  4. 1 punkt
    Witam, Piszę bo potrzebuje pomocy w skonstruowaniu podwozia, a szczególnie doborze napędu do robota, platformy , pojazdu czy jak to tam nazwać Trochę o konstrukcji - Wykonujemy robota zdalnie sterowanego do walk (coś w stylu battlebots, robot wars, itp, z tym że nie może niszczyć przeciwnika) - Wygrana to jest zepchnięcie przeciwnika poza linię / ring (tak jak sumo) - na tym teraz się skupmy - Całość będzie ważyć ok. 10Kg - Pojazd powinien mieć dużą "siłę" by przepchnąć inny pojazd ważący też te 10kg (uwzględniając koła przeciwnika o dobrej przyczepności) - fajnie by podstawa nie miała mniej niż te ok. 30x30cm (zalecane ok. 40-50cm) Zmierzając do pytania - czego potrzebuje? musze do tego dobrać odpowiednie silniki (chyba z gotową przekładnią będą najlepsze) Średnice kół planuję w granicach 8-12cm Cała konstrukcja waży ok. 10kg i musi umożliwiać przepchnięcie przeciwnika Myślę że prędkość na poziomie 3-5m/s będzie wystarczająca Początkowo myślałem na 2 kołami napędowymi (po 1 silniku na 1 koło) i 1 kołem obrotowym bez napędu. Ale teraz zastanawiam się czy 4 koła i 4 silniki nie bedą lepszym wyborem? teoretycznie większe tarcie, więc i lepsza przyczepność? 6) Korzystając z tego "kalkulatora": https://www.robotshop.com/community/blog/show/drive-motor-sizing-tool obliczyłem że na samo poruszanie się (2 silniki), potrzeba silnika ok. 480rpm, 2Nm, 85W. Jeśli na przepchnięcie przeciwnika potrzebujemy siłę ok 2.5 raza większą, to by musiał mieć ok 5Nm i ok 200W - czy to by się zgadzało ? Myślałem nad silnikami: od rozrusznika motocyklowego, od bramy garażowej np. faac/came 600D/ HG600, wkrętarki, ale nie ma o nich za dużo danych (np. moment obrotowy). Albo co byście powiedzieli o takim kole z silnikiem od deskorolki elektrycznej: https://www.banggood.com/150W-24-36V-0_3A-Brushless-Motor-for-DIY-Electric-Skateboard-Wheel-Scooter-p-1300519.html?rmmds=search&cur_warehouse=CN lub od hoverboarda: https://www.olx.pl/oferta/kola-6-5-do-deskorolki-elektrycznej-hoverboard-CID767-IDA0f62.html#cd475da05a , albo skuter elektryczny: https://allegro.pl/oferta/silnik-elektryczny-z-przekladnia-12v-200w-7716-8291275920 Bardzo proszę o pomoc, czas nagli, a ja niestety stoję w miejscu.
  5. 1 punkt
    Niedawno opisałem na Forbocie mój projekt pomiaru promieniowania radioaktywnego przy użyciu komory jonizacyjnej, w tym wpisie zaprezentuję inną metodę opartą o złącze p-n. Metoda ta ma kilka plusów: w porównaniu do licznika GM, nie potrzebne jest wysokie (rzędu 400V DC) napięcie polaryzacyjne, odpada więc konieczność budowy przetwornicy w porównaniu do licznika GM, brak jest tuby GM, więc urządzenie może być mniejsze, w dodatku pomiar może być bardziej punktowy, bo sam sensor jest mały w porównaniu do tuby GM w porównaniu do komory jonizacyjnej, urządzenie jest prostsze, bo wzmacniane sygnały mają dość dużą amplitudę, nie potrzeba kosmicznych wartości rezystorów . Urządzenie opisane tutaj, podobnie, jak licznik GM zlicza impulsy, poziom promieniowania jest tym większy, im więcej impulsów w danym, stałym czasie (przykładowo 60 sekund). Sensorem jest fotodioda BPW34, by zapewnić większą powierzchnię roboczą, trzy fotodiody są połączone równolegle. Poniżej zaprezentowany jest schemat blokowy (wykonany w LaTeXu). STM32 zajmuje się liczeniem impulsów i ich wysyłaniem ich ilości co 60 sekund, prócz tego posiada wyświetlacz, na którym rysowany jest wykres ilości impulsów w funkcji czasu. Po stronie Raspberry znajduje się cale przetwarzanie danych, którego efektem są diagramy wykonane w R. Dopiero później zrozumiałem, że wykresy, które mnie interesują to wykresy pudełkowe, więc tutaj niestety dla każdej próbki mam wykres z ilością impulsów i ich histogramem. Poniżej znajdują się zdjęcia przed-przedostatniej, przedostatniej i aktualnej wersji. Tu jako ciekawostkę dodam, że przedostatnia wersja nie miała komparatora, analogowe wyjście podpiąłem do oscyloskopu (Rigol DS1054z), ustawiłem trigger, a wyjście ext-trigger wpiąłem do STM'a. To działało całkiem dobrze, chociaż faktem jest że używanie oscyloskopy jako komparatora to overkill Poniżej załączam schemat urządzenia. Wzmacniacz U1, to OPA657U, a U2 to OPA656U. Nie chciało mi się rysować dla nich elementów, więc użyłem podobnej kostki o tym samym rozkładzie pinów. Rezystor R4 ma wartość 1G, to dość duża wartość i ciężko było mi znaleźć takie rezystory, ale udało się na Aliexpress. Ważą kwestią jest ekranowanie, dlatego urządzenie znajduje się w metalowej obudowie, tam, gdzie znajduje się sensor, wywiercona jest w obudowie dziura, która jest zalepiona samoprzylepną folią aluminiową, bo gruba metalowa obudowa tłumiłaby promieniowanie zbyt mocno. Do środka nie może przedostawać się światło, bo zafałszuje to dane z czujnika. Ponieważ sygnał z komparatora ma logikę 12V, a STM32 oczekuje 3V3, zrobiłem taki konwerter, jak poniżej. Poniżej znajdują się pomiary dla busoli z farbą radową. Poniżej znajdują się wyniki dla elektrod z torem. Poniżej znajduje się pomiar tła. Projekt znajduje się na GitHubie i dostępny jest pod tym linkiem.
  6. 1 punkt
    @crbjsfso takie ogniwa plus moduł o którym piszesz, do zasilania by się nadały, ale nie myślałem na razie nad przenośną wersją Urządzenie jest zasilane z zasilacza laboratoryjnego. Widoczne na zdjęciu baterie na schemacie są oznaczone jako "photodiode bias", służą one tylko do polaryzacji fotodiod, więc nie pobierany jest praktycznie żądny prąd, czyli baterie wytrzymają tak długo, aż rozładują się same. Zastosowałem baterie, a nie zasilacz, bo zasilacz wprowadzałby tętnienia, a to pierwszy stopień, wzmacniacza, gdzie wzmocnienie jest bardzo duże, więc i te tętnienia byłyby niepożądane.
  7. 1 punkt
    1N4733 to dioda Zenera i ma ograniczać napięcie na wejściu. Może być włączona równolegle do źródła (oczywiście odwrotnie - katodą do czerwonego plusa) pod warunkiem, że moc tego źródła (baterii słonecznej) w punkcie 5.1V nie przekracza dopuszczalnej mocy strat tej diody.
  8. 1 punkt
    Po dość sporej przerwie wracam do projektu, miała ona również swoje plusy, ponieważ udało mi się spojrzeć na całość z nieco innej perspektywy. Wracając do poprzednich wpisów, plany implementacji obsługi kolejnych interfejsów oraz obsługi wyświetlaczy 7 segmentowych zostają. Jednak rezygnuję z wyświetlacza LCD oraz zewnętrznej pamięci RAM. Powodem tego jest początkowe założenie projektu, w czasie jego trwania nieco zapomniane. Cały system ma być ograniczony tylko do płytki Elbert v2. Ewentualne zewnętrzne dodatki nie powinny być wymagane do poprawnego uruchomienia projektu. Jak sama nazwa wskazuje mają to być tylko dodatki. Pojawiła się kolejna wersja projektu DCEQ818 z nieco zoptymalizowanym kodem procesora, dodatkowo sam opis również został zaktualizowany.
  9. 1 punkt
    Cześć wszystkim. Właśnie skończyłem swój projekt. Czy akcja jeszcze trwa? Jeśli nie to kiedy będzie następna?
  10. 1 punkt
    Hejka. Mimo dosyć dużego zaawansowania w różnych tematach, zarówno software jak i hardware, nigdy nie używałem MQTT i jest to dla mnie nowość. Jednakże DZIŚ nastał ten dzień, że zaczynam publikować i subskrybować Jednej rzeczy nie rozumiem, albo chcę głośno powiedzieć, tym samym układając to sobie w głowie. Skoro domoticz wysyła (publikuje) do brokera komendę - włącz/wyłącz pstryczek, to robi to tylko do brokera. Broker sam z siebie nie wyśle komendy do esp, więc esp co chwilę musi pytać brokera (subskrybować) czy jest dla niego jakiś job? Am I right? Jeśli tak to jest to trochę lipa... Druga sprawa, skąd taki biedny esp ma wiedzieć, czy dany job już przetworzył, czy nie? EDIT: Co ja pierniczę. Subskrybując jestem podłączony do brokera cały czas a ten śle wszystko co mu się publikuje... Moim zadaniem w takim razie jest przeparsować komunikat i wykonać zadanie jeśli stwierdzę, że jest dla mnie.
  11. 1 punkt
    Hej wszystkim! Chciałbym rozpocząć przygodę z elektroniką i wydaje mi się, że to idealne miejsce!
  12. 1 punkt
    Witam serdecznie- bardzo się cieszę że mogę być tutaj z wami.
  13. 1 punkt
    Witam, wgrałem na moje gniazdko Tasmotę, ale mam problem z odczytem napięcia - zawyża mi o 30V, a co za tym idzie całą resztę. Jest jakiś sposób na korektę ? znalazłem, jest korekta opisana na stronie https://github.com/arendst/Tasmota/wiki/Power-monitoring-calibration
  14. 1 punkt
    W kursie podstaw elektroniki, tutaj na Forbocie dokładnie opisane są podstawowe wiadomości o tranzystorach. Radziłbym te kursy przerobić przed budowa własnych układów. Zmniejszysz tym samym straty w elementach elektronicznych i własną frustrację kolejnym dymkiem unoszącym się z budowanego urządzenia. Metodą prób i błędów wolniej się nauczysz a szybko się zniechęcisz.
  15. 1 punkt
  16. 1 punkt
    Dlaczego nie dać zasilacza na wymagane napięcie tylko kombinować z przetwornicami? Jakie napięcie chcesz podać na akumulator? Jak sobie wyobrażasz w takim razie skuteczne ładowanie akumulatora? Zacznij od tego aby dowiedzieć się o trybach ładowania akumulatora kwasowego. Kombinujesz z ładowaniem okresowym, podobnie jak w samochodzie albo ładowaniem konserwującym (tak to wygląda skoro 2 godziny na dobę) ale czy nie lepiej zrealizować ładowanie w pracy buforowej? Jak już podejmiesz decyzję co do sposobu ładowania, to poszukaj informacji na temat warunków ładowania (napięcie, prąd) i wtedy dobierzesz odpowiedni zasilacz.
  17. 1 punkt
    No tak, to absolutne minimum uchroni wzmacniacz przed wpychaniem mu prądu do wejścia. Kolejna sprawa to ustalenie ile czasu potrzebuje ten układ na "ochłonięcie", bo przecież nawet te 0.6V na diodzie doprowadza wzmacniacz x201 do nasycenia. Albo szukaj oscyloskopu albo skorzystaj z procesora jaki masz na pokładzie. Jeśli po wyłączeniu grzałki (ale nie przez analogWrite(0) tylko normalnie najpierw ją włącz na powiedzmy 500ms a potem wyłącz zwykłym digitalWrite żebyś miał jakiś determinizm czasowy) będziesz wykonywał w pętli analogRead() i wyniki zapisywał do tablicy to właśnie zrobiłeś prosty oscyloskop. Zobacz ile musisz wykonać takich pomiarów aby wyniki zaczęły przypominać to czego oczekujesz i tyle. Zamiast zapisywać do tablicy możesz zwyczajnie czekać w pętli while() aż pomiar z wyjścia wzmacniacza będzie np. niższy niż ileśtam mV jednocześnie zliczając liczbę pomiarów w jakiejś zmiennej. To także da jakąś estymację czasu. Skoro masz kilkukilohercowy ADC to skorzystaj z niego
  18. 1 punkt
    @Treker W przyszłości na pewno pojawi się obsługa kolejnych interfejsów takich jak SPI, I2C itd. Dodatkowo planuję też wprowadzenie obsługi wyświetlacza LCD oraz 7-segmentowego. Poważnie też myślę nad dodaniem zewnętrznej pamięci RAM. Można by wówczas zrezygnować z implementowania jej na strukturze FPGA i zwiększyć pojemność pamięci ROM, ale to temat na dalszą przyszłość. Oczywiście cały czas staram się pracować nad projektem i metodą małych kroków zwiększać jego funkcjonalność.
Tablica liderów jest ustawiona na Warszawa/GMT+01:00
×
×
  • Utwórz nowe...