Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Как сделать осциллограф со звуковой карты за 1$?

27/01/2017

Проектов по созданию осциллографов из разного рода аудиокарт немало. Выполнить модификацию карты с тем, чтобы превратить ее в полезный для электронщика инструмент, не так сложно, но зачастую встает вопрос цены. И здесь приходит на помощь интересный вариант с ценой вопроса около 1 доллара США.

Опрос: Изготавливали ли Вы что-нибудь своими руками? (Кол-во голосов: 1980)

Да, много чего

Да, было разок

Нет, пока изучаю для того, чтобы изготовить

Нет, не собираюсь

Чтобы проголосовать, кликните на нужный вариант ответа. Результаты

Именно столько стоит внешняя звуковая карта, которая изображена на анонсной фотографии. Купить это чудо техники можно на электронной барахолке (во многих городах такие есть), или же на интернет-аукционе, где всегда есть, из чего выбрать.

Маркировка текущего девайса — HX2010-0705, выпущен он в конце 2013 года.

Устройство является гибридным, это звуковая карта + HID input. Что касается последнего, то эта часть предназначена для регулировки громкости и выполнения некоторых других задач, включая работу с медиаклавиатурой.

Дамп USB дескриптора:

VID=0x0D8C PID=0x000C
Product string: C-Media USB Headphone Set
Audio Device Class + HID (composite device)

Судя по всему, чип внутри аналогичен чипу, установленному в недорогих звуковых картах «C-Media», без каких-либо кнопок.

Примечания:

  • аудиовход — моно, и два контакта не должны вводить в заблуждение, они замкнуты друг на друга; DLL здесь общий, может работать как со стерео-картами, так и с моно. Второй канал можно отключить самостоятельно.

  • Частота дискретизации — 44100 и 48000 Гц;
  • 2,23 В на С6; ток короткого замыкания 20 мА, при добавлении резистора на 120к этот показатель можно снизить до 8 мА;
  • Резистор на 120к является наиболее недорогим методом увеличения диапазона измерения до 0-6В;
  • AGC нужно убрать, настройки должны быть следующими:

Конденсатор C6 нужно отпаять, его емкость составляет 80 нФ, и он может серьезно ограничить возможности нашего осциллографа.

Настройки:

Калибровку лучше всего проводить при помощи соответствующей функциии в GUI. Вот пример работы того, что получилось в результате:

ПО для работы:

Автор: marks

Взято с сайта: https://geektimes.ru/post/265280/

2 Часть

Иногда интересно посмотреть, что же происходит на некоторых выходах схемы, а осциллограф — довольно дорогое удовольствие. Тут-то и может помочь довольно нехитрая схема по превращению звуковой карты в некоторое подобие осциллографа.

Сразу оговорюсь, что данный девайс не сможет работать с постоянными напряжениями, но увидеть, например, появился ли ШИМ на ножках вполне реально. Схема до безобразия проста:

взято с 1injener.ru/category/cxem…af_iz_zvukovoi_karty.html

Поделитесь с друзьями статьей: Оцените статью, для нас это очень важно:

Проголосовавших: 2 чел.
Средний рейтинг: 3.5 из 5.

Запоминающий осциллограф со звуковой картой

Справочник статей


Базовые знания

Если у вас нет инженерного образования, не беспокойтесь о том, что такое осциллограф и почему вы должны добавить классификатор хранилища. Давайте сосредоточимся на этом: что такое аудиосигнал? Частотный диапазон звука, который могут слышать наши человеческие уши, находится между 20 Гц и 20000 Гц. Те, которые ниже нижнего предела, называются инфразвуковыми волнами, а те, которые выше верхнего предела, называются ультразвуком. Майк превращает звук в электрический ток, и это звуковой сигнал. Звуковой сигнал имеет изменения частоты и амплитуды. Запоминающий осциллограф может визуально отображать звуковой сигнал в течение определенного периода времени на экране.

Частота дискретизации

Звук непрерывный, и аудиосигнал, выводимый Майком, также непрерывен. Компьютеры могут обрабатывать только оцифрованную информацию, поэтому им необходимо оцифровывать аудиосигналы – это так называемое аналого-цифровое (слово) преобразование или аналого-цифровое преобразование. Его суть заключается в измерении размера сигнала через каждый фиксированный интервал. Измеренное значение используется для аппроксимации амплитуды сигнала в этом интервале времени. Если измеренная частота более чем в два раза превышает максимальную частоту сигнала, аналого-цифровое преобразование может обеспечить хорошие результаты. Эта частота измерения является частотой дискретизации.Один из промышленных стандартов – 44100 Гц, что чуть более чем в два раза превышает верхний предел звука.

Точность квантования

Данные, полученные во время каждой выборки в процессе аналого-цифрового преобразования, должны быть сохранены. Размер собранного сигнала, если он выражается в одном байте, динамический диапазон сигнала составляет от -128 до 127, а в выражении в двух байтах динамический диапазон сигнала составляет от -32768 до 32767. Это называется точностью квантования.

Модель производителя / потребителя

Давайте представим себе сцену с пельменями: кто-то отвечает за раскатывание шкур, а свернутые шкуры пельмени свертываются одна за другой, кто-то отвечает за пельмени, а один снимается с готовых шкур пельменей и ставит начинку. 2. Сожмите и поместите код на плоскую тарелку, кто-то отвечает за приготовление вареников и уберите по одной тарелке за раз. Роллинг, пельмени и варка пельменей – это три взаимозависимых и независимых процесса. Первый процесс – производитель, а второй – потребитель. Буфер между производителем и потребителем используется в качестве изоляции для максимизации Чтобы устранить взаимодействие между ними.


Генеральный план

Цели дизайна

Для удобства описания я вставлю окончательный эффект ниже.

Функциональное планирование

  • Поддержка двух режимов захвата в реальном времени и триггера захвата
  • В режиме запуска вы можете установить порог амплитуды запуска и количество порогов запуска
  • Нажмите кнопку «Пуск», чтобы начать сбор данных и отображать их синхронно (поддержка сочетаний клавиш)
  • Нажмите кнопку остановки, чтобы остановить сбор данных (поддержка сочетаний клавиш)
  • Регулируемая шкала амплитуды дисплея (поддержка колесика мыши)
  • Регулируемая ширина окна
  • Быстро сдвиньте временное окно на оси времени данных для быстрого позиционирования данных
  • Может сохранить текущие данные в виде файла (поддерживает сочетания клавиш)
  • Открыть файлы исторических данных (поддержка горячих клавиш)
  • Может сохранить текущий сигнал экрана в виде файла изображения (поддерживает сочетания клавиш)
  • Автоматическая адаптация к различным разрешениям экрана, автоматическая настройка интерфейса при изменении размера окна

Планирование интерфейса

  • Экран разделен на две зоны: центральная зона и правая рабочая зона
  • Основным элементом центральной области является экран осциллографа, а экран осциллографа представляет собой ползунок для позиционирования момента времени данных.
  • Рабочая область справа, сверху вниз, по порядку: ручка амплитуды, ручка ширины временного окна, выбор режима, выбор порога амплитуды, выбор порога количества и кнопка пуска / остановки

Структура программы

Файл или папка объяснение
DSO.py
Основная программа, реализация рамок программы
audioCapture.py Модуль захвата звука, определяет класс захвата звука AudioCapture
plotPanel.py Модуль построения данных, определяет класс экрана осциллографа WaveScreen
res Папка ресурса
data Папка пользовательских данных

Сбор данных со звуковой карты

Определение класса звуковой коллекции

Модуль pyaudio является наиболее часто используемым модулем звуковой карты для python. Вы можете использовать pip install pyaudio для его загрузки и установки. Мы определили класс AudioCapture в файле audioCapture.py для сбора данных со звуковой карты.

Источник:audioCapture.py



import pyaudio
import numpy as np

class AudioCapture(object):
    '' 'Захват аудио через звуковую карту и сохранение данных в очереди' ''

    def __init__(self, dq, mode=0, level=256, over=32):
        '' 'Конструктор' ''

        self.dq = dq                                
        self.mode = mode                            
        self.level = level                          
        self.over = over                            
        self.chunk = 1024                           
        self.running = False                        

    def set(self, **kwds):
        '' 'Установить параметры' ''

        if 'mode' in kwds:
            self.mode = kwds['mode']
        if 'level' in kwds:
            self.level = kwds['level']
        if 'over' in kwds:
            self.
over = kwds['over'] def run(self): '' 'Захват аудио' '' pa = pyaudio.PyAudio() stream = pa.open( format = pyaudio.paInt16, channels = 1, rate = 44100, frames_per_buffer = self.chunk, input = True ) self.running = True while self.running: data = stream.read(self.chunk) data = np.fromstring(data, dtype=np.int16) if self.mode == 0 or np.sum([data > self.level, data < -self.level]) > self.over: try: self.dq.put(data, block=False) except: print 'The data queue is Full!' pass stream.close() pa.terminate() def stop(self): '' 'Остановить приобретение' '' self.running = False

Этот код определяет класс захвата звука (AudioCapture), который должен предоставлять очередь данных при создании экземпляра. Данные, считываемые со звуковой карты, имеют тип str, который необходимо преобразовать в тип массива numpy с помощью метода fromstring () numpy. Также обратите внимание, что при записи данных в очередь они не блокируются. Если очередь заполнена, возникает исключение, поэтому вам нужно перехватить исключение.

Примеры потребителей / производителей

Следующий код демонстрирует типичный шаблон «производитель / потребитель»: дочерний поток отвечает за сбор данных и запись в очередь, а дочерний поток отвечает за выборку данных из очереди и их отображение. В нем также показано, как создавать и использовать очереди, а также как создавать потоки и управлять ими.

import Queue
import threading
import time






dq = Queue.Queue(100)
ac = AudioCapture(dq)

def read_queue(dq):
    while True:
        data = dq.get(block=True)
        print data.min(), data.max(), data.var()

reading_thread = threading.Thread(target=read_queue, args=(dq,))
reading_thread.setDaemon(True)
reading_thread. start()

capture_thread = threading.Thread(target=ac.run)
capture_thread.setDaemon(True)
capture_thread.start()

cmd = raw_input('Waiting...Press any key to stop.')
ac.stop()

while capture_thread.isAlive():
    
    time.sleep(0.01)

print 'Game Over.'

Основы макета wxPython

Простейшая оконная процедура

Тысячи высотных зданий выросли. Почти все оконные программы могут начинаться с базовой структуры ниже.

Источник:base.py



import sys, os
import wx, win32api

APP_NAME = u'Digital Storage Oscilloscope'
APP_ICON_NAME = "res/wave.ico"

class mainFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, APP_NAME, style=wx.DEFAULT_FRAME_STYLE)
        self.Maximize()
        self.SetBackgroundColour(wx.Colour(240, 240, 240))

        
        if hasattr(sys, "frozen") and getattr(sys, "frozen") == "windows_exe":
            exeName = win32api.GetModuleFileName(win32api. GetModuleHandle(None))
            icon = wx.Icon(exeName, wx.BITMAP_TYPE_ICO)
        else :
            icon = wx.Icon(APP_ICON_NAME, wx.BITMAP_TYPE_ICO)
        self.SetIcon(icon)        

class mainApp(wx.App):
    def OnInit(self):
        frame = mainFrame(None)
        frame.Show()
        return True

if __name__ == "__main__":
    app = mainApp(redirect=True, filename="debug.txt")
    app.MainLoop()

Метод макета интерфейса

Прежде чем приступить к разработке пользовательского интерфейса, необходимо сначала понять теорию расположения элементов управления wxPython. Почти все элементы управления wx имеют такие свойства, как parent / id / pos / size / style, где pos – это сокращение от позиции, представляющее собой двукратный кортеж, представляющий расстояние в пикселях от верхнего левого угла элемента управления до верхнего левого угла его родительского элемента управления. Мы можем реализовать расположение элементов управления, установив pos каждого элемента управления, который является так называемым методом статического расположения. При изменении размера окна программы статический макет затрудняет поддержание хорошего эффекта отображения, поэтому более распространенным методом макета является использование элементов управления макетом.

wx.BoxSizer является наиболее часто используемым элементом управления макетом и может рассматриваться как контейнер элемента управления. Загрузите все элементы управления в wx.BoxSizer, расположенные вертикально или горизонтально. В отличие от большинства элементов управления, которые имеют определенное изображение, wx.BoxSizer невидим и невидим. При создании экземпляра вам не нужны такие свойства, как parent / id / pos / size / style, вам нужно только указать, является ли он горизонтальным или вертикальным. Следующий код демонстрирует, как реализовать макет с помощью wx.BoxSizer.



import sys, os
import wx, win32api

APP_NAME = u'Digital Storage Oscilloscope'
APP_ICON_NAME = "res/wave.ico"

class mainFrame(wx.Frame):
    def __init__(self, parent):
        wx. Frame.__init__(self, parent, -1, APP_NAME, style=wx.DEFAULT_FRAME_STYLE)
        self.SetBackgroundColour(wx.Colour(240, 240, 240))
        self.SetSize((400,200))
        self.Center()

        
        if hasattr(sys, "frozen") and getattr(sys, "frozen") == "windows_exe":
            exeName = win32api.GetModuleFileName(win32api.GetModuleHandle(None))
            icon = wx.Icon(exeName, wx.BITMAP_TYPE_ICO)
        else :
            icon = wx.Icon(APP_ICON_NAME, wx.BITMAP_TYPE_ICO)
        self.SetIcon(icon)

        
        st1 = wx.StaticText(self, -1, u'Amplitude', style=wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE)
        st2 = wx.StaticText(self, -1, u«Время», style=wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE)
        tc11 = wx.TextCtrl(self, -1, u'', style=wx.TE_CENTER)
        tc12 = wx.TextCtrl(self, -1, u'', style=wx.TE_CENTER)
        tc21 = wx.TextCtrl(self, -1, u'', style=wx.TE_CENTER)
        tc22 = wx.TextCtrl(self, -1, u'', style=wx.TE_CENTER)
        btn = wx.Button(self, -1, u'OK')

        sizer_0 = wx. BoxSizer(wx.VERTICAL)  
        sizer_11 = wx.BoxSizer()            
        sizer_12 = wx.BoxSizer()            

        
        sizer_11.Add(st1, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10)
        sizer_11.Add(tc11, 2, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0)
        sizer_11.Add(tc12, 1, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5)

        
        sizer_12.Add(st2, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT, 10)
        sizer_12.Add(tc21, 2, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 0)
        sizer_12.Add(tc22, 3, wx.ALIGN_CENTER_VERTICAL|wx.LEFT, 5)

        
        sizer_0.Add(sizer_11, 0, wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT, 20)
        sizer_0.Add(sizer_12, 0, wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT, 20)
        sizer_0.Add(btn, 1, wx.EXPAND|wx.ALL, 20)

        
        self.SetSizer(sizer_0)
        self.SetAutoLayout(True)


class mainApp(wx.App):
    def OnInit(self):
        frame = mainFrame(None)
        frame.Show()
        return True

if __name__ == "__main__":
    app = mainApp()
    app.MainLoop()

Изменив размер окна, вы увидите, что позиция управления будет регулироваться автоматически. Эффект отображения показан на рисунке ниже.


Дизайн интерфейса

Прототип экрана осциллографа

Чтобы сохранить четкую структуру кода, мы разделяем код экрана осциллографа и сохраняем его как модуль.Имя файла – plotPanel.py, Класс экрана осциллографа WaveScreen наследуется от класса wx.Panel. Класс wx.Panel – это элемент управления панели в дизайне пользовательского интерфейса, на котором можно размещать кнопки, изображения, текст, поля ввода и другие элементы управления.

plotPanel_0.py



import wx

class WaveScreen(wx.Panel):
    '' 'Scope Display Screen' ''

    def __init__(self, parent):
        '' 'Конструктор' ''

        wx.Panel.__init__(self, parent, -1, style=wx.EXPAND)
        self.SetBackgroundColour(wx.Colour(0, 0, 0))

        self.parent = parent
        self.ML,self.MR,self.MT,self.MB = 70,70,40,40 

        self.Bind(wx.EVT_SIZE, self.onSize)
        self.Bind(wx.EVT_PAINT, self.onPaint)

    def onSize(self, evt):
        '' 'Ответить на изменения размера окна' ''

        w, h = self. parent.GetSize()
        self.w_scr, self.h_scr = w-176, h-118               
        self.rePaint()

    def onPaint(self, evt):
        '' 'Ответить на событие перерисовки' ''

        dc = wx.PaintDC(self)
        self.plot(dc)

    def rePaint(self):
        '' 'Ручная перерисовка' ''

        dc = wx.ClientDC(self)
        self.plot(dc)

    def plot(self, dc):
        '' 'Draw Screen' ''

        dc.Clear()

        
        dc.SetPen(wx.Pen(wx.Colour(224,0,0), 1))
        dc.DrawLine(self.ML, self.MT, self.w_scr-self.MR, self.MT)
        dc.DrawLine(self.ML, self.h_scr-self.MB, self.w_scr-self.MR, self.h_scr-self.MB)
        dc.DrawLine(self.ML, self.MT, self.ML, self.h_scr-self.MB)
        dc.DrawLine(self.w_scr-self.MR, self.MT, self.w_scr-self.MR, self.h_scr-self.MB)

Каркасный прототип

В соответствии с общим планом проектирования на основе простейшей структуры оконной процедуры применяется управление управлением компоновкой, а интерфейс цифрового запоминающего осциллографа записывается в виде кода следующим образом. Этот код содержит только элементы управления и макеты элементов управления и не содержит никакой логики обработки. Эффект запуска дисплея точно такой же, как и у цели дизайна, но вы ничего не можете сделать, кроме как щелкнуть меню «О программе».

DSO_0.py



import sys, os
import wx, win32api
import wx.lib.buttons as buttons
import wx.lib.agw.knobctrl as KC
from wx.lib.wordwrap import wordwrap


from plotPanel_0 import *

APP_NAME = u'Digital Storage Oscilloscope'
APP_ICON_NAME = "res/wave.ico"
APP_VERSION = '0.99'

class mainFrame(wx.Frame):
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, -1, APP_NAME, style=wx.DEFAULT_FRAME_STYLE)
        self.Maximize()
        self.SetBackgroundColour(wx.Colour(240, 240, 240))

        
        if hasattr(sys, "frozen") and getattr(sys, "frozen") == "windows_exe":
            exeName = win32api.GetModuleFileName(win32api.GetModuleHandle(None))
            icon = wx.Icon(exeName, wx. BITMAP_TYPE_ICO)
        else :
            icon = wx.Icon(APP_ICON_NAME, wx.BITMAP_TYPE_ICO)
        self.SetIcon(icon)

        self.__create_menu_bar()                        
        self.__create_status_bar()                      

        self.mode_ch = [u«Живой режим», u«Режим триггера»]          
        self.level_ch = ['128', '256', '512', '1024']   
        self.over_ch = ['1', '8', '32', '128']          

        
        
        sizer_max = wx.BoxSizer()                       
        sizer_left = wx.BoxSizer(wx.VERTICAL)           
        sizer_right = wx.BoxSizer(wx.VERTICAL)          

        
        self.screen = WaveScreen(self)

        
        self.label_knob_V = wx.StaticText(self, -1, u«Регулировка амплитуды», style=wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE)
        self.knob_V = KC.KnobCtrl(self, -1, size=(120, 120))
        self.knob_V.SetBackgroundColour(wx.Colour(240, 240, 240))
        self.knob_V.SetTags(range(0, 171, 10))
        self.knob_V.SetAngularRange(-45, 225)
        self. knob_V.SetValue(150)

        
        self.label_knob_H = wx.StaticText(self, -1, u«Регулировка ширины», style=wx.ALIGN_CENTER|wx.ST_NO_AUTORESIZE)
        self.knob_H = KC.KnobCtrl(self, -1, size=(120, 120))
        self.knob_H.SetBackgroundColour(wx.Colour(240, 240, 240))
        self.knob_H.SetTags(range(0, 131, 10))
        self.knob_H.SetAngularRange(-45, 225)
        self.knob_H.SetValue(40)

        
        self.mode_rb = wx.RadioBox(self,
            id              = -1,
            label           = u«Выбор режима»,
            choices         = self.mode_ch,
            majorDimension  = 1,
            style           = wx.RA_SPECIFY_COLS,
            name            = 'mode'
        )

        self.level_rb = wx.RadioBox(self,
            id              = -1,
            label           = u«Порог срабатывания»,
            choices         = self.level_ch,
            majorDimension  = 2,
            style           = wx.RA_SPECIFY_COLS,
            name            = 'level'
        )

        self. over_rb = wx.RadioBox(self,
            id              = -1,
            label           = u«Количество триггеров»,
            choices         = self.over_ch,
            majorDimension  = 2,
            style           = wx.RA_SPECIFY_COLS,
            name            = 'over'
        )

        self.mode_rb.SetSelection(0)
        self.level_rb.SetSelection(1)
        self.over_rb.SetSelection(2)

        
        self.start_btm = wx.Bitmap(os.path.join('res', 'start.png'), wx.BITMAP_TYPE_ANY)
        self.stop_btm = wx.Bitmap(os.path.join('res', 'stop.png'), wx.BITMAP_TYPE_ANY)
        self.op_btn = buttons.GenBitmapToggleButton(self, -1, bitmap=self.start_btm, size=(-1,80))
        self.op_btn.SetBackgroundColour(wx.Colour(192, 224, 224))
        self.op_btn.SetBitmapSelected(self.stop_btm)

        
        self.slider = wx.Slider(self, -1, 0, 0, 100, size=wx.DefaultSize, style=wx.SL_HORIZONTAL)

        
        sizer_left.Add(self.screen, 1, wx.EXPAND|wx.ALL, 0)
        sizer_left. Add(self.slider, 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5)

        sizer_right.Add(self.knob_V, 0, wx.TOP, 0)
        sizer_right.Add(self.label_knob_V, 0, wx.EXPAND|wx.TOP, 10)
        sizer_right.Add(self.knob_H, 0, wx.TOP, 20)
        sizer_right.Add(self.label_knob_H, 0, wx.EXPAND|wx.TOP, 10)
        sizer_right.Add(self.mode_rb, 0, wx.EXPAND|wx.TOP, 40)
        sizer_right.Add(self.level_rb, 0, wx.EXPAND|wx.TOP, 20)
        sizer_right.Add(self.over_rb, 0, wx.EXPAND|wx.TOP, 20)
        sizer_right.Add(self.op_btn, 0, wx.EXPAND|wx.TOP, 30)

        sizer_max.Add(sizer_left, 1, wx.EXPAND|wx.ALL, 0)
        sizer_max.Add(sizer_right, 0, wx.ALL, 20)

        
        self.SetSizer(sizer_max)
        self.SetAutoLayout(True)

    def __create_menu_bar(self):
        '' 'Создать панель меню' ''

        id_open = wx.NewId()
        id_save_data = wx.NewId()
        id_save_img = wx.NewId()
        id_quit = wx.NewId()
        id_start = wx.NewId()
        id_stop = wx.NewId()
        id_about = wx. NewId()

        mb = wx.MenuBar()

        m = wx.Menu()
        m.Append(id_open, u'Открыть файл данных \ tCtrl + O', u«Открыть сохраненный файл данных»)
        m.Append(id_save_data, u'Сохранить данные как файл \ tCtrl + S', u«Сохранить текущие данные в файл»)
        m.Append(id_save_img, u'Сохранить форму волны как изображение \ tCtrl + P', u«Сохранить текущий сигнал как изображение»)
        m.AppendSeparator()
        m.Append(id_quit, u'Выход \ tCtrl + C', u«Выход из системы»)
        mb.Append(m, u'& Файл')

        m = wx.Menu()
        m.Append(id_start, u'Start \ tCtrl + R', u«Начало сбора данных»)
        m.Append(id_stop, u'Stop \ tCtrl + T', u«Остановить сбор данных»)
        mb.Append(m, u«& Операция»)

        m = wx.Menu()
        m.Append(id_about, u'About \ tCtrl + A', '')
        mb.Append(m, u'& Помощь')

        self.SetMenuBar(mb)
        self.Bind(wx.EVT_MENU, self.onMenuOpen, id=id_open)
        self.Bind(wx.EVT_MENU, self.onMenuSaveData, id=id_save_data)
        self.Bind(wx.EVT_MENU, self.onMenuSaveImage, id=id_save_img)
        self.Bind(wx.EVT_MENU, self.OnMenuQuit, id=id_quit)
        self.Bind(wx.EVT_MENU, self.onMenuStart, id=id_start)
        self.Bind(wx.EVT_MENU, self.onMenuStop, id=id_stop)
        self.Bind(wx.EVT_MENU, self.onMenuAbout, id=id_about)

    def __create_status_bar(self):
        '' 'Создать строку состояния' ''

        self.statusbar = self.CreateStatusBar()
        self.statusbar.SetFieldsCount(3)
        self.statusbar.SetStatusWidths([-1,-3, -1])
        self.statusbar.SetStatusStyles([wx.SB_RAISED, wx.SB_RAISED, wx.SB_RAISED])
        self.statusbar.SetStatusText(u'[email protected], Jilin University', 2)

    def onMenuOpen(self, evt):
        '' 'Открыть файл данных' ''

        pass

    def onMenuSaveData(self, evt):
        '' 'Сохранить данные как файл' ''

        pass

    def onMenuSaveImage(self, evt):
        '' 'Сохранить как изображение' ''

        pass

    def OnMenuQuit(self, evt):
        '' 'Закрыть окно' ''

        pass

    def onMenuStart(self, evt):
        '' 'Ответьте, чтобы начать меню захвата' ''

        pass

    def onMenuStop(self, evt):
        '' 'Ответьте, чтобы остановить захват меню' ''

        pass

    def onMenuAbout(self, evt):
        '' 'О' ''

        about = wx.AboutDialogInfo()
        about.Name = APP_NAME
        about.Version = APP_VERSION
        about.Copyright = u«(С) Сюй Янь, Школа математики, Университет Цзилинь»
        about.Description = wordwrap(
            u«Осциллограф для хранения аудиосигналов - это программное обеспечение, использующее звуковую карту компьютера для сбора входных аудиосигналов и вывода аудиоданных на экран.
            u«Может работать в режиме реального времени или в режиме запуска, а также сохранять данные и сигналы в виде файлов».
            u«\ n \ nВы можете использовать его для записи и отображения своего свистка или для поиска все более интересных приложений».
            u«Раньше я наблюдал за током, создаваемым проводником, перерезавшим магнитное поле».
            u«Если вы хотите повторить мой эксперимент, пожалуйста, будьте осторожны, чтобы не повредить звуковую карту или компьютер. ',
            400, wx.ClientDC(self), margin=5)
        
        about.Developers = [u"Сюй Ян" ]
        licenseText = u«Некоммерческое использование, воспроизведение, распространение и вторичное развитие приветствуются.
        about.License = wordwrap(licenseText, 400, wx.ClientDC(self), margin=5)

        wx.AboutBox(about)


class mainApp(wx.App):
    def OnInit(self):
        frame = mainFrame(None)
        frame.Show()
        return True

if __name__ == "__main__":
    app = mainApp()
    app.MainLoop()

Логическая обработка

Объявите некоторые важные свойства главного окна

Согласно плану, осциллограф имеет два режима работы: режим реального времени и режим запуска. Элемент управления выбором режима (RedioButton) может изменять режим работы, и поток сбора данных должен выбрать соответствующий метод обработки в соответствии с текущим режимом, поэтому текущий режим работы – это данные, которые будут использоваться во многих местах. Необходимо установить его в класс главного окна. Один из атрибутов. Подобные ситуации включают в себя текущий порог запуска, текущее количество триггеров, текущее время, представленное ползунком, ширину окна временной оси и текущий максимум вертикальной оси.

Нам также необходимо создать объект сбора звуковой карты для сбора данных звуковой карты. Объект сбора звуковой карты имеет методы run () и stop (), которые управляются кнопкой запуска / остановки на интерфейсе программы. Run () запускается в потоковом режиме, а собранные данные записываются в буфер очереди. Кроме того, блоки данных, которые последовательно считываются из очереди данных, также должны храниться в предварительно заданной структуре данных, для этого мы подготовили список для хранения этих данных.

class mainFrame(wx.Frame):
    '' 'Окно класса хранения осциллографа звуковых сигналов' ''

    def __init__(self, parent):
        '' 'Конструктор' ''

        ... ...
        if not os.path.isdir('data'): 
            os.mkdir('data')

        self.mode = 0                                   
        self.level = 256                                
        self.over = 32                                  
        self.curr_pos = 0                               
        self.time_width = 10                            
        self.value_max = 32768                          

        self.audio = list()                             
        self.dq = Queue.Queue(100)                      
        self.ac = AudioCapture(
            self.dq,
            mode=self.mode,
            level=self.over,
            over=self.over)                             
        self.capture_thread = None                      
        ... ...

Почему нить коллекции звука отсутствует? Поскольку этот поток создается и запускается только при нажатии кнопки запуска, конструктор просто объявляется. Это не объявлено заранее, и нет никаких проблем, это делается для обеспечения читабельности программы. Следует отметить, что определение потока коллекции как атрибута класса заключается в проверке того, работает ли этот поток еще при закрытии окна, и, если он все еще работает, закрывает звук перед завершением потока. Для этого нам нужно привязать событие закрытия окна wx.EVT_CLOSE к функции события OnMenuQuit (), которая также является функцией ответа «системы выхода» в меню.

class mainFrame(wx.Frame):
    '' 'Окно класса хранения осциллографа звуковых сигналов' ''

    def __init__(self, parent):
        '' 'Конструктор' ''

        ... ...
        self.Bind(wx.EVT_CLOSE, self.OnMenuQuit) 
        ... ...

    def OnMenuQuit(self, evt):
        '' 'Закрыть окно' ''

        if self.capture_thread and self.capture_thread.isAlive():
            self.ac.stop()
        while self.capture_thread and self.capture_thread.isAlive():
            time.sleep(0.1)
        self.Destroy()

Показывать длину собранных данных в строке состояния

Создав строку состояния, вы уже продемонстрировали, как отображать информацию в обозначенной области синего состояния. Для краткости мы определили специальный метод setTip () для отображения длины данных для mainFrame. Так как рассчитывается продолжительность данных? Предположим, что частота дискретизации звуковой карты составляет 44100 Гц. Каждый раз, когда читается 1024-байтовый блок данных, отрезок времени, соответствующий блоку данных, составляет 23,219954648526078 миллисекунд (1024 * 1000/44100). Мы записываем эти данные как константу.

TIME_K = 23.219954648526078 

class mainFrame(wx.Frame):
    '' 'Окно класса хранения осциллографа звуковых сигналов' ''

    def setTip(self):
        '' 'Установить информацию о длине данных в строке состояния' ''

        length = len(self.audio) * TIME_K
        self.statusbar.SetStatusText(u«Общая продолжительность:% .03f секунд»%(length/1000.0), 1)

Чтение данных из очереди данных

В модели производитель / потребитель данных производство и потребление данных независимы, и эти два связаны с использованием буферов данных. В этом примере поток, который собирает данные со звуковой карты, является производителем данных, и, соответственно, поток, который считывает данные из очереди, является потребителем данных. При создании потока необходимо передать функцию потока в качестве параметра, а параметр функции потока (если есть) рассматривается как параметр args или параметр kargs создаваемого потока. В оконной программе, если функция потока должна вызывать метод класса окна, ей обычно нужно использовать wx.CallAfter ().

class mainFrame(wx.Frame):
    '' 'Окно класса хранения осциллографа звуковых сигналов' ''
    def __init__(self, parent):
        '' 'Конструктор' ''

        ... ...
        
        read_thread = threading.Thread(target=self.readData)
        read_thread.setDaemon(True)
        read_thread.start()
        ... ...

    def readData(self):
        '' 'Чтение данных из очереди' ''

        while True:
            data = self.dq.get(block=True)
            self.audio.append(data)
            length = len(self.audio) * TIME_K
            if length > self.time_width:
                self.curr_pos = length - self.time_width
            else:
                self.curr_pos = 0.0
            self.screen.rePaint()
            wx.CallAfter(self.setTip)

Простой осциллограф из звуковой карты – Автоматизация и проектирование


Простая схема осциллографа для компьютера. Сигналы до 15 вольт. На основе резистивного делителя 1:10.
Занимаясь мелким ремонтом и мелкими любительскими разработками возникает необходимость исследовать электрические сигналы по времени следования сигнала.

Покупать дорогие осциллографы затратно, но если занимаетесь мелкими схемами то для личного пользования сойдет самостоятельно созданная приставка к компьютеру.
Схема осциллографа для начинающих изображена ниже.

Тебе понадобится:
Макетная плата – 1 шт.
Резистор 100 кОм – 1 шт.
Резистор 10 кОм – 1 шт.
Стабилитрон 1.5В-1.9В – 2 шт.
Коннекторы 3pin – 2 шт.
Джек 3.5 – 1 шт.


Используй стандартный штекер от наушников для подключения к звуковой карте компьютера.

Схема как выглядит очень просто так и собирается довольно просто. Используя предоставленные выше материалы внешнего вида и схемы собери на макетной плате в необходимом порядке детали.

Фото готового устройства

К данной плате остается подключить только 3х жильный провод с штекером от наушников. И 3 провода, возможно с щупом.

Звуковая карта должна быть с низким уровнем шума, качественная.
Так же можно самостоятельно искоренить шум купленной USB звуковой карты путем шунтирования входов платы звуковой карты.

С собранным устройством работают следующие программы:


SB Oscillograph v 1.02 и Xoscope Linux

Важное замечание в том что собранное устройство нельзя использовать как Аналого цифровой преобразователь так как звуковые карты, большинство, не понимают сигналы постоянного уровня.
Второе важное замечание: Собранный осциллограф имеет только один защищенный стабилитронами канал, второй канал не имеет защиты. Сделано это было для эксперимента с разными сигналами. Не превышайте уровни входящих сигналов до 15В.

Удачной сборки. Устройство проверенно.

Другие статьи по разделу:

 Скрытые камеры. Схема детектора скрытых камер. Рабочая схема


 Удвоитель напряжения, вольт. Простая схема


Как реализовать осцилограф.

 
NaRuTo   (2007-12-24 19:12) [0]

Можно ли с помощью Delphi создать осцилограф. Может быть есть какая-то документация по созданию его?


 
vrem_   (2007-12-24 19:18) [1]

Звуковую карту можно использовать, оцифровывать её сигнал и показывать на экране как в soundforge


 
Правильный_Вася   (2007-12-24 19:21) [2]

а еще можно в качестве кирпича использовать
окно выбить соседу, например


 
NaRuTo   (2007-12-24 19:21) [3]

Как это сделать?


 
Юрий Зотов ©   (2007-12-24 19:22) [4]

> NaRuTo   (24.12.07 19:12)

А что такое “осциллограф”?

Если это устройство, которое подключается к компьютеру, то нельзя. Delphi – не паяльник и не напильник.

Зато с помощью Delphi можно написать программу, которая будет считывать данные, передаваемые таким устройством в компьютер и отображать эти данные на экране в любом виде. И если под словом “осциллограф” Вы имеете в виду такую программу – то да, можно.

А документация простая – протокол обмена, MSDN и справка Delphi.


 
vrem_   (2007-12-24 19:23) [5]

У Sasuke спроси 🙂
а вообще попробуй поискать в яндексе, у тебя очень общие вопросы.


 
NaRuTo   (2007-12-24 19:48) [6]


> Юрий Зотов
> А что такое “осциллограф”?

Осцилограф это цифровой сигнал поступающий через звуковую карту на экран. Посмотри в Windows Media Player зрительный образ “диаграмма” вот и весь осцилограф.


 
Юрий Зотов ©   (2007-12-24 20:01) [7]

> NaRuTo   (24.12.07 19:48) [6]

Во-первых, осциллограф – это не сигнал. Это устройство.

Во-вторых, входной сигнал осциллографа не обязан быть цифровым. Он может быть и аналоговым.

В-третьих, он не обязан поступать именно через звуковую карту. Компьютер имеет и другие входы.

В-четвертых, он поступает не на экран. На экран выводится его графическое изображение.

В-пятых, в прошлом я работал электронщиком, поэтому ответ на вопрос “что такое осцилограф” знаю довольно неплохо и задавал его не для себя.

Я задавал его для тебя. Ты сам себе ответь – что такое “осциллограф”. Только ответь правильно. После этого вопрос “можно ли его сделать и как” отпадет сам собой.


 
NaRuTo   (2007-12-24 20:12) [8]


> Юрий Зотов

А я в прошлом нигде не работал мне всего 14 лет. Я читаю некоторые документации, просто просматривая их. И правильный ответ что такое осцилограф значит я не нашёл.


 
Юрий Зотов ©   (2007-12-24 20:25) [9]

> NaRuTo   (24.12.07 20:12) [8]

Осциллограф – это устройство, которое имеет вход и экран. На вход поступает электрический сигнал, на экране этот сигнал отображается в виде графика (обычно, в зависимости от времени). Вот и все.

Устройство у нас уже есть – это компьютер. Вход у него тоже есть (и даже не один – например, COM-порт – это тоже вход). Экран тоже имеем. Значит, чтобы превратить компьютер в осциллограф, нам осталось написать программу, которая читает входной сигнал и отображает его на экране. Вот и все.

А для того, чтобы это сделать, надо для начала решить, какой именно вход компьютера мы собираемся использовать. Это действительно может быть линейный вход звуковой карты.


 
@!!ex ©   (2007-12-24 21:02) [10]

Насчет осцилогрофа – это тема!
NaRuTo, если чего нароешь – поделись.
НЕпонятно мне пока как делать.
У меня правда не со звуковухи сигнал идет, а из файлика.


 
_Mike_   (2007-12-24 22:39) [11]

http://www.irls.narod.ru/izm/osc/osc10.htm
http://www.radioradar.net/programms/radiomeasurements/index.html
http://radiotech.by.ru/Program/program.htm

а если поискать где-то была коммерческая программка для этого – весьма так ничего – даже могла сравнения графиков делать (как-то)..


 
DrPass ©   (2007-12-25 00:32) [12]

…надо сказать, что осциллограф на основе звуковой карты – это скорее шутка, чем осциллограф. Частота дискретизации и допустимые уровни сигнала звукашки мало что позволяют сделать


 
Германн ©   (2007-12-25 01:42) [13]


> DrPass ©   (25.12.07 00:32) [12]

Для профессиональных целей конечно такой вариант не пойдет, но для некоторых случаев сгодится.

А для профессиональных есть другие варианты. Взялся тут несколько дней назад написать программу-осциллограф с использованием L-Card”овской платы. К ней прилагалась подобная программа, но заказчику не достаточна её функциональность.


 
Jeer ©   (2007-12-25 09:17) [14]


> DrPass ©   (25.12.07 00:32) [12]
>
> …надо сказать, что осциллограф на основе звуковой карты
> – это скорее шутка, чем осциллограф

Ответ не то чтобы неправильный, он не точный.
Осциллограф на основе звуковой карты вполне может считаться профессиональным для конкретных применений. Как мы помним, теорема Котельникова и частота Найквиста дают ответ, когда цифровая модель подобна исходному аналоговому сигналу. На практике берут отношение около 10.
Для стробоскопов – там вообще частота выборки намного ниже частоты сигнала.
Разрядность АЦП также вполне достаточна для звуковый приложений.
Так, что цифро-аналоговый преобразователь – звуковая карта незаслуженно отвергнут.
Для звуковых сигналов, особенно низкочастотного диапазона, из компьютера и звуковой карты получается очень приличный осциллограф.
В конце-то концов, звуковая карта и создается для обработки звука.


 
tesseract ©   (2007-12-25 14:06) [15]


> Так, что цифро-аналоговый преобразователь – звуковая карта
> незаслуженно отвергнут.

АЦП у современных карт 44 кгц на вход. Т.Е аналоговый сигнал до 22 кГц, дискретизация 16 бит – 65536 значений, для 14 лет хватит, но вот хватит ли в 14 летзнаний на написание такого софта ?


 
vrem_   (2007-12-25 14:24) [16]

tesseract © отстал ты, 192 кгц 24 бита если стерео у меня, цена карты 30$


 
tesseract ©   (2007-12-25 15:05) [17]

На запись ?


 
vrem_   (2007-12-25 15:06) [18]

на запись 96, но всеравно больше!


 
Jeer ©   (2007-12-25 15:36) [19]


> но вот хватит ли в 14 летзнаний на написание такого софта
> ?

В 14 лет мы делали приемники и передатчики вполне работоспособные и хватало их для даже DX- и метеорных связей.
Если сегодняшнее поколение увлечено компьютерами и программированием – ничто не мешает быть им быть в этой сфере любителями хорошего класса.


 
tesseract ©   (2007-12-25 20:53) [20]


> В 14 лет мы делали приемники и передатчики вполне работоспособные
> и хватало их для даже DX- и метеорных связей.

Ага, и жутко пытались надыбать осцилограф. У меня кстати был, военного образца, 15 килограмм весом 🙂 Дисплей электростатический (Вроде ЭЛТ без пушки, типо большого кондера управляющего лучом).

Ремонтники пользовались цифровым, 500 грам + программируемый выход, память, откат осцилограммы  по времени….. Пару раз даже пользовался для наблюдения за поведением новой прошивки весов.


 
programania ©   (2007-12-25 21:19) [21]

>NaRuTo   (24.12.07 19:48) [6]
>Осцилограф это цифровой сигнал поступающий через звуковую карту на экран.

Прием и показ звука с одного из входов “Запись”
http://programania.com/sv.zip  3кб


 
Германн ©   (2007-12-25 21:57) [22]


> tesseract ©   (25.12.07 20:53) [20]
>
>


> Пару раз даже пользовался для наблюдения за поведением новой
> прошивки весов.
>

Что за весы? Вопрос серьезный.


 
tesseract ©   (2007-12-25 22:30) [23]


> Что за весы? Вопрос серьезный.

Масса-к новая модель (была). Они процы поменяли с Atmel на Philips. Было интересно глянуть, вроде землю они тогда теряли – первая партия была.


 
Ketmar_   (2007-12-25 22:41) [24]

и пошёл разговор на непонятном языке.


 
Германн ©   (2007-12-26 01:00) [25]


> tesseract ©   (25.12.07 22:30) [23]
>
>

А как они по надежности не знаешь? Или это те же CAS, только нашего разлива?


 
turbouser ©   (2007-12-26 01:41) [26]


> Германн ©   (26.12.07 01:00) [25]

Эльбрус видел?


 
Германн ©   (2007-12-26 01:46) [27]


> turbouser ©   (26.12.07 01:41) [26]
>
>
> > Германн ©   (26.12.07 01:00) [25]
>
> Эльбрус видел?
>

Смотря какой, смотря где 🙂


 
turbouser ©   (2007-12-26 01:49) [28]


> <Цитата>
>
> Германн ©   (26.12.07 01:46) [27]
>
>
> > turbouser ©   (26.12.07 01:41) [26]
> >
> >
> > > Германн ©   (26.12.07 01:00) [25]
> >
> > Эльбрус видел?
> >
>
> Смотря какой, смотря где 🙂

Ну, там баббаяан или как его? Хотя хрен с ним. Ты что, на Эльбрусе Был?


 
Германн ©   (2007-12-26 02:17) [29]


> Ты что, на Эльбрусе Был?
>

Нет. Но рядом был. Видел сию гору. Красиво глядится.

P.S. Рано ещё отмечать.


 
turbouser ©   (2007-12-26 02:21) [30]


>
> Нет. Но рядом был. Видел сию гору. Красиво глядится.
>
> P.S. Рано ещё отмечать.

Ну да… Ну да… Я тоже много где был….


 
Германн ©   (2007-12-26 02:38) [31]


> turbouser ©   (26.12.07 02:21) [30]

Я то как раз “мало” где был. Но надеюсь ещё побывать. 🙂


 
turbouser ©   (2007-12-26 02:55) [32]


> Германн ©   (26.12.07 02:38) [31]
>
>
> > turbouser ©   (26.12.07 02:21) [30]
>
> Я то как раз “мало” где был. Но надеюсь ещё побывать. 🙂

Счастливчик 🙂


 
Германн ©   (2007-12-26 03:05) [33]


> turbouser ©   (26.12.07 02:55) [32]
>
>
> > Германн ©   (26.12.07 02:38) [31]
> >
> >
> > > turbouser ©   (26.12.07 02:21) [30]
> >
> > Я то как раз “мало” где был. Но надеюсь ещё побывать.
> 🙂
>
> Счастливчик 🙂
> <Цитата>
>
>  

Спать!


 
turbouser ©   (2007-12-26 03:34) [34]


> Германн ©   (26.12.07 03:05) [33]
>
> Спать!

Ну, кому и спать 🙂


 
tesseract ©   (2007-12-26 09:56) [35]


> А как они по надежности не знаешь? Или это те же CAS, только
> нашего разлива?

Печатающие были основной прибылью нашего сервис центра 🙂


 
DVM ©   (2007-12-26 10:33) [36]


> NaRuTo

В наше время проше купить этот прибор, чем делать его.  Это, конечно, если цель – работающий прибор, а не сам процесс его создания.


 
tesseract ©   (2007-12-26 10:40) [37]


> В наше время проше купить этот прибор, чем делать его.

В 14 лет дороговато 20-30 тысяч за осцилограф.


 
DVM ©   (2007-12-26 10:49) [38]


> tesseract ©

Есть много недорогих, ценой 7-8 тыс.
Модели:
c1-55
c1-68
c1-72


 
DVM ©   (2007-12-26 10:50) [39]

А БУ можно и за 1500 руб купить


 
Германн ©   (2007-12-26 18:53) [40]


> tesseract ©   (26.12.07 09:56) [35]
>
>
> > А как они по надежности не знаешь? Или это те же CAS,
> только
> > нашего разлива?
>
>
> Печатающие были основной прибылью нашего сервис центра :
> -)
>

Намек понял, спасибо.


Осциллограф звуковой карты

| Марка:


Осциллограф или осциллограф – лучший друг энтузиаста электроники, будь то профессионал или любитель. В то время как цифровой мультиметр может помочь вам измерить установившееся напряжение и среднеквадратичное (среднеквадратичное) напряжение, осциллограф может не только измерять размах напряжения, но, что более важно, предоставлять информацию о времени вашего сигнала.

Например, вы когда-нибудь работали с Arduino, управляющим серводвигателем, который должен иметь правильную широтно-импульсную модуляцию, чтобы вращаться по часовой стрелке, а не против часовой стрелки? Во время программирования вы, возможно, задавались вопросом, насколько близка ширина импульса к необходимой.Эти импульсы можно измерить с помощью осциллографа. При работе с аналоговыми сигналами вы можете использовать осциллограф, чтобы увидеть, насколько вы близки к нужной частоте, или измерить, какую частоту нужно фильтровать. При таком большом количестве цифровых электронных проектов чрезвычайно важно время между сигналами. Следовательно, необходимо иметь осциллограф.

Однако цена может быть препятствием. Прицелы начального уровня могут начинаться с нескольких сотен долларов. Оттуда более дорогие прицелы могут вырасти до десятков тысяч.Однако знаете ли вы, что у вас, вероятно, есть все необходимое, чтобы сделать собственный осциллограф? Фактически, вы, вероятно, читаете это на устройстве, в котором есть все необходимые детали. Все остальные детали, вероятно, находятся в вашей корзине для запчастей.

По сути, осциллограф – это блок сбора данных, который записывает напряжение вашей цепи. Это уже делает другое устройство на вашем компьютере: звуковая карта. Основные различия заключаются в уровне напряжения, с которым каждый из них может справиться, и в том, как быстро они измеряют напряжение (подробнее об этом позже).Поскольку звуковая карта на вашем компьютере может обрабатывать только небольшое количество напряжения (от +/- 0,6 В до 0,8 В), вам необходимо уменьшить ее. Создание собственных пробников осциллографа позволяет: вводить более высокие напряжения и уменьшать напряжение, чтобы звуковая карта могла справиться с этим.

Следующие шаги описывают, как построить такой зонд. Создаваемый здесь пробник используется с линейным входом звуковой карты. Линейные входы обычно принимают стереовходы, поэтому этот пробник будет иметь два канала.Если вы думаете об использовании микрофонного входа в вашей системе, вам нужно создать только один канал, поскольку микрофонные входы обычно монофонические. После сборки я покажу вам некоторые сравнения этого осциллографа с лабораторной моделью и обсудю некоторые ограничения.

Большая часть этого проекта адаптирована с http://homediyelectronics.com/projects/howtomakeafreesoundcardpcoscilloscope, а программное обеспечение можно найти по адресу http://www.zeitnitz.de/Christian/scope_en.

Вы можете сделать осциллограф из дешевой звуковой карты USB

По сути, осциллограф – это инструмент, который отображает электронный сигнал во времени.Они чрезвычайно полезны при оценке электроники, особенно когда вы работаете с аналоговыми сигналами. Большинство современных осциллографов предлагают множество дополнительных функций, которые помогут вам по-настоящему погрузиться в эти сигналы, но простые функции осциллографа могут быть выполнены с помощью небольшого количества оборудования. Большая часть затрат в этом случае приходится на сам дисплей, поэтому вы можете следовать этому руководству, чтобы превратить звуковую карту USB в осциллограф, который можно использовать с вашим компьютером.

Звуковая карта USB с входом для микрофона и выходом для наушников / динамика содержит два очень важных компонента: ЦАП (цифро-аналоговый преобразователь) и АЦП (аналого-цифровой преобразователь).АЦП обычно используется для микрофона и может использоваться для преобразования аналогового сигнала в цифровую информацию, которую понимает ваш компьютер. ЦАП делает обратное: он принимает цифровые данные, например звуковую информацию в файле MP3, и отправляет их через выход для наушников в виде аналогового сигнала. В этом случае его можно использовать для функций генерации сигнала осциллографа.

Проблема в том, что оба они могут обрабатывать только очень малые напряжения и токи.Если вы попытаетесь измерить сигнал, например, на драйвере шагового двигателя 12 В, вы почти наверняка сожжете звуковую карту. По крайней мере, вы не получите никакой полезной информации. В этом проекте описывается, как создать «аналоговый интерфейс» для дешевых звуковых USB-карт, который масштабирует эти сигналы до подходящих уровней. Он может работать как с сигналами постоянного, так и переменного тока и имеет коэффициенты затухания от 1: 1 до 100: 1.

Предоставляется дизайн печатной платы для этого аналогового интерфейса. Большинство компонентов имеют сквозное отверстие, но используется несколько микросхем SMD.Плата содержит два переключателя, две ручки потенциометра и сигнальные входы. Два разъема 3,5 мм подключают аналоговый интерфейс к звуковой карте USB. Плату можно разместить в стандартном корпусе или в корпусе, напечатанном на 3D-принтере. С программным обеспечением Soundcard Oscilloscope от Christian Zeitnitz вы можете использовать оборудование для построения графиков сигналов, как если бы вы использовали настоящий осциллограф.

Осциллограф звуковой карты – Build Electronic Circuits

Осциллограф звуковой карты может быть именно тем, что вам нужно, если вы застряли в разочаровании: «Я не знаю, что не так с моей схемой!» штат.

Осциллографы

помогали мне бесчисленное количество раз при отладке аналоговых и цифровых схем. Но они обычно бывают дорогими. Так что делать?

Самодельный осциллограф звуковой карты

Что такое осциллограф звуковой карты?

Осциллограф звуковой карты – это осциллограф, основанный на звуковой карте вашего компьютера. Используя звуковую карту, вы можете построить собственный осциллограф всего за несколько долларов. И это довольно круто, учитывая, что осциллографы часто стоят сотни или даже тысячи долларов!

Для чего вы его используете?

Осциллограф – это инструмент для наблюдения за постоянно меняющимися напряжениями сигнала.На дисплее осциллографа вы увидите измеренное напряжение за выбранный период времени. Как это:

Аудиосигналы – это типичные сигналы для просмотра в осциллографе.

Отладка с помощью осциллографа

Представьте, что вы построили себе аудиоусилитель. Но вы обнаружите, что выходной сигнал действительно зашумлен. Как понять, что делать, чтобы это исправить?

Вы используете осциллограф.

Измеряя сигнал на разных этапах усилителя, вы можете увидеть, где сигнал становится зашумленным.Таким образом, вы можете узнать, какая часть вашей цепи вызывает проблему. Вы можете внести некоторые изменения в эту часть схемы и снова измерить, чтобы убедиться, что она работает.

Без осциллографа приходится угадывать, в чем ошибка. А это не очень эффективный метод.

Другой пример – связь между двумя электронными модулями (например, последовательная связь на Arduino). Если вы не получили ожидаемого результата, вы можете использовать осциллограф, чтобы проверить, действительно ли данные отправляются или нет.Я использовал этот метод отладки много раз.

Как сделать свой собственный осциллограф звуковой карты

Чтобы создать осциллограф звуковой карты, вам понадобится небольшая цепь между тем, что вы хотите измерить, и вашей звуковой картой. Это необходимо для защиты вашей звуковой карты от повреждения. Мы называем эту схему вместе с измерительными контактами зондом .

Схема одного зонда.

Поскольку звуковая карта обычно имеет стереовход, мы можем сделать два пробника и одновременно измерять два сигнала.

Поскольку звуковые карты имеют разное внутреннее сопротивление, значения для использования в приведенной выше схеме различаются. Это также означает, что вы не будете знать уровень напряжения сигнала, если не создадите также схему настройки.

Стив Гарратт написал отличную книгу под названием «Осциллограф звуковой карты ». Здесь он объясняет все этапы создания недорогого осциллографа для звуковой карты в домашних условиях. От сборки электроники до сборки коробки и превращения ее в красивый инструмент.

Он объясняет, как выбрать правильные номиналы резисторов и как построить схему настройки. Книга также дает вам несколько примеров того, как использовать осциллограф звуковой карты в реальной жизни. Я определенно рекомендую вам это проверить.

Щелкните здесь, чтобы ознакомиться с осциллографом звуковой карты Стива Гарратта.

Возвращение от осциллографа звуковой карты к схемотехнике

Сборка звуковой карты – Пайка и конструирование электроники для хобби

Недавно я узнал о программном обеспечении Windows, которое превращает ваш компьютер в осциллограф.Имея за годы значительный опыт работы с осциллографами, я подумал, что стоит взглянуть на них. Это, в свою очередь, привело к тому, что я посмотрел на другое программное обеспечение для звуковых карт ПК. Если вам интересно, вы можете прочитать мою статью о программном обеспечении осциллографа здесь.

Посмотрев программное обеспечение, я решил, что займусь сборкой необходимого оборудования, чтобы превратить ПК в работающий осциллограф. Затем я понял, что есть готовые альтернативы, которые вы можете купить, что, в свою очередь, привело к статье о USB-осциллографах, которую вы можете прочитать здесь.

Создайте свой собственный осциллограф

В любом случае вернемся к первоначальной идее создания осциллографа. Когда зонд подключается к звуковой карте, прямое подключение к нему является рецептом катастрофы. Вы просто просите взорвать вход вашей звуковой карты. Еще хуже, если это звуковая карта вашего ноутбука. Вам понадобится что-то, что будет действовать как буфер между датчиком и входом звуковой карты.

Я нашел в Интернете схему от Тимоти Уитема, которая была адаптирована из схемы из книги «Искусство электроники».Я адаптировал схему для использования деталей, о которых я солгал, так что на самом деле это мне ничего не стоит.

Я использовал операционный усилитель LM351, все диоды – 1N4148, все остальное довольно просто. Вам понадобится источник питания + и – 12 вольт. Подключение конца R4 к 0 вольт переключает датчик между X1 и X10.

Буфер должен гарантировать, что если вы собираетесь взорвать что-либо, это будет буфер, и вы можете легко заменить что-либо в этой схеме, вместо того, чтобы в итоге получить взорвавшуюся звуковую карту.

В то время, когда я создавал этот буфер, я снова экспериментировал с созданием печатных плат, и я только что начал использовать отличное программное обеспечение DesignSpark, поэтому я подумал, что попробую это программное обеспечение в реальном приложении, всегда лучший способ получить ощущение его реальной полезности. Могу сообщить, что я нашел эту программу чрезвычайно полезной. Я бы с радостью заплатил за это, но это бесплатно. Поразительно, когда вы смотрите на то, на что оно способно, по сравнению с первым программным обеспечением для разводки печатных плат, которое мы использовали в университете и которое, насколько я помню, стоило около трех тысяч фунтов стерлингов.

Буферная схема была нарисована в DesignSpark. Вы можете увидеть это на картинке ниже.

Из схемы программа генерирует список цепей. Затем вы можете вручную перемещать и позиционировать компоненты или позволить программе работать. Я сделал макет односторонним, потому что это все, что я могу сделать на данный момент, что не составляет проблемы, учитывая простую схему, и я придумал макет печатной платы, показанный ниже.

Вы также можете визуализировать трехмерное графическое представление того, как будет выглядеть собранная плата.Вы можете наклонять и перемещать ее, а также переворачивать на экране, как если бы вы физически держали доску в руке и смотрели на все, что захотите. Опять же, это действительно впечатляет и дает вам реальное представление о том, какой будет готовая доска.

Я просто использовал пару зажимов вместо пробника осциллографа, пока экспериментировал, готовая плата видна на картинке ниже.

Подключения к плате и от платы, которые вы видите, представляют собой толстый черный кабель к звуковой карте.Черный и красный с зажимами для тестируемой цепи, а черный, красный и зеленый – на 0, +12 и -12 вольт.

Если вы не можете сделать печатную плату, это достаточно простая схема, чтобы можно было наделать небольшой кусок на плате. Если вы не слишком уверены в использовании вероборда, у меня есть статья.

Когда оборудование будет готово, вам понадобится только программное обеспечение. Вы можете прочитать мою статью о программном обеспечении осциллографа здесь или просто воспользоваться тем, что я сделал в итоге.

На приведенном выше рисунке показан снимок экрана схемы буфера осциллографа звуковой карты, на которой работает Scope V1.46 подключен к осциллятору, который я построил на вероборде. Честно говоря, я поражен тем, насколько хорошо он показывает форму волны и насколько она плавная.

Осциллограф для тестирования звука

Очевидно, что этот осциллограф звуковой карты не сможет конкурировать с полнофункциональным осциллографом. Если вы ищете осциллограф, прочтите мою статью о лучшем осциллографе для любителей. Из-за звуковой карты вы не получите очень большую полосу пропускания, но для базового использования в аудиосхемах это намного лучше, чем не иметь ничего.Это также позволит вам узнать, что делает осциллограф, вообще не тратя много денег. Если вы хотите узнать, как работает осциллограф, вы можете прочитать здесь.

Осциллографы USB для ПК, анализаторы спектра, генераторы сигналов, аудио и акустические анализаторы, анализатор вибрации, сбор данных

Что такое мультиинструмент?
Multi-Instrument – мощный ПК на базе многофункциональное программное обеспечение виртуальных инструментов. Это профессиональный инструмент для анализа во временной, частотной и частотно-временной областях. Он поддерживает множество оборудование, начиная от звуковых карт, которые доступны почти во всех компьютеры для проприетарного оборудования АЦП и ЦАП, такого как карты NI DAQmx, Цифровые запоминающие осциллографы (VT DSO) Virtins Technology, Virtins Technology’s Real Time Analyzers (RTA) и так далее.Он состоит из осциллограф анализатор спектра, генератор сигналов, мультиметр и пять дополнительные программные модули: Регистратор данных, спектр 3D график виброметр, измеритель LCR и план тестирования устройства, все они могут работать одновременно и в реальном времени. Это было широко используется в образовании и обучении, научных исследованиях, аудио и акустических инженерия, электронная техника, анализ вибрации, медицина диагностика, осмотр музыкальных инструментов и др.Программное обеспечение может быть скачано с: www.virtins.com/MIsetup.exe на 21-дневный полнофункциональный БЕСПЛАТНО пробную версию, используя звуковую карту вашего компьютера в качестве устройств АЦП и ЦАП.

Что такое многофункциональная система?
Мультиинструментальная система состоит из трех уровней (от от передней части к задней части, как показано на рисунке ниже): сенсорный слой, аппаратный уровень сбора данных и уровень программного обеспечения виртуального инструмента (например, Multi-Instrument).

Сенсорный слой состоит из датчиков и их предусилителей. (если необходимо). Преобразует физические величины в электронные. сигналы, которые затем могут быть квантованы уровнем сбора данных. Он определяет область применения мультиинструментальной системы. Например, пассивный пробник осциллографа или активный дифференциальный осциллограф зонд может использоваться для измерения электронного или электрического напряжения сигналы; токовые клещи могут использоваться для измерения электронных или электрических текущие сигналы; микрофон можно использовать для восприятия звуков, датчик ускорения может использоваться для определения вибрации; датчик ЭКГ можно используется для определения электрической активности сердца и т. д..Датчик лежал может также содержать исполнительные механизмы, такие как громкоговорители.

Аппаратный уровень сбора данных содержит сбор данных оборудование, такое как ПК Virtins Technology осциллографы на базе USB, анализаторы спектра и генераторы сигналов, Анализаторы реального времени Virtins Technology, Карты NI DAQmx, звуковые карты и т. Д. электронные или электрические сигналы, передаваемые сенсорным слоем. Вместе с сенсорным слоем он определяет точность измерения и точность мультиинструментальной системы.Этот слой также может содержать Аппаратное обеспечение ЦАП, которое преобразует цифровой сигнал с компьютера в аналоговый сигнал для управления исполнительными механизмами, такими как динамики в сенсорный слой.

Виртуальный на уровне программного обеспечения прибора преобладают Программное обеспечение для нескольких инструментов. Это определяет функции и графический интерфейс пользователя (GUI) Мультиинструментальная система.

В целом система Multi-Instrument чрезвычайно мощная, гибкая, настраиваемая, все же рентабельно.Просто через конфигурацию программного обеспечения без каких-либо кодирования, можно достичь пользовательских функций, которые могут быть только реализуется посредством разработки программного обеспечения на заказ с использованием инструментов программирования такие как Labview, Matlab, C ++ и т. д. Правильно настроенный Система Multi-Instrument удовлетворит все ваши потребности в тестировании, измерении, мониторинг и контроль.

Что может ли система с несколькими инструментами?
Осциллограф
отдельных сигналов, сложение сигналов, вычитание и умножение, образец Лиссажу, отображение смешанного сигнала, долгое время запись сигнала (потоковый режим), предварительно настроенная или произвольная цифровая фильтры (БПФ, КИХ, БИХ), полуволновое / двухполупериодное выпрямление, демодуляция (AM, FM, PM), цифровой дисплей послесвечения, выборка эквивалентного времени, режим крена и т. д..

Анализатор спектра
амплитудный спектр, октавный анализ (1/1, 1/3, 1/6, 1/12, 1/24, 1/48, 1/96), частотная компенсация, частотное взвешивание (A, B, C, ITU-R 468), удержание пика, линейное / экспоненциальное среднее, измерение THD, THD + N, SNR, SINAD, уровень шума, IMD, полоса пропускания, перекрестные помехи, пики, гармоники, wow & flutter, громкость звука и уровень громкости; фазовый спектр, авто / кросс-корреляция, функция когерентности, передаточная функция (график Боде, график усиления и фазы или частота отклик), импульсный отклик.Поддержка 55 оконных функций и окон перекрывать.

Генератор сигналов
функция / многотональный / сигнал произвольной формы / пакетный тон / MLS / DTMF / музыкальная гамма / белый шум / генерация розового шума, частота / амплитуда развертка, постепенное увеличение / уменьшение, модуляция выхода (AM, FM, PM), воспроизведение файла wave. Поддержка как потокового режима, так и Режим DDS.

Мультиметр
вольтметр, измеритель уровня звукового давления (дБ, дБА, дББ, дББ), частота счетчик, счетчик оборотов, счетчик, счетчик рабочего цикла, преобразователь F / V, цикл среднее / среднеквадратичное значение, длительность импульса.

Виброметр
преобразование формы волны между ускорением, скоростью и смещением, когда необработанные данные получены из ускорения, скорости или смещения датчики. Эта функция разработана специально для анализа вибрации.

График 3D Spectrum
водопад и спектрограмма.

Регистратор данных
длинный регистрация данных по времени для 185 точек производных данных (DDP) и 16 определяемых пользователем точки данных (UDDP), включая среднеквадратичные значения, пиковые частоты, звук уровни давления, обороты, THD и т. д.Может быть установлено до восьми окон регистратора данных. открыто, и каждое окно может отслеживать до 8 переменных.

Измеритель LCR
измерить значение катушки индуктивности, конденсатора или резистора, или полное сопротивление сеть из них.

План тестирования устройства
Он предоставляет механизм для настройки и управления собственным устройством пользователя. шаги теста. Он использует преимущества звуковой карты (или другого АЦП / ЦАП). устройства) возможность одновременного ввода и вывода, чтобы генерировать стимул к тестируемому устройству (DUT) и получить ответ от это устройство одновременно.Могут генерироваться разные стимулы, и ответ можно анализировать по-разному. DUT можно пометить как ПРОЙДЕН или НЕ ПРОШЕЛ после последовательности шагов проверки. План тестирования устройства поддерживает связь с внешними системами через последовательную связь.

DDP Viewer
Используется для отображения значения производной точки данных (DDP) в специальном окне с большим размером шрифта. Также можно указать DDP высокий-высокий, высокий, низкий, низкий-низкий пределы для тревоги и количество десятичные разряды для отображения.Можно открыть до 16 программ просмотра DDP. Эти Программы просмотра DDP также могут использоваться для определения и отображения данных, определенных пользователем. Очки (UDDP). UDDP может быть выражен как функция DDP и ранее обновленные UDDP. Математическое выражение может состоять из константы, DDP, UDDP, математические операторы и математические функции.

Общие функции
Чувствительность сенсора
Полученная данные можно масштабировать в соответствии с чувствительностью датчика, настроенной с помощью пользователя, чтобы отображаемые данные выражались в технических единицах соответствует физической величине, измеренной датчиками.Это сильно отличается от обычного осциллографа, в котором только напряжение может быть отображенным.

Работа с графиком
Масштабирование и прокрутка поддерживаются на всех графиках, что позволяет исследуйте мельчайшие детали данных. Это очень важно, когда большой объем данных отображается на одном экране. Читатель курсора на каждом графике, чтобы показать значения x и y фактического точка измерения. Для Spectrum 3D Plot средство чтения курсора поддерживает считывание значений x, y, t фактической точки измерения.Два маркера представлены на каждом графике, чтобы получить значения x и y фактического точки измерения, ближайшие (по горизонтали) к точкам щелкает мышка. Поддерживаются пять типов диаграмм: Line, Scatter, Column, Бар, Шаг. Ширина линии и цвета графика настраиваются. Параметры предназначены для отображения всех точек данных (медленно) или только для отображения одна точка данных на вертикальную линию растра (быстро). Данные в любом графике можно скопировать в буфер обмена как текст, а затем вставить в другой программное обеспечение, такое как Microsoft Excel, для дальнейшего анализа.Образ график можно скопировать в буфер обмена как растровое изображение, а затем вставить в другое программное обеспечение, такое как Microsoft Word.

Справочные кривые
До пяти справочные кривые могут быть установлены для каждого канала на каждом графике. В контрольную кривую можно настроить, скопировав текущую кривую, или загрузка правильно отформатированного текстового файла или ранее сохраненного эталонный файл с жесткого диска.

Импорт и экспорт файлов
Собранный кадр данных может быть сохранен как WAV-файл (*.wav) или экспортировать как текстовый файл (* .txt). Все результаты анализа можно экспортировать в виде текстовых файлов (* .txt). Все графики могут можно экспортировать как файлы растровых изображений (* .bmp) или распечатать напрямую. Длинная волна файл может быть импортирован покадрово вручную или автоматически. Волновые файлы в формате PCM или правильно отформатированный текстовый файл могут быть импортирован для анализа. Сигнал, генерируемый генератором сигналов, может сохраняться в виде волнового или текстового файла на заданную продолжительность до 1000 секунд.

Объединение данных и Извлечение
Объединение данных из отдельных каналов различные волновые файлы, а также извлечение части данных из волнового файла. поддерживается.

Панель сохранения и загрузки Настройка
Вы можете сохранить предпочитаемую настройку приборной панели. либо по умолчанию, либо как настраиваемая настройка панели для дальнейшего использования.

Органы управления / Включение и отключение опций
Элементы графического интерфейса пользователя, такие как пункты меню, кнопка, поле со списком, поле редактирования, переключатель, флажок включены / отключены в зависимости от контекста, поэтому чтобы исключить любое недопонимание и неправильную работу.

Многоязычный пользовательский интерфейс
It поддерживает многоязычный пользовательский интерфейс под Windows XP, Vista, 7, 8 / 8.1 / 10. Поддерживаемые языки: английский, французский, немецкий, итальянский, португальский, Испанский, русский, упрощенный китайский, традиционный китайский, японский и Корейский язык.

Настройка программного обеспечения
Multi-Instrument предоставляет следующие настраиваемые пользователем функции:
1) Вы можете сохранить часто используемые настройки панели в виде файла настроек панели
. 2) Вы можете сохранить настройки панели по умолчанию, чтобы они загружались сразу после запуска программы.
3) Вы можете настроить свой часто используемые файлы настроек панели на панели инструментов горячей панели, поэтому что они могут быть загружены одним щелчком мыши.

Разработка программного обеспечения
1. Multi-Instrument может работать как сервер автоматизации ActiveX, так что внешняя программа может получить доступ к данным и функциям, которые Multi-Instrument выставляет. Вы можете интегрировать Multi-Instrument в собственное программное обеспечение легко через интерфейсы сервера автоматизации ActiveX, предоставляемые Мутил-инструмент.Пожалуйста, обратитесь к: Multi-Instrument Automation Server Интерфейсы.
2. Вы можете использовать библиотеки DLL интерфейса vtDAQ и vtDAO, поставляемые в программное обеспечение, позволяющее вашему собственному внутреннему программному обеспечению взаимодействовать со звуком карты, карты NI DAQmx, VT DSO, VT RTA и т. д. Как все эти устройства соответствовать тому же стандарту интерфейса vtDAQ и vtDAO, вам нужно только напишите коды интерфейса в вашей программе один раз, и ваша программа будет поддерживают все эти устройства. Вы также можете разработать свои собственные vtDAQ и vtDAO. совместимые библиотеки DLL, позволяющие Multi-Instrument взаимодействовать с вашими собственными аппаратное обеспечение.Пожалуйста, обратитесь к: Интерфейсы vtDAQ и vtDAO.
3. Обработка и анализ сигналов Virtins Technology (vtSPA) Интерфейсы прикладного программирования (API) предоставляют набор общих API для обработки и анализа данных. Он содержит некоторые уникальные особенности / алгоритмы созданы и доступны только от Virtins Technology. См.: Интерфейсы обработки и анализа сигналов (vtSPA).
>> подробнее

Что такое второе поколение VT DSO (цифровой запоминающий осциллограф)?
DSO VT второго поколения являются последними USB-осциллографы на базе ПК, спектр анализаторы и генераторы сигналов, разработанные и разработанные Virtins Технология.В них реализованы уникальные аппаратный алгоритм DSP, повышающий производительность и функциональность значительно без дополнительных затрат на оборудование. При использовании в сочетании с программным обеспечением Multi-Instrument эти DSO VT преобразуют любые настольный компьютер, ноутбук или планшет в мощный осциллограф, спектр анализатор, мультиметр, регистратор данных, генератор сигналов и т. д., все которые работают одновременно.

По сравнению с ТН первого поколения Осциллографы DSO и USB-осциллографы других производителей. поколение имеет следующие основные преимущества:

1) Аппаратный DSP Повышение разрешения битов на основе осциллографа
2) Потоковый режим в осциллографе
3) Цифровой запуск и частота запуска осциллографа Отклонение
4) Режим послесвечения осциллографа
5) Внешний запуск Входной канал как цифровой входной канал
6) Адаптивное сглаживание Фильтр для анализатора спектра
7) Генератор сигналов DDS и потоковая передача Режимы
8) Генератор сигналов DDS Интерполяция
9) Одновременные данные Сбор и вывод данных
10) Калибровка и повторная калибровка
11) Модернизируемый программный, микропрограммный и аппаратный алгоритм DSP
>> подробнее

Что такое RTA (анализатор реального времени)?
Анализаторы реального времени (RTA) или Real Time Audio Analyzer часто используются звукорежиссерами. и акустики, устанавливающие аудиосистемы для всех видов прослушивания помещения: зрительный зал, домашние кинотеатры, автомобили и т. д.Они используются для измерения в в реальном времени частотная характеристика аудиосистемы в замкнутость окружающей среды с учетом частоты отклик самой аудиосистемы, а также всего окружающего такие эффекты, как резонанс и конструктивная и деструктивная интерференция. Затем можно настроить эквалайзер, чтобы получить инверсную частотную характеристику. таким образом, чтобы комбинированная частотная характеристика была ровной или выровненной предпочтения публики.Обычно в качестве теста используется розовый шум. В анализаторе спектра задается тональный и октавный анализ.

VT RTA-168 – это ПК анализатор реального времени на базе USB, измеритель уровня звука и анализатор искажений, тестер полярности … Он может выполнять все функции обычные RTA, такие как измерения частотной характеристики и уровень звука с более высоким разрешением и большей точностью благодаря вычислительная мощность современного компьютера. Кроме того, он может измерять различные типы искажений и выполнить полный набор функциональность, которая обычно не встречается в обычных RTA.
>> подробнее
О нас
Мы стремимся предоставлять современные, но доступные по цене ПК. продукты виртуальных инструментов с высочайшим качеством и непревзойденными техническая поддержка …

Свяжитесь с нами
Свяжитесь с нами через онлайн-чат, электронную почту или по телефону.

Testmonials
“Вы, безусловно, самый инновационный в этой области. Поздравляем! “- д-р Киран Шмидт. >> подробнее

Пресс-центр
Наши продукты имеют были рассмотрены, представлены или упомянуты в ведущих мировых электронных изданиях журналы.

Интернет-магазин
Можно найти полный список наших товаров в нашем интернет-магазине. Вы также можете приобрести на соответствующих страницах с описанием продуктов. Свяжитесь с нами, если вам необходимо пройти официальную процедуру закупки.

FAQ
Вы можете найти ответы на самые здесь часто задаваемые вопросы.

Регистрация программного обеспечения
Вы можете активировать, повторно активировать, передать или продлите свою лицензию здесь. Лицензия есть постоянное и программное обновление для того же уровня лицензии БЕСПЛАТНО для жизнь.

Аппаратный пульт Обновление
Hardware Remote Upgrade используется для обновления уровень лицензии на программное обеспечение, связанный с оборудованием. Оборудование может быть аппаратный ключ USB или любое оборудование АЦП / ЦАП производства Virtins Технология.

Скачать
This is где вы можете скачать программное обеспечение и документы. Вы также можете найти примечания к выпуску здесь.

Форум
Можно обсудить здесь все, что имеет отношение к испытаниям и измерениям.

Приложения
Вы можете найти список заметки по применению, слайды, видео здесь.

Список обычных испытательных инструментов, которые может быть заменен правильно настроенной мультиинструментальной системой:
1) Осциллограф
2) Анализатор спектра
3) Генератор сигналов
4) Мультиметр
5) Виброметр
6) Участок с водопадом
7) Спектрограмма
8) Регистратор данных
9) Измеритель LCR
10) Автоматизированное испытательное оборудование
11) Аудио анализатор
12) Анализатор реального времени
13) Шумомер
14) Анализатор звукового спектра
15) Анализатор искажений
16) Анализатор шума
17) Генератор сигналов произвольной формы
18) Анализатор динамических сигналов
19) Октавный анализатор
20) Генератор розового шума
21) Генератор белого шума
22) Генератор MLS
23) Звуковой анализатор в реальном времени
24) Анализатор звука в реальном времени
25) DUT Analyzer
26) Анализатор мощности
27) Анализатор гармоник
28) Анализатор ударов
29) Сетевой анализатор
30) Измеритель частоты вращения
31) Корреляционный анализатор
32) Частотомер
33) Логический анализатор
34) Измеритель мощности
35) Измеритель рабочего цикла
36) Анализатор сигналов
37) Осциллограф звуковой карты
38) Звуковая карта Анализатор спектра
39) Сигнал звуковой карты Генератор
40) Анализатор БПФ

Справочная страница Ubuntu: xoscope – Digital Oscilloscope

Предоставлено: xoscope_2.2-1ubuntu1_amd64
 
НАИМЕНОВАНИЕ
       xoscope - Цифровой осциллограф

 
ОБЗОР
       xoscope [параметры X toolkit] [параметры xoscope] [файл]

 
ОПИСАНИЕ
         Xoscope  - цифровой осциллограф реального времени. Графически отображает амплитуду сигнала или
       битовая логика как функция времени.Сигналы могут быть отображены, сохранены, вызваны и
       управляется математическими функциями. К устройствам ввода сигнала в настоящее время относятся:

         Звуковая карта 
            Запись звука через Advanced Linux Sound Architecture (ALSA). Два 8-битных аналога
            каналы со скоростью от 8000 до 44100 с / с. Левый и правый звук подключен к A и B
            входы соответственно. Используйте программу внешнего микшера, чтобы выбрать, какие звуковые входы следует
            записывать. Связь по переменному току, напряжение неизвестно, память выборок 256K. EsounD 
            Общий звуковой звук с помощью демона просвещенного звука. Это отлично подходит для просмотра
            музыку, но ее поддержка возможна во время компиляции. EsounD определяется автоматически и
            предпочтительнее / dev / dsp.

         КОМЕДИ 
            Проект COMEDI (www.comedi.org) разрабатывает драйверы, инструменты и библиотеки Linux для
            получение данных. Многие коммерчески доступные карты ADC поддерживаются COMEDI, и
              Xoscope  может получать от них сигналы через библиотеку COMEDI.
ВРЕМЯ РАБОТЫ КЛАВИАТУРА ОРГАНЫ УПРАВЛЕНИЯ
         Xoscope  - интерактивная программа, которой можно полностью управлять с клавиатуры на
       время выполнения. В режиме подробной справки по клавишам каждая доступная клавиша отображается на экране в
       (скобки). Доступны следующие одиночные ключевые команды:

        ?  Переключить режим отображения подробной справки по клавишам.

         Побег 
            Немедленно выйдите из программы. @  Загрузить ранее сохраненный файл. Вам будет предложено ввести имя файла.

         #  Сохранить текущие настройки и буферы памяти в файл, который можно будет загрузить позже. Ты
            запросил имя файла и запросил подтверждение перезаписи, если оно уже
            существуют.

         Введите 
            Очистите и обновите весь экран.

         и  Цикл между различными устройствами ввода. Обратите внимание, что эта клавиша не переключается на
            не отвечает устройство ввода, поэтому, если присутствует только одно устройство, оно будет иметь
            нет эффекта. *  Различное поведение для разных устройств ввода

            В EsounD это значение вместо этого определяет, будет ли соединение с EsounD
            блокировать или нет. Режим блокировки лучше всего подходит для использования ЦП, но интерфейс  xoscope  будет
            не отвечает, если от EsounD не идет звуковой поток. Неблокирующий режим
            позволит  xoscope  реагировать независимо от того, доступен звук или нет, но будет потреблять
            все доступные циклы ЦП. Различное поведение для разных устройств ввода

         (/)  Уменьшить / увеличить частоту дискретизации.

         9/0  Увеличение / уменьшение горизонтальной шкалы времени в секундах / делениях (уменьшение / уменьшение по времени).

         - / =  Уменьшить / увеличить уровень триггера.

         _  Циклическое переключение канала триггера.

         +  Циклическое переключение типа триггера: нет, нарастающий или спадающий фронт.

         Космос 
            Циклический режим триггера: запуск, ожидание, остановка.Режим работы непрерывно получает и отображает
            образцы после триггерных событий. Режим ожидания ожидает первого триггерного события и
            отображает только первый набор образцов; это «покадровый» режим. Режим остановки
            приостанавливает сбор данных и отображает текущие образцы.

        !  Циклическое переключение режима построения: точка, накопление точек, линейное или линейное накопление. В
            режимы накопления, все образцы остаются на экране; используйте  Введите , чтобы очистить их.,  Циклическое изменение стиля сетки: нет, только второстепенные деления или второстепенные и большие деления.

        .  Переключить положение сетки: позади или перед сигналами.

         ' Включает / выключает ручные курсоры. Когда отображаются ручные курсоры,
            показаны измерения между положениями курсора. Когда курсоры не отображаются,
            показаны автоматические измерения.

         " Сбросить оба положения курсора вручную на выборку сразу после триггера. Ctrl-q / w / e / r 
            Удерживание клавиши Control в сочетании с q / w / e / r перемещает первый курсор назад или
            вперед на 10 образцов или назад или вперед на 1 образец соответственно.

         Ctrl-a / s / d / f 
            Удерживание клавиши Control в сочетании с a / s / d / f перемещает второй курсор назад или
            вперед на 10 образцов или назад или вперед на 1 образец соответственно.

         1-8  Выберите соответствующий канал отображения. Измерения отображаются для
            канал.Каналы 1 и 2 используются в качестве входных данных для математических функций, поэтому они не могут быть
            раньше занимался математикой. По умолчанию они подключены к входным каналам A и B.
            Каналы 1 и 2 также можно использовать для отображения буферов памяти или для математических вычислений.
            память или альтернативный вход. Каналы с 3 по 8 не ограничены и могут быть
            используется для любых целей. Остальные одиночные ключевые команды работают с текущим
            выбранный канал:

         Вкладка  Переключить видимость: скрыть или показать выбранный канал. {/}  Уменьшить / увеличить вертикальный масштаб выбранного канала.

         [/]  Уменьшить / Увеличить вертикальное положение выбранного канала.

         `/ ~  Уменьшить / увеличить количество отображаемых битов логического анализатора. По умолчанию нулевые биты
            отображает сигнал как одну аналоговую линию переменной амплитуды. Графики любых других значений
            несколько цифровых строк, представляющих наименее значимые биты снизу вверх.

        ; /:  Увеличить / уменьшить математическую функцию выбранного канала.Это недоступно
            на каналах 1 и 2.

         $  Показать результат внешней математической команды для выбранного канала. Ты
            запросил команду. Команда должна принимать образцы каналов 1 и 2 на стандартный ввод
            и напишите новый сигнал в stdout. См. Operl, offt.c и xy.c в дистрибутиве для
            примеры команд внешнего математического фильтра. Недоступно на каналах 1 и 2.

         a-z  Вызов соответствующего буфера памяти или устройства ввода для текущего выбранного
            канал.Каналы устройства ввода отображаются на самые ранние буквы алфавита;
            остальные буферы доступны для памяти сигналов.

         A-Z  Сохранить текущий выбранный канал в соответствующий буфер памяти. Рано
            буквы алфавита нельзя использовать, потому что они зарезервированы как сигнал
            input, поэтому точное количество доступных буферов зависит от устройства ввода.
            Воспоминания сохраняются с нуля до текущей позиции обновления дисплея.Так что, это
            лучше всего ОСТАНОВИТЬ отображение перед сохранением в буфер памяти.

 
МЫШЬ ОРГАНЫ УПРАВЛЕНИЯ
         Xoscope  добавляет элементы управления мышью в меню или по краям области обзора. Эти должны
       быть почти самоочевидным. Они выполняют те же функции, что и эквивалентная клавиатура.
       команды выше. Если построено с использованием GTK +, контекстное всплывающее меню доступно с
       щелкните правой кнопкой мыши, чтобы выбрать каналы, изменить масштаб и положение, вызвать и сохранить сигналы и т. д.
       на.Щелчок левой кнопкой мыши уменьшает переменную, а щелчок правой кнопкой увеличивает. Ручное измерение
       курсоры также можно перемещать с помощью мыши.

 
КОМАНДНАЯ СТРОКА ОПЦИИ
       Параметры командной строки определяют состояние запуска  xoscope  и имеют разумные значения по умолчанию.
       Все параметры могут быть написаны с заглавной буквы, если они противоречат параметру X toolkit. Эти
       параметры также записываются в текстовые файлы, сохраненные xoscope .

         -h  Сообщение об использовании справки, показывающее эти параметры запуска со значениями по умолчанию, затем
            выход.

         - #   <код> 
            Условия запуска каждого канала. # - номер канала от 1 до 8. Код может
            иметь до трех полей, разделенных двоеточиями: position [.bits] [: scale [: function #,
            буква памяти, или внешняя команда]]. Позиция - это количество пикселей выше
            (положительный) или ниже (отрицательный) центр дисплея.Биты - это количество
            отображаемые биты логического анализатора. Масштаб - допустимый коэффициент масштабирования от 1/50 до 50,
            выражается в виде дроби. Третье поле может содержать встроенную математическую функцию.
            число, буква памяти или внешняя математическая команда для выполнения на канале. Используя эти
            options делает канал видимым, если позиция не начинается с '+', и в этом случае
            канал скрыт.

         -a   <канал> 
            Активный или выбранный канал. -r   <скорость> 
            Частота дискретизации в отсчетах в секунду. Для звуковой карты текущие допустимые значения:
            8000, 11025, 22050 или 44100.

         -s   <шкала> 
            Коэффициент шкалы времени от 1/500000 до 2000 (2 нс / дел - 2 с / дел), выраженный в виде дроби
            где 1/1 - 1 мс / дел.

         -t   <триггер> 
            Условия срабатывания. У триггера может быть до трех полей, разделенных двоеточиями:
            позиция [: тип [: канал]].Позиция - это количество пикселей выше (положительное) или
            под (отрицательным) центром дисплея. Тип - это число, обозначающее вид
            триггер, 0 = автоматически, 1 = нарастающий фронт, 2 = спадающий фронт. Канал должен быть x или y.

         -l   <курсоры> 
            Ручной курсор Позиции строк. Курсоры могут иметь до трех полей, разделенных
            двоеточия: первый [: второй [: вкл?]]. Во-первых, это примерная позиция первого курсора.Во-вторых, позиция второго курсора. Последнее поле - погода
            ручные курсоры отображаются (1) или не отображаются (0).

         -p   <тип> 
            Тип участка. 0 = балл, 1 = накопление баллов, 2 = линия, 3 = накопление строки, 4 = шаг,
            5 = шаг накапливать.

         -g   <стиль> 
            Стиль сетки. 0 = нет, 1 = только второстепенные подразделения, 2 = второстепенные и основные подразделения. -b  Отображается ли сетка позади или перед сигналами.

         -v  Отображение подробной справки по клавишам.

         файл  Имя файла, загружаемого при запуске. Это должен быть файл, ранее сохраненный
              хоскоп. 

 
ПРИМЕРЫ
         xoscope  -1   80  -2  -80  -3   0: 1/5: 6  -4  -160: 1/5: 7 

            Это запускает  xoscope  с каналом 1 вверху и каналом 2 под центром дисплея.Также каналы 3 и 4 становятся видимыми для отображения БПФ каналов 1 и 2 соответственно.
            в уменьшенном масштабе 1/5.

         xoscope   oscope.dat 

            Это запускает xoscope, загружает настройки и буферы памяти из ранее сохраненных данных.
            файл с названием «oscope.dat».

 
ФАЙЛЫ
         Xoscope  создает файлы с читаемыми текстовыми данными. Файлы содержат как минимум заголовок комментария.
       который содержит текущие настройки  xoscope. Загрузка файла вызывает эти сохраненные настройки
       быть восстановленным.

       Чтобы записывать ваши сигналы постоянно, сначала сохраните их в буферах памяти, при желании вызовите
       их в каналы, а затем сохраните файл. Все непустые буферы памяти записываются в
       столбец файла, следующий за заголовком комментария. Столбцы разделяются символами табуляции.
       Они сохраняются обратно в буферы памяти при последующей загрузке файла. Просто
       вызывайте их на каналы для просмотра.Этот формат также может быть прочитан некоторыми программами для работы с электронными таблицами или графиками. Например,
         gnuplot   (1)  команда

       построить "oscope.dat" с использованием 0: 1, "oscope.dat" с использованием 0: 2

       построит первый и второй столбцы файла данных oscope.dat.

 
ОКРУЖАЮЩАЯ СРЕДА
         ОСКОПЕПАТ 
            Путь, используемый при поиске внешних математических команд. Если не установлен, встроенный
            используется по умолчанию. СПИКЕР 
            Хост: порт EsounD для подключения, если он построен с поддержкой EsounD. Если не установлено,
            предполагается localhost. Если нет подключения к EsounD или нет EsounD
            support, то  xoscope  попытается прочитать / dev / dsp напрямую.

 
ОГРАНИЧЕНИЯ
       Звуковая карта должна поддерживать дискретизацию 44100 Гц через звуковые драйверы. Вы должны использовать
       программа внешнего микшера для выбора устройства источника входного сигнала, уровня и т. д.Поскольку эти
       неизвестные влияют на амплитуду, нет привязки к напряжению по оси Y; он находится в
       факт, неизвестный. Вместо этого вам дается масштаб в пикселях на единицу отсчета. Обратите внимание, что
       Последовательные устройства осциллографа не имеют этого ограничения. На них есть настоящие метки напряжения.
       ось Y.

       Математика сигналов действительна только в том случае, если каналы 1 и 2 содержат сигналы с одинаковой частотой дискретизации.
         Это   это   до   до   вы   до   сделать   обязательно   это   это     case.  Выполнение   математики   на   сигналах   из   разных   образец 
         оценок     даст   неправильные результаты  ! 

       Автоматические измерения подсчитывают пересечения нуля и делят, чтобы определить частоту и
       период. Если эти нулевые переходы не являются "регулярно-периодическими", эти измерения могут быть
       неверный.  Xoscope  понимает, как измерить встроенные функции БПФ путем определения местоположения
       пиковая частота.Используйте ручное позиционирование курсора, чтобы получить более точные измерения.

       Ваша звуковая карта, скорее всего, подключена по переменному току, поэтому вы никогда не увидите смещения постоянного тока. Ты
       вероятно, не удастся получить связь по постоянному току, просто закоротив входные конденсаторы на звуковой карте.
       Используйте последовательное оборудование, чтобы увидеть смещения постоянного тока.

       В зависимости от вашего
       звуковая карта, видеокарта и скорость процессора. Внешние математические команды особенно
       дорого, поскольку ядро ​​должно затем разделить доступные циклы ЦП на несколько
       процессы.Чтобы максимизировать скорость обновления, скройте все ненужные каналы, используйте точку или точку
       в режиме накопления, максимально увеличьте Sec / Div и выключите сетку.

 
ОШИБКИ
       Интерфейс клавиатуры может сбивать с толку.

 
АВТОР
         Oscope  был написан Тимом Уитхэмом ([email protected]), первоначально на основе "scope"
       Джефф Трантер ([email protected]). Самая последняя работа - Брент Баккала.
       (косинус @ freesoft.org). Поддержка ALSA Герхардом Шиллером ([email protected]).
         Xoscope  выпущен на условиях Стандартной общественной лицензии GNU. Посмотреть файлы
       README и COPYING в дистрибутиве для подробностей.
 

Daqarta – Характеристики осциллографа звуковой карты


Daqarta находится в режиме осциллограммы (области) по умолчанию, когда ни один Сграм ни Кнопки спектра на панели инструментов активны.

Диапазон ввода, выбор канала и строки: устанавливается в диалоговом окне «Управление вводом» (тонкая кнопка под переключатель ввода на панели инструментов).

Увеличением дисплея можно управлять с помощью PgUp / PgDn. клавишами, или перетаскивая ось Y, или с помощью кнопок вверх / вниз на верх оси.

Ось Y отображает текущий диапазон ввода и увеличение, если только генератор (выход) не активен.

Когда генератор активен, фактические выходные уровни контролируются громкостью / дБ. диалоговое окно (клавиша F9 или кнопка в диалоговом окне “Управление генератором”), но экран остается полноразмерным, потому что он показывает цифровой сигнал в том виде, в каком он был сгенерирован, до преобразования в аналоговый и ослабление регуляторами громкости выходного микшера.(Цифровой размер сигнала устанавливается элементами управления уровнем генератора для активные потоки на каждом канале.)

Горизонтальная (временная) ось определяется частота дискретизации и горизонтальное расширение (eXpand), оба из которых задаются в диалоговом окне «Управление осью X» (показано на прямо на изображении выше). Вы также можете изменить расширение с помощью перетаскивая ось X, или используя кнопки со стрелками влево / вправо на любой конец. В качестве альтернативы, нажатие CTRL + ALT + X приведет к заставляют дисплей расширяться до пределов, установленных сплошным и пунктирные курсоры.Кнопка панели инструментов оси X ( ALT + X ) включает и выключает eXpand.

Задержка триггера (в диалоговом окне “Управление триггером”) слайды ось X, чтобы показать форму волны в более раннее или позднее время чем триггерное событие. Метки оси X всегда показывают фактическое время относительно триггера.

Диалог управления триггером также позволяет полностью контролировать уровень и наклон, а также удержание и гистерезис для сложных триггерных ситуаций.Вы можете выбрать из нормального или два типа автоматического запуска для любого сигнал.

Если вы используете Генератор для создания стимула сигнал, режим триггера Gen Sync позволяет запускать особенности стимула (например, модуляция FM), которые могут иначе будет невозможно с обычным запуском.

Курсоры (сплошные и пунктирные вертикальные линии) могут быть перетаскивается мышью, перемещается с помощью клавиш со стрелками влево и вправо, или установить напрямую (или с помощью макрос-команды) на любое значение X через Показания X-положения ниже области трассировки.Справа показание, показывающее разницу между значениями X, здесь 0,500 мсек.

Значения Y в каждой позиции отображаются в нижнем показания. Цветные кнопки указывают канал каждого Y значение, и его можно переключать, чтобы выбрать любой активный канал. На изображении выше оба зеленого цвета, что соответствует L.Out . отобразить кнопку выбора канала, чтобы указать, что левый выход отображаются значения каналов. (Вот почему показания не совпадают ось Y, которая показывает диапазон ввода.)

Справа находится индикатор Delta-Y, показывающий разница между значениями Y. Переключение кнопки Delta меняет его на Sigma, который вычисляет истинное Среднеквадратичное значение сигнала между курсорами. (Обратите внимание, что для обычных измерений среднеквадратичного значения Вариант вольтметра более простой и имеет большой плавающий дисплей.)

Примечание , что входы и выходы должны быть откалиброван до того, как показания могут показать истинные значения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *