Skocz do zawartości

r.ziomber

Społeczność Astropolis
  • Postów

    2 749
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez r.ziomber

  1. 4 godziny temu, piotrkusiu napisał(a):

    No więc... są ludzie, co twierdzą że Ziemia jest płaska.

    Można więc powiedzieć, że człowiek to się niczego nie nauczy.

    Płaska Ziemia jest bardzo natarczywie narzucana przez rosyjską propagandę. Prosty człowiek znajduje przekonujące go dowody, uzyskuje dostęp do wiedzy tajemnej, czuje się dowartościowany, wyjątkowy. Wchodzi w bańkę informacyjną, zaczyna śledzić profile. Nagle staje się tubą propagandową Sputnik News.

    Wystarczy spojrzeć na konta w serwisach społecznościowych, by odkryć, że wszyscy agresywni naganiacze Plackoziemia nagle stali się antyukraińscy i generalnie promują ten sam przekaz, w różnych dziedzinach życia. Zawsze zgodny z interesem ZSRR.

     

    Więc tak. Płaska Ziemia ma za sobą wielkie poparcie i pieniądze.

     

    Z innej beczki. Warto mieć na uwadze różne modele, gdyż trenowane są na różnych danych. Czasem te mniej znane i "ogarnięte" zapewniają lepsze zastosowania w pewnych niszowych kwestiach.

     

    https://claude.ai
    https://gemini.google.com
    Za darmo dwie rozmowy z GPT 4 na dzien https://www.popai.pro
    W ustawieniach trzeba wlaczyc GPT 4 https://chat.clarin-pl.eu/pl/chat
    https://poe.com
    https://www.perplexity.ai

    https://chat.reka.ai/chat
    https://app.corcel.io/chat
    https://huggingface.co/chat/
    https://chat.lmsys.org
    https://chat.mistral.ai/chat
    https://www.phind.com
    https://openrouter.ai

    https://api.together.xyz

  2. Nie testowane. trochę pseudokod C++. Pamiętajcie, by nie przekroczyć 3.3V na GPIO Raspberry Pi.

    https://abyz.me.uk/rpi/pigpio/cif.html

     

    #include <iostream>
    #include <pigpio.h>
    #include <chrono>
    #include <thread>
    #define PIN 7
    
    int main ()
    {
      if (gpioInitialise () < 0)
        {
          std::cerr << "Failed to initialize pigpio\n";
          return 1;
        }
      gpioSetMode (PIN, PI_INPUT);
      //gpioSetPullUpDown(PIN, PI_PUD_UP);
      auto lastTimePower = std::chrono::high_resolution_clock::now ();
      while (1)
        {
          if (gpioRead (PIN) == 1)
    	lastTimePower = std::chrono::high_resolution_clock::now ();
          else
    	{
    	  auto now = std::chrono::high_resolution_clock::now ();
    	  auto elapsed =
    	    std::chrono::duration_cast <std::chrono::milliseconds>
    	    (now - lastTimePower).count ();
    	  if (elapsed >= 5000)
    	    {
    	      system ("sudo shutdown -h now");
    	      //jesli nie ubije procesu przed kolejnym przejesciem petli
    	      std::this_thread::sleep_for (std::chrono::milliseconds (10000));
    	    }
          }
    	 std::this_thread::sleep_for (std::chrono::milliseconds (100));
      }
          gpioTerminate ();
          return 0;
    }

    Całkiem prawdopodobne, że https://pl.wikibooks.org/wiki/C/time będzie wydajniejsze, nie mówiąc o prostszym użyciu od std::chrono::high_resolution_clock::now (); W końcu nie potrzebujemy milisekundowej dokładności.

    https://pl.wikibooks.org/wiki/C/clock - to też warte rozważenia, bo po aktualizacji czasu systemowego z NTP nagle Unix time przeskoczy o 50 lat. O ile pomiar nie wykaże stanu niskiego if (gpioRead (PIN) == 1), nie powinno to wpłynąć na działanie programu. W przeciwnym razie może nie odczekać zakładanego minimalnego okresu braku zasilania if (elapsed >= 5000).

    • Lubię 1
  3. Te mierniki mają na ogół dwa zestawy przewodów. Trzy cienkie do zasilania i pomiaru napięcia (czarny - GND, czerwony - VCC zasilania miernika, żółty - "sonda" do pomiaru napięcia.

    Gorzej z grubymi przewodami, którymi mierzy się szeregowo natężenie prądu. Tu jest większa szansa na uszkodzenie. Na pewno nigdy nie należy tych grubych przewodów bezpośrednio podłączać do - i + zasilania!

    Na ogół czarny, gruby idzie do GND zasilania, czerwony (ten kolor jest nieco mylący - to nadal GND!) do GND odbiornika.

    Wypadałoby jednak mieć schemat pod konkretny model. Są czasem w ofertach na Aliexpress.

    U0HkP.png.90e057923b293f83944a19b3f422ad89.png

  4. W dniu 1.10.2023 o 14:44, radoslawo napisał(a):

    Widziałem nawet że są niektórzy którym SQM się wyświetla.

    Nie wiem, jak dodaje się SQM do obrazu w gotowych projektach AllSky, ale do pomiaru wystarczy TSL237 light-to-frequency converter.

     

    Przypuszczam, że pomiar częstotliwości bezpośrednio z Raspberry, bez udziału mikrokontrolera nie jest zbyt dokładny. Na szczęście przy nocnym niebie uzyskamy kilka(naście) herców z tego czujnika, co sprawi mniej problemów z pomiarem, niż wyższe częstotliwości.

    https://abyz.me.uk/rpi/pigpio/examples.html

     

    Znając częstotliwość, dalej korzystamy z https://pl.wikipedia.org/wiki/Czynnik_Pogsona i dobranej stałej kalibracyjej. W swoim mierniku liczę medianę z wielu pomiarów.

    Sky_Quality_Meter.webp.7d4fdbb9ab31d620403ffbc75a681cf1.webp

     

    Jeżeli nasz gotowy projekt AllSky wyświetla stronę WWW, wystarczy do kodu źródłowego dodać kod pobierający JSON ze skryptu odpalajacego stronę www na innym porcie.

    https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

    https://www.w3schools.com/js/js_timing.asp

    https://www.w3schools.com/js/js_json_parse.asp

    • Lubię 2
  5. W dniu 29.07.2023 o 14:42, Behlur_Olderys napisał(a):

    Pytanie czy bez oscyloskopu będę wiedział, że parametry L i C będą w miarę dobrane?

     

    XL4016 ma 180KHz Switching Frequency

    Multimetr musiałby mieć odpowiedni bandwidth, by to mierzyć w trybie AC (sprawdź w specyfikacji).

    Zwyczajowo parametry zasilaczy podaje się przy bandwith ustawionym na 20 MHz (nawet czasem specjalnie ogranicza się go na oscyloskopie do takich pomiarów).

     

    EDYCJA.

    Teraz widzę, że pierwotnie chciałeś filtrować PWM z tego. Tutaj częstotliwości będą niższe, bardziej "przyjazne" dla pomiarów multimetrem.

  6. Być może

    https://www.celestron.com/products/focus-motor#support-downloads

    Cytat

    Jeśli komunikacja odbywa się po porcie szeregowym (przez konwerter USB-UART), napisanie programu okienkowego z +/- jest banalne, choć chwilowo nie mogę znaleźć innego protokołu, niż do GoTo.

    https://s3.amazonaws.com/celestron-site-support-files/support_files/1154108406_nexstarcommprot.pdf

  7. Code snippet dla srodowiska OpenSCAD do generowania dovetaili Vixen o dowolnych rozmiarach.

    Przyjmuje nachylenie scianek 15°.

    https://www.cloudynights.com/topic/298098-angle-of-a-vixen-style-dovetail/

    1912434536_Vixendovetail.png.658904f1e0ba7f0927f2bc2c72917b38.png

         $fn = 500;
         dovetail_size = [50, 100, 30]; //width of the smaller base, length, length of the side edge (dovetail height/sin(90 - 15))
         screw_head = [10, 5]; //diameter and height
         screw_diameter = 6;
         module base() {
           hull() {
             rotate([0, -15, 0]) cube([0.01, dovetail_size[1], dovetail_size[2]], center = false);
    
             translate([dovetail_size[0], 0, 0]) rotate([0, 15, 0]) cube([0.01, dovetail_size[1], dovetail_size[2]], center = false);
           }
         }
    
         difference() {
           base();
    
           translate_height = dovetail_size[2] * sin(90 - 15) - screw_head[1] + 0.01;
    
           hull() {
             translate([dovetail_size[0] / 2, 0.3 * dovetail_size[1], translate_height]) cylinder(r = screw_head[0] / 2, h = screw_head[1], center = false);
             translate([dovetail_size[0] / 2, 0.7 * dovetail_size[1], translate_height]) cylinder(r = screw_head[0] / 2, h = screw_head[1], center = false);
           }
    
           hull() {
             translate([dovetail_size[0] / 2, 0.3 * dovetail_size[1], 0]) cylinder(r = screw_diameter / 2, h = 3 * dovetail_size[2], center = true);
             translate([dovetail_size[0] / 2, 0.7 * dovetail_size[1], 0]) cylinder(r = screw_diameter / 2, h = 3 * dovetail_size[2], center = true);
           }
         }

     

    • Lubię 1
  8. W dniu 19.03.2020 o 17:40, dobrychemik napisał:

    czy ktoś dysponujący drukarką 3D mógłby mi wydrukować czarny krążek o grubości 2-3 mm i średnicy zewnętrznej 41mm oraz wewnętrznej 28mm (ma pasować na gwint filtra - albo na wcisk, albo z czasem samo się wyrobi i się "zgwintuje" od wkręcania filtra)?

    Przy okazji, gdyby ktos zaczal interesowac sie tematem, polecam OpenSCAD do takich rzeczy.

    difference() {
    cylinder(r=41, h=3, center=false);
    cylinder(r=28, h=10, center=true);
    }

    Gwint mozna wygenerowac np za pomoca biblioteki threadlib. Niestety parametry gwintow sa dosc niestandardowe.

    https://agenaastro.com/articles/guides/miscellaneous/astronomy-threads-explained.html#eyepieces

    Dlatego lepiej wykorzystac biblioteke https://dkprojects.net/openscad-threads/ w ktorej latwo mozna wygenerowac egzotyczny gwint metryczny.

    Dla sruby:

    use <Libs/threads.scad>; //https://dkprojects.net/openscad-threads/
    metric_thread (28, 0.6, 2);

    Dla gwintu wewnetrznego:

    use <Libs/threads.scad>; //https://dkprojects.net/openscad-threads/
    difference() {
    cylinder(r=41, h=2, center=false);
    metric_thread (28, 0.6, 3, internal=true);
    }

     

    • Lubię 1
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.