'잡동사니'에 해당되는 글 14462건

  1. 2021.11.27 esp32 flash on/off 버전
  2. 2021.11.27 stm32 vs esp32
  3. 2021.11.26 weston shell
  4. 2021.11.25 wasm interfacing example
  5. 2021.11.25 weston_log()
  6. 2021.11.25 rtl-sdr 지름
  7. 2021.11.25 rtl-sdr gqrx direct sampling
  8. 2021.11.25 수신강도가 너무 약한건가?
  9. 2021.11.24 rtp sdr noaa
  10. 2021.11.24 장난감 겟! (응?)
embeded/esp322021. 11. 27. 14:30

눈으로 보면 미친듯이 밝은데 생각외로 밝진 않은 느낌 -_ㅠ

가장 아래 Flash 버튼을 추가했음

 

Flash on!

 

새로 스케치 만들어서 붙여넣고

스케치 - 라이브러리 포함하기 - ESP32 하고

툴 - 라이브러리 관리 - esp32servo 설치하면 된다.

#include <dummy.h>

/*********
  Rui Santos
  Complete instructions at https://RandomNerdTutorials.com/esp32-cam-projects-ebook/
  
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/
#define LED_BUILTIN 4

#include "esp_camera.h"
#include <WiFi.h>
#include "esp_timer.h"
#include "img_converters.h"
#include "Arduino.h"
#include "fb_gfx.h"
#include "soc/soc.h"             // disable brownout problems
#include "soc/rtc_cntl_reg.h"    // disable brownout problems
#include "esp_http_server.h"
#include <ESP32Servo.h>

// Replace with your network credentials
const char* ssid = "wifi_ssid";
const char* password = "wifi_passwd";

#define PART_BOUNDARY "123456789000000000000987654321"

#define CAMERA_MODEL_AI_THINKER
//#define CAMERA_MODEL_M5STACK_PSRAM
//#define CAMERA_MODEL_M5STACK_WITHOUT_PSRAM
//#define CAMERA_MODEL_M5STACK_PSRAM_B
//#define CAMERA_MODEL_WROVER_KIT

#if defined(CAMERA_MODEL_WROVER_KIT)
  #define PWDN_GPIO_NUM    -1
  #define RESET_GPIO_NUM   -1
  #define XCLK_GPIO_NUM    21
  #define SIOD_GPIO_NUM    26
  #define SIOC_GPIO_NUM    27
  
  #define Y9_GPIO_NUM      35
  #define Y8_GPIO_NUM      34
  #define Y7_GPIO_NUM      39
  #define Y6_GPIO_NUM      36
  #define Y5_GPIO_NUM      19
  #define Y4_GPIO_NUM      18
  #define Y3_GPIO_NUM       5
  #define Y2_GPIO_NUM       4
  #define VSYNC_GPIO_NUM   25
  #define HREF_GPIO_NUM    23
  #define PCLK_GPIO_NUM    22

#elif defined(CAMERA_MODEL_M5STACK_PSRAM)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27
  #define SIOD_GPIO_NUM     25
  #define SIOC_GPIO_NUM     23
  
  #define Y9_GPIO_NUM       19
  #define Y8_GPIO_NUM       36
  #define Y7_GPIO_NUM       18
  #define Y6_GPIO_NUM       39
  #define Y5_GPIO_NUM        5
  #define Y4_GPIO_NUM       34
  #define Y3_GPIO_NUM       35
  #define Y2_GPIO_NUM       32
  #define VSYNC_GPIO_NUM    22
  #define HREF_GPIO_NUM     26
  #define PCLK_GPIO_NUM     21

#elif defined(CAMERA_MODEL_M5STACK_WITHOUT_PSRAM)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27
  #define SIOD_GPIO_NUM     25
  #define SIOC_GPIO_NUM     23
  
  #define Y9_GPIO_NUM       19
  #define Y8_GPIO_NUM       36
  #define Y7_GPIO_NUM       18
  #define Y6_GPIO_NUM       39
  #define Y5_GPIO_NUM        5
  #define Y4_GPIO_NUM       34
  #define Y3_GPIO_NUM       35
  #define Y2_GPIO_NUM       17
  #define VSYNC_GPIO_NUM    22
  #define HREF_GPIO_NUM     26
  #define PCLK_GPIO_NUM     21

#elif defined(CAMERA_MODEL_AI_THINKER)
  #define PWDN_GPIO_NUM     32
  #define RESET_GPIO_NUM    -1
  #define XCLK_GPIO_NUM      0
  #define SIOD_GPIO_NUM     26
  #define SIOC_GPIO_NUM     27
  
  #define Y9_GPIO_NUM       35
  #define Y8_GPIO_NUM       34
  #define Y7_GPIO_NUM       39
  #define Y6_GPIO_NUM       36
  #define Y5_GPIO_NUM       21
  #define Y4_GPIO_NUM       19
  #define Y3_GPIO_NUM       18
  #define Y2_GPIO_NUM        5
  #define VSYNC_GPIO_NUM    25
  #define HREF_GPIO_NUM     23
  #define PCLK_GPIO_NUM     22

#elif defined(CAMERA_MODEL_M5STACK_PSRAM_B)
  #define PWDN_GPIO_NUM     -1
  #define RESET_GPIO_NUM    15
  #define XCLK_GPIO_NUM     27
  #define SIOD_GPIO_NUM     22
  #define SIOC_GPIO_NUM     23
  
  #define Y9_GPIO_NUM       19
  #define Y8_GPIO_NUM       36
  #define Y7_GPIO_NUM       18
  #define Y6_GPIO_NUM       39
  #define Y5_GPIO_NUM        5
  #define Y4_GPIO_NUM       34
  #define Y3_GPIO_NUM       35
  #define Y2_GPIO_NUM       32
  #define VSYNC_GPIO_NUM    25
  #define HREF_GPIO_NUM     26
  #define PCLK_GPIO_NUM     21

#else
  #error "Camera model not selected"
#endif

#define SERVO_1      14
#define SERVO_2      15

#define SERVO_STEP   5

Servo servoN1;
Servo servoN2;
Servo servo1;
Servo servo2;

int servo1Pos = 0;
int servo2Pos = 0;
int flash = 0;

static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY;
static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";

httpd_handle_t camera_httpd = NULL;
httpd_handle_t stream_httpd = NULL;

static const char PROGMEM INDEX_HTML[] = R"rawliteral(
<html>
  <head>
    <title>ESP32-CAM Robot</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style>
      body { font-family: Arial; text-align: center; margin:0px auto; padding-top: 30px;}
      table { margin-left: auto; margin-right: auto; }
      td { padding: 8 px; }
      .button {
        background-color: #2f4468;
        border: none;
        color: white;
        padding: 10px 20px;
        text-align: center;
        text-decoration: none;
        display: inline-block;
        font-size: 18px;
        margin: 6px 3px;
        cursor: pointer;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
        -khtml-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        -webkit-tap-highlight-color: rgba(0,0,0,0);
      }
      img {  width: auto ;
        max-width: 100% ;
        height: auto ; 
      }
    </style>
  </head>
  <body>
    <h1>ESP32-CAM Pan and Tilt</h1>
    <img src="" id="photo" >
    <table>
      <tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('up');" ontouchstart="toggleCheckbox('up');">Up</button></td></tr>
      <tr><td align="center"><button class="button" onmousedown="toggleCheckbox('left');" ontouchstart="toggleCheckbox('left');">Left</button></td><td align="center"></td><td align="center"><button class="button" onmousedown="toggleCheckbox('right');" ontouchstart="toggleCheckbox('right');">Right</button></td></tr>
      <tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('down');" ontouchstart="toggleCheckbox('down');">Down</button></td></tr>                   
      <tr><td colspan="3" align="center"><button class="button" onmousedown="toggleCheckbox('flash');" ontouchstart="toggleCheckbox('flash');">Flash</button></td></tr>
    </table>
   <script>
   function toggleCheckbox(x) {
     var xhr = new XMLHttpRequest();
     xhr.open("GET", "/action?go=" + x, true);
     xhr.send();
   }
   window.onload = document.getElementById("photo").src = window.location.href.slice(0, -1) + ":81/stream";
  </script>
  </body>
</html>
)rawliteral";

static esp_err_t index_handler(httpd_req_t *req){
  httpd_resp_set_type(req, "text/html");
  return httpd_resp_send(req, (const char *)INDEX_HTML, strlen(INDEX_HTML));
}

static esp_err_t stream_handler(httpd_req_t *req){
  camera_fb_t * fb = NULL;
  esp_err_t res = ESP_OK;
  size_t _jpg_buf_len = 0;
  uint8_t * _jpg_buf = NULL;
  char * part_buf[64];

  res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
  if(res != ESP_OK){
    return res;
  }

  while(true){
    fb = esp_camera_fb_get();
    if (!fb) {
      Serial.println("Camera capture failed");
      res = ESP_FAIL;
    } else {
      if(fb->width > 400){
        if(fb->format != PIXFORMAT_JPEG){
          bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
          esp_camera_fb_return(fb);
          fb = NULL;
          if(!jpeg_converted){
            Serial.println("JPEG compression failed");
            res = ESP_FAIL;
          }
        } else {
          _jpg_buf_len = fb->len;
          _jpg_buf = fb->buf;
        }
      }
    }
    if(res == ESP_OK){
      size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
      res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
    }
    if(res == ESP_OK){
      res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
    }
    if(fb){
      esp_camera_fb_return(fb);
      fb = NULL;
      _jpg_buf = NULL;
    } else if(_jpg_buf){
      free(_jpg_buf);
      _jpg_buf = NULL;
    }
    if(res != ESP_OK){
      break;
    }
    //Serial.printf("MJPG: %uB\n",(uint32_t)(_jpg_buf_len));
  }
  return res;
}

static esp_err_t cmd_handler(httpd_req_t *req){
  char*  buf;
  size_t buf_len;
  char variable[32] = {0,};
  
  buf_len = httpd_req_get_url_query_len(req) + 1;
  if (buf_len > 1) {
    buf = (char*)malloc(buf_len);
    if(!buf){
      httpd_resp_send_500(req);
      return ESP_FAIL;
    }
    if (httpd_req_get_url_query_str(req, buf, buf_len) == ESP_OK) {
      if (httpd_query_key_value(buf, "go", variable, sizeof(variable)) == ESP_OK) {
      } else {
        free(buf);
        httpd_resp_send_404(req);
        return ESP_FAIL;
      }
    } else {
      free(buf);
      httpd_resp_send_404(req);
      return ESP_FAIL;
    }
    free(buf);
  } else {
    httpd_resp_send_404(req);
    return ESP_FAIL;
  }

  sensor_t * s = esp_camera_sensor_get();
  //flip the camera vertically
  //s->set_vflip(s, 1);          // 0 = disable , 1 = enable
  // mirror effect
  //s->set_hmirror(s, 1);          // 0 = disable , 1 = enable

  int res = 0;
  
  if(!strcmp(variable, "up")) {
    if(servo1Pos <= 170) {
      servo1Pos += 10;
      servo1.write(servo1Pos);
    }
    Serial.println(servo1Pos);
    Serial.println("Up");
  }
  else if(!strcmp(variable, "left")) {
    if(servo2Pos <= 170) {
      servo2Pos += 10;
      servo2.write(servo2Pos);
    }
    Serial.println(servo2Pos);
    Serial.println("Left");
  }
  else if(!strcmp(variable, "right")) {
    if(servo2Pos >= 10) {
      servo2Pos -= 10;
      servo2.write(servo2Pos);
    }
    Serial.println(servo2Pos);
    Serial.println("Right");
  }
  else if(!strcmp(variable, "down")) {
    if(servo1Pos >= 10) {
      servo1Pos -= 10;
      servo1.write(servo1Pos);
    }
    Serial.println(servo1Pos);
    Serial.println("Down");
  }
  else if(!strcmp(variable, "flash")) {
    flash = !flash;
    digitalWrite(LED_BUILTIN, flash);
    Serial.println("flash");
  }
  else {
    res = -1;
  }

  if(res){
    return httpd_resp_send_500(req);
  }

  httpd_resp_set_hdr(req, "Access-Control-Allow-Origin", "*");
  return httpd_resp_send(req, NULL, 0);
}

void startCameraServer(){
  httpd_config_t config = HTTPD_DEFAULT_CONFIG();
  config.server_port = 80;
  httpd_uri_t index_uri = {
    .uri       = "/",
    .method    = HTTP_GET,
    .handler   = index_handler,
    .user_ctx  = NULL
  };

  httpd_uri_t cmd_uri = {
    .uri       = "/action",
    .method    = HTTP_GET,
    .handler   = cmd_handler,
    .user_ctx  = NULL
  };
  httpd_uri_t stream_uri = {
    .uri       = "/stream",
    .method    = HTTP_GET,
    .handler   = stream_handler,
    .user_ctx  = NULL
  };
  if (httpd_start(&camera_httpd, &config) == ESP_OK) {
    httpd_register_uri_handler(camera_httpd, &index_uri);
    httpd_register_uri_handler(camera_httpd, &cmd_uri);
  }
  config.server_port += 1;
  config.ctrl_port += 1;
  if (httpd_start(&stream_httpd, &config) == ESP_OK) {
    httpd_register_uri_handler(stream_httpd, &stream_uri);
  }
}

void setup() {
  WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector
  servo1.setPeriodHertz(50);    // standard 50 hz servo
  servo2.setPeriodHertz(50);    // standard 50 hz servo
  servoN1.attach(2, 1000, 2000);
  servoN2.attach(13, 1000, 2000);
  
  servo1.attach(SERVO_1, 1000, 2000);
  servo2.attach(SERVO_2, 1000, 2000);
  
  servo1.write(servo1Pos);
  servo2.write(servo2Pos);

  pinMode (LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, flash);

  Serial.begin(115200);
  Serial.setDebugOutput(false);
  
  camera_config_t config;
  config.ledc_channel = LEDC_CHANNEL_0;
  config.ledc_timer = LEDC_TIMER_0;
  config.pin_d0 = Y2_GPIO_NUM;
  config.pin_d1 = Y3_GPIO_NUM;
  config.pin_d2 = Y4_GPIO_NUM;
  config.pin_d3 = Y5_GPIO_NUM;
  config.pin_d4 = Y6_GPIO_NUM;
  config.pin_d5 = Y7_GPIO_NUM;
  config.pin_d6 = Y8_GPIO_NUM;
  config.pin_d7 = Y9_GPIO_NUM;
  config.pin_xclk = XCLK_GPIO_NUM;
  config.pin_pclk = PCLK_GPIO_NUM;
  config.pin_vsync = VSYNC_GPIO_NUM;
  config.pin_href = HREF_GPIO_NUM;
  config.pin_sscb_sda = SIOD_GPIO_NUM;
  config.pin_sscb_scl = SIOC_GPIO_NUM;
  config.pin_pwdn = PWDN_GPIO_NUM;
  config.pin_reset = RESET_GPIO_NUM;
  config.xclk_freq_hz = 20000000;
  config.pixel_format = PIXFORMAT_JPEG; 
  
  if(psramFound()){
    config.frame_size = FRAMESIZE_VGA;
    config.jpeg_quality = 10;
    config.fb_count = 2;
  } else {
    config.frame_size = FRAMESIZE_SVGA;
    config.jpeg_quality = 12;
    config.fb_count = 1;
  }
  
  // Camera init
  esp_err_t err = esp_camera_init(&config);
  if (err != ESP_OK) {
    Serial.printf("Camera init failed with error 0x%x", err);
    return;
  }
  // Wi-Fi connection
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  Serial.print("Camera Stream Ready! Go to: http://");
  Serial.println(WiFi.localIP());
  
  // Start streaming web server
  startCameraServer();
}

void loop() {
  
}

[링크 : https://randomnerdtutorials.com/esp32-cam-pan-and-tilt-2-axis/]

[링크 : https://raw.githubusercontent.com/RuiSantosdotme/ESP32-CAM-eBook/master/Code/Module_4/Pan_and_Tilt_Video_Streaming/Pan_and_Tilt_Video_Streaming.ino]

'embeded > esp32' 카테고리의 다른 글

esp32cam ptz 카메라 완료  (0) 2021.12.30
esp32 servo와 flash  (0) 2021.11.28
stm32 vs esp32  (0) 2021.11.27
eps32-cam 내장 LED  (0) 2021.11.24
포고플(PGP) 리버싱 자료  (0) 2021.08.19
Posted by 구차니
embeded/esp322021. 11. 27. 11:45

stm32f407 168mhz (cortex-m4)

stm32f103 72mhz (cortex-m3)

esp32 240mhz

 

아키텍쳐가 달라서 완벽한 비교도 아니니 참고 수준이지만

cortex m3 보단 낫고

cortex m4 와는 비근하지만 약간 쳐지는 수준안가?

 

[링크 : https://forum.arduino.cc/t/esp32-beats-stm32f407-and-is-48-times-faster-than-the-mega-2560/590788]

'embeded > esp32' 카테고리의 다른 글

esp32 servo와 flash  (0) 2021.11.28
esp32 flash on/off 버전  (0) 2021.11.27
eps32-cam 내장 LED  (0) 2021.11.24
포고플(PGP) 리버싱 자료  (0) 2021.08.19
esp32cam pwm  (0) 2021.08.08
Posted by 구차니
프로그램 사용/wayland2021. 11. 26. 22:41

compositor 보긴싫어 ㅠ

'프로그램 사용 > wayland' 카테고리의 다른 글

wayland 와 weston 문서  (0) 2021.12.02
wayland  (0) 2021.11.29
weston_log()  (0) 2021.11.25
wayland weston 구조  (0) 2021.11.24
wayland weston flow  (0) 2021.11.22
Posted by 구차니
Programming/wasm2021. 11. 25. 19:07

웹 어셈블리에서

인자로 입력 받아 결과를 웹에서 받는 예제를 찾아봄.

 

wasm으로 변환될 코드는 int 형을 받아서 int 형으로 출력할 것이고

#include <math.h>

extern "C" {

int int_sqrt(int x) {
  return sqrt(x);
}

}

 

빌드는 아래와 같이 emcc를 통해 ccall과 cwrap 방식으로 _int_sqrt 함수를 내보내라 인것 같은데

int_sqrt가 아니라 _int_sqrt는 calling convention때문인가?

$ emcc tests/hello_function.cpp -o function.html -s EXPORTED_FUNCTIONS='["_int_sqrt"]' -s EXPORTED_RUNTIME_METHODS='["ccall","cwrap"]'

 

웹에서 받는 법이 두가지라는데 cwrap으로 하면 int_sqrt 객체를 만들어서 한다는데 리턴이 되는진 모르겠고

ccall로 하면 인자를 던지는게 조금 귀찮아 지지만 var result에 결과가 들어가는 듯.

int_sqrt = Module.cwrap('int_sqrt', 'number', ['number'])
int_sqrt(12)
int_sqrt(28)

// Call C from JavaScript
var result = Module.ccall('int_sqrt', // name of C function
  'number', // return type
  ['number'], // argument types
  [28]); // arguments

// result is 5

[링크 : https://emscripten.org/docs/porting/connecting_cpp_and_javascript/Interacting-with-code.html]

 

 

[링크 : https://m.blog.daum.net/junek69/88]

[링크 : https://developer.mozilla.org/ko/docs/WebAssembly/C_to_wasm]

 

'Programming > wasm' 카테고리의 다른 글

wasm 배열 예제  (0) 2023.01.31
wasm text format  (0) 2021.10.26
wasm text 와 binary 상호변환  (0) 2021.10.26
emcc wasm 빌드  (0) 2021.10.25
wasm from c, cpp  (0) 2021.10.24
Posted by 구차니
프로그램 사용/wayland2021. 11. 25. 12:41

엔터는 쳐줘야 깔끔하게 나온다 -_ㅠ

(작성자가 \n 안넣어줘서 개판인 로그를 보았다는 결론)

 

[링크 : https://wayland.pages.freedesktop.org/weston/toc/libweston/log.html#_CPPv410weston_logPKcz]

 

+

23.10.18

로그를 위해 무언가를 설정은 해주어야 하는 듯..

weston_log_set_handler() must be called before using of weston_log().

'프로그램 사용 > wayland' 카테고리의 다른 글

wayland  (0) 2021.11.29
weston shell  (0) 2021.11.26
wayland weston 구조  (0) 2021.11.24
wayland weston flow  (0) 2021.11.22
wayland / weston  (0) 2021.11.18
Posted by 구차니
프로그램 사용/rtl-sdr2021. 11. 25. 12:26

아놔 재고부족으로 판매취소 ㅠㅠ

 

--

원래 3만원인데 쿠폰 받아서 2.7만원에 지름

일단 무배인데 아부지를 꼬셔서 1+1으로 된 다른 제품을 사려고 했는데 안넘어 오셔서 -_-

그냥 가장 싼걸로 구매함.

전에 사용하던 FC0012 보다는 R820T2가 좋은거라 더 높은 주파수를 받을 수 있는데

기존의 제품이 노후화가 된건지 신호가 약해서 FM 라디오도 잘 안들리는걸 보면

위성 신호는 저~~얼대 못 받을 듯.

 

새거 오면 회사에서 항공교신 라디오 들을수 있으려나?

 

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

noaa 위성사진 수신 실패  (0) 2021.11.28
wxtoimg ubuntu  (4) 2021.11.27
rtl-sdr gqrx direct sampling  (0) 2021.11.25
수신강도가 너무 약한건가?  (0) 2021.11.25
rtp sdr noaa  (0) 2021.11.24
Posted by 구차니
프로그램 사용/rtl-sdr2021. 11. 25. 12:16

장치명에 rtl=0만 써있는데 direct_samp=2 혹은 3을 넣어주면 된다고 한다.

해보니 100k~28.8M 까지 잡히는 듯

 

rtl=0,direct_samp=2

[링크 : https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/]

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

wxtoimg ubuntu  (4) 2021.11.27
rtl-sdr 지름  (0) 2021.11.25
수신강도가 너무 약한건가?  (0) 2021.11.25
rtp sdr noaa  (0) 2021.11.24
Blaze Video / FM 듣기  (0) 2021.01.16
Posted by 구차니
프로그램 사용/rtl-sdr2021. 11. 25. 10:15

바로 코앞에 관악산이 보여서 관악산 송신소 주파수로 듣는데도

지직지직 거리는걸 보면(물론 실내긴 하지만) 수신 감도가 좋지 않은 것 같은데..

새로 사야하나?!

 

hardware AGC를 켜면 3dBFS 정도 올라가는데도 지직거리네..

그래서 유튜버는 용인에서도 들린다고 하는데 난 안들리던건가?

[링크 : https://ko.wikipedia.org/wiki/대한민국_수도권의_방송_송신소·중계소_목록#관악산_송신소]

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

rtl-sdr 지름  (0) 2021.11.25
rtl-sdr gqrx direct sampling  (0) 2021.11.25
rtp sdr noaa  (0) 2021.11.24
Blaze Video / FM 듣기  (0) 2021.01.16
rtl sdr driver libusb  (0) 2021.01.05
Posted by 구차니
프로그램 사용/rtl-sdr2021. 11. 24. 22:21

'프로그램 사용 > rtl-sdr' 카테고리의 다른 글

rtl-sdr gqrx direct sampling  (0) 2021.11.25
수신강도가 너무 약한건가?  (0) 2021.11.25
Blaze Video / FM 듣기  (0) 2021.01.16
rtl sdr driver libusb  (0) 2021.01.05
sdr# PAL tv plugin  (0) 2021.01.05
Posted by 구차니

오늘 버려지는게 있길래

버리려다 줘워지려다 다시 버려지려고 해서 낼름 먹어버림

 

회사에서 버린거 주워왔으니 개인건가? ㅋㅋㅋ

 

그래도 나름 공장에서 쓰는거라 별거 아니것 같은데 8만원대 ㄷㄷ

[링크 : https://www.qlight.com/kr/products/?qpcateid=9&prodidx=162&prodcode=ST56L]

[링크 : http://hanwoolelec.co.kr/type6/item/showitem.php?item_no=3464]

[링크 : http://miraeautomall.com/product/st56l-큐라이트-시그널타워램프-선택옵션/80/]

'개소리 왈왈 > 직딩의 비애' 카테고리의 다른 글

수면부족..  (0) 2022.01.12
SMA TO BNC 도착  (0) 2021.12.17
외근  (0) 2021.11.23
축 늘어진다아~  (0) 2021.10.17
기절  (0) 2021.10.16
Posted by 구차니