粉末检波器

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了粉末检波器相关的知识,希望对你有一定的参考价值。

粉末检波器

 

01 末检波器


一、粉末检波器

  在早期人类无线电应用中, 检测高频无线电波相对比较低效和简单。 其中粉末检波器是在1890年,由法国科学家 Edouard Branly发明,称为 Cohere Detector。 它的基本结构就是在两个考的很近的电极之间分布一些细碎的金属粉末, 整个封装在一个玻璃罐内。

二、操作演示

  今天看到Youtube上的视频,UP主展示了它的检波功能,这也是我第一次看到它的运行。 开始的时候,这个粉末检波器两端呈现高阻状态, 当附近有电火花所形成的的高频电流流过分布检测器时,它就会呈现导通状态。 直到再次敲击它,它重新回到高阻状态。

  高频电磁波就是使用的家用点火器, 在点火的时候,两个电极之间会产生电火花。 这些电火花会在空间中产生高频电磁波, 进而会触发粉末检波器导通。 粉末检波器导通之后就已知保持低阻状态,指导被敲击回复松散状态。 这就是早期人类发送与接收电磁波的方法。

 

  结 ※


  文展示了粉末传感器的基本结构与工作特性。 看到它,你应该是站在了人类无线通讯的起始点了。


#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# DOPASTE.PY                     -- by Dr. ZhuoQing 2021-10-07
#
#       dopaste <ssss               # 【ssss.zip】
#       dopaste =ssss               # 【ssss】
#
# Note:
#============================================================
from head import *
import urllib.request
from PIL                    import Image
from io import BytesIO
import win32clipboard
import requests
import zipfile
import cv2
csdn_title = '写文章-CSDN博客'
#------------------------------------------------------------
outdir = r'd:\\temp'
microvideo_dir = r'd:\\Nutdisk\\MicroVideo'
microvideo_mooc = r'd:\\MooC\\MicroVideo'
MAX_LENGTH = 10
picselflag = 0
FILENAME_LENGTH     = 128
#------------------------------------------------------------
def data82data(data):
    data[data < 0x80] = 0
    data[data != 0] = 1
    datashape = shape(data)
    W = datashape[-1]//8
    H = datashape[0]
    data = data.reshape(size(data))
    bits = array([1,2,4,8,16,32,64,128])
    data = data.reshape(-1, 8) * bits
    data8 = sum(data.T,0).reshape(H,W)
    return data8
#------------------------------------------------------------
def img2databuf(imagefile):
    img = cv2.imread(imagefile)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY).astype(uint8)
    data = data82data(gray).astype(uint8)
    data = data.reshape(size(data)).tobytes()
    datalen = int.from_bytes(data[:4], 'little')
    filename = data[4:4+FILENAME_LENGTH].decode('gbk').strip('\\x00')
    return datalen, filename, data[4+FILENAME_LENGTH:]
def img2datafile(imagefile, datafile):
    datalen, filename, data = img2databuf(imagefile)
    printff(datalen, filename)
    with open(datafile, 'wb') as f:
        f.write(data[:datalen])
    return filename
#------------------------------------------------------------
def extractGIFimage(giffile, outdir):
    try:
        im = Image.open(giffile)
    except IOError:
        printf("Can not load %s ."%infile)
        sys.exit()
    i = 0
    mypalette = im.getpalette()
    firstfile = ''
    basenameonly = os.path.basename(giffile).split('.')[0]
    strid = basenameonly.find('_-')
    if strid > 0: basenameonly = basenameonly[:strid]
    try:
        while True:
            im.putpalette(mypalette)
            new_im = Image.new("RGB", im.size)
            new_im.paste(im)
            savefile = os.path.join(outdir, '%s_%d.JPG'%(basenameonly, i))
            new_im.save(savefile)
            if i == 0: firstfile = savefile
            i += 1
            im.seek(im.tell() + 1)
    except EOFError:
        pass        # end of sequence
                    #
    im.close()
    return firstfile
#------------------------------------------------------------
def str2bsim(s):
    if s.find('![N]') >= 0: return 0
    if s.find('![n]') >= 0: return 0
    if s.find('![O]') >= 0: return 1
    if s.find('![o]') >= 0: return 1
    if s.find('![L]') >= 0: return 2
    if s.find('![l]') >= 0: return 2
    if s.find('![S]') >= 0: return 1
    if s.find('![s]') >= 0: return 1
    if s.find('![A]') >= 0: return 4
    if s.find('![a]') >= 0: return 4
    if s.find('![F]') >= 0: return 4
    if s.find('![f]') >= 0: return 4
    if s.find('![R]') >= 0: return 3
    if s.find('![r]') >= 0: return 3
    if s.find('![P]') >= 0: return 5
    if s.find('![p]') >= 0: return 5
    if s.find('![Q]') >= 0: return 6
    if s.find('![q]') >= 0: return 6
    if s.find('![S]') >= 0: return 7
    if s.find('![s]') >= 0: return 7
    if s.find('![1]') >= 0: return 9
    if s.find('![2]') >= 0: return 10
    if s.find('![3]') >= 0: return 11
    if s.find('![4]') >= 0: return 12
    if s.find('![5]') >= 0: return 13
    if s.find('![6]') >= 0: return 14
    if s.find('![7]') >= 0: return 15
    if s.find('![8]') >= 0: return 16
    if s.find('![9]') >= 0: return 17
    if s.find('![0]') >= 0: return 18
    return -1
#------------------------------------------------------------
def extractMPGimage(mpegfile, outdir):
    fnonly = os.path.basename(mpegfile).split('.')[0]
    cam = cv2.VideoCapture(mpegfile)
    printf(mpegfile)
    currentframe = 0
    while True:
        ret, frame = cam.read()
        if ret:
            filename = '%s_%04d.JPG'%(fnonly, currentframe)
            outfile = os.path.join(outdir, filename)
            cv2.imwrite(outfile, frame)
            currentframe += 1
        else:
            break
    cam.release()
    return fnonly
#------------------------------------------------------------
def send_to_clipboard(clip_type, data):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    win32clipboard.SetClipboardData(clip_type, data)
    win32clipboard.CloseClipboard()
def image2clipboard(filename):
    image = Image.open(filename)
    output = BytesIO()
    image.convert('RGB').save(output, 'BMP')
    data = output.getvalue()[14:]
    output.close()
    send_to_clipboard(win32clipboard.CF_DIB, data)
#------------------------------------------------------------
def zip2dir(filename, dirs):
    dopfile = ''
    basedir = ''
    bsirfilename = ''
    with zipfile.ZipFile(filename, 'r') as f:
        for fn in f.infolist():
            fns = str(fn).split()[1]
            if fns.find('.bsir') >= 0 or fns.find('.BSIR') >= 0:
                fnss = fns.split('\\'')
                basedir = fnss[1].split('/')[0]
                bsirfilename = fnss[1]
                dopfile = os.path.join(dirs, fnss[1])
                break
        f.extractall(dirs)
    bsirname = dopfile.replace('/', '\\\\')
    newbasedir = ''
    for i in range(1000):
        newbasedir = '%s%d'%(basedir, i)
        newdirs = os.path.join(dirs, newbasedir)
        if not os.path.isdir(newdirs):
            break
    if not os.path.isdir(newdirs):
        origindir = os.path.join(dirs, basedir)
        os.rename(origindir, newdirs)
        dopfile = os.path.join(dirs, bsirfilename.replace(basedir, newbasedir))
        bsirname = dopfile.replace('/', '\\\\')
#    printf(bsirname)
#    exit()
    return bsirname
#------------------------------------------------------------
def deleteformular(str):
    sdim = str.split('$$')
    if len(sdim) < 2: return str
    snew = []
    for s in sdim:
        flag = 0
        for a in s:
            if ord(a) > 0x100:
                flag = 1
                break
        if flag > 0: snew.append(s)
    sdim = (' '.join(snew)).split('$')
    snew = []
    for s in sdim:
        flag = 0
        for a in s:
            if ord(a) > 0x100:
                flag = 1
                break
        if flag > 0: snew.append(s)
        else: snew.append(' ')
    sdim = (''.join(snew)).split('<')
    snew = []
    for s in sdim:
        ssid = s.find('>')
        if ssid >= 0: snew.append(s[ssid+2:])
        else: snew.append(s)
    strnew = ''.join(snew)
    return strnew
#------------------------------------------------------------
def stringflag(s):
    if s.find('&thinsp;') >= 0: return 1
    if s.find('】】') >= 0:     return 1
    if s.find('【】') >= 0:     return 1
    if s.find('#pic_left') >= 0: return 1
    if s.find('<span id=【') >= 0: return 1
    startid = s.find('![')
    endid = s.find('](http')
    if startid >= 0 and endid >= 0 and s.find('#pic_') >= 0:
        sss = s[startid+2:endid]
        if sss.find('▲')     >= 0: return 0
        if sss.find('图')     >= 0: return 0
        if sss.find('-')      < 0:  return 0
        return 1
    return 0
#------------------------------------------------------------
strall = clipboard.paste().split('\\n')
printf(sys.argv)
if sys.argv[-1] != '*':
    tspsendwindowkey(csdn_title, "c", control=1)
    csdnall = clipboard.paste()
else:
    sys.argv = sys.argv[:-1]
csdnall = clipboard.paste()
if len(sys.argv) > 1:
    if sys.argv[1][:1] == '<':
        fname = os.path.join(microvideo_mooc, '%s.ZIP'%sys.argv[1][1:])
        if os.path.isfile(fname):
            csdnall = "【%s.ZIP】"%sys.argv[1][1:]
            strall  = ""
        sys.argv = sys.argv[:1]
    elif sys.argv[1][:1] == '=':
        fdim = os.listdir(microvideo_mooc)
        fname = sys.argv[1][1:]
        flen = len(fname)
        if flen > 0:
            for f in fdim:
                if f[:flen] == fname:
                    csdnall = "【%s】"%fname
                    strall = ""
                    break
            sys.argv = sys.argv[:1]
#------------------------------------------------------------
if csdnall.count('|') > 3 and csdnall.count('-') < 6 and csdnall.find('M1') >= 0 and csdnall.find('M2') >= 0:
    firstline = csdnall
    tspsendwindowkey(csdn_title, "%c"%VK_RIGHT, vk=1, noreturn=1)
    tspsendwindowkey(csdn_title, " ", noreturn=1)
    tspsendwindowkey(csdn_title, "ac", control=1, noreturn=1)
    tspsendwindowkey(csdn_title, "c", control以上是关于粉末检波器的主要内容,如果未能解决你的问题,请参考以下文章

当磁粉遇到高压

关于磁粉的测试

为啥粉末状化学反应速率更快

偶然看到的面试算法题_最短时间找出十包粉末中的两蓝粉末。

今天看到别人的面试算法题,求找出十包粉末中两包蓝色粉末的最短时间

RPC盖板(活性粉末混凝土盖板)怎样养护