LINUX.ORG.RU

lxardoscope — осциллограф на базе Linux+Arduino

 , lxardoscope,


0

3

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

Технические характеристики:

  • режими отображения: два канала, суммирование; развёртка по времени или xy
  • цена вертикальных делений: от 2мВ до 10В.
  • управление усилением для калибровки
  • цена горизонтальных делений: от 100мкс до 5с
  • триггер с выбором канала и срабатыванием по нарастающему или спадающему фронту
  • до 3000 замеров в секунду на канал

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

Cкриншот

>>> Подробности

★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 3)

Arduino - Значит на побаловаться. Тут недавно была новость про Kst 2.0.4, так с ним вполне можно баловаться с сигналом, заодно его рассматривать на всём интервале и по быстрому обрабатывать.

AlexVR ★★★★★
()

По ссылке, вообще некая мини плата на ATMega8, без всяких Arduino.

«2мВ до 10В.» - ноябрь, ибо никакой развязки для управления уровнем максимального напряжения нет. И вообще сжечь микроконтроллер с такой схемой плёвое дело. Проверять код нет ни какого желания. Итог пустышка.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Arduino используется там как среда программирования, а также прошивки контроллера.

Согласен с вашей оценкой. На встроенном АЦП от ATMega что-либо серьёзное вообще сложно реализовать. Про отсутствие развязки и примитивную схемотехнику вообще — тоже понятно. Проект из разряда технического творчества школьников.

prozium ★★
() автор топика
Ответ на: комментарий от prozium

Так и делали бы всё на Arduino, у того хотя бы USB есть, а COM-порта теперь уже и не видно. Кроме этого более важна в такой задаче именно развязочка. Мне бы было жалко тратить АТМегу на одноразовую схемку. ((Пусть и стоит копейки). Для изучения же этот проект слишком не уклюжий. Изучать проще на самом Arduino, а лаба по связке Arduino и Kst выполняется за пол часа.

AlexVR ★★★★★
()

Прикольно. А у меня дипломная в свое время такая была (2001 год). На паскале писал, а данные с LPT порта считывал с помощью ассемблерной вставки. Дипломная была об использовании ПК классов информатики на уроках физики. Тогда я и слыхом не слыхивал об opensource... молодцы что сделали.

anonymous
()
Ответ на: комментарий от AlexVR

Думаю, никто не мешает использовать Arduino в качестве конвертера USB-UART

anonymous
()

Вопрос: А сколько это стоит?

В смысле понятно, что как осциллограф не очень, но например для школьных лабораторок вполне сгодится.

Evgueni ★★★★★
()

Не понял, зачем в LXDE программа для работы с осциллографами? Чего только в DE не понапихают, а ещё лёгкая называется...

DRVTiny ★★★★★
()

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

Разве что для just for fun.

dikiy ★★☆☆☆
()

1) никогда не понимал, зачем на экране рисуют физическое устройство-прототип. Факсовые программы рисуют факс, сип-телефоны рисуют телефон, программы-осцилоскопы рисуют осцилограф и т.д.

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

2) почему не стремяться использовать максимально стандартные платы оцифровки? Зачем городить свое наколенное поделие с частотой оцифровки в 3 кгц? Это чо, крутотенюшка такая, хуже чем саундблястер под дос?

Если программисты, то почему не купили беларусскую платку для оцифровки? У них там предел квантования в разных моделях от 20 до 150 МГЦ.

А если схемотехники, то почему не взяли уже готовые визуализаторы данных и не сделали для них плату захвата с хорошими данными?

А так, к сожалению (!), полезный выход из этого проекта околонулевой...

AVL2 ★★★★★
()
Ответ на: комментарий от dikiy

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

где ты видел цифровой двухканальный осцил за 20 баков? Ну хоть даже за 100?

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

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

где ты видел цифровой двухканальный осцил за 20 баков? Ну хоть даже за 100?

А. да, невнимательно прочитал.

Ну ладно, тогда за 40 баксов можно купить два хардовых осцилла :)

dikiy ★★☆☆☆
()

Пора закапывать AVR.

exst ★★★★
()

В качестве тулкита XForms. Забавно.

Zubok ★★★★★
()
Ответ на: комментарий от AVL2

>то почему не купили беларусскую платку для оцифровки?

Что за плата? В школу можно купить?

anonymous
()
Ответ на: комментарий от AlexVR

AlexVR, а у вас есть опыт работы в этом направлении? Я бы хотел узнать кое-какие тонкости. Если не сложно - напишите по почте (или в jabber) %username at gmail dot com

vitruss ★★★★★
()

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

Quasar ★★★★★
()

>до 3000 замеров в секунду на канал

Это даже не смешно.

может быть интересен как пример открытого программно-аппаратного комплекса


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

не может претендовать на полноценную замену настоящему осциллографу


О чём разговор тогда, если в интернете можно найти проекты нормальных осциллографов, например, на fpga4fun? С открытыми исходниками и прочим.

prischeyadro ★★★☆☆
()

100 микросекунд на деление - значит полоса 10 кГц (что уже никуда не годится), а как тогда понимать 3000 замеров на канал, что означает полтора килогерца на канал?

Что-то то ли они в показаниях путаются, то ли я чего не понимаю?

gns ★★★★★
()
Ответ на: комментарий от gns

>Что-то то ли они в показаниях путаются, то ли я чего не понимаю?

100мкс/дел — это шкала. Это не значит, что полоса такая. :)

Zubok ★★★★★
()

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

Там есть и другой интерфейс на Arduino + Processing.
А ещё 3 года назад был автономный вариант с LCD.

P.S. В конце года должен появится Arduino Due, a major breakthrough for Arduino because we’re launching an Arduino board with a 32bit Cortex-M3 ARM processor on it. We’re using the SAM3U processor from ATMEL running at 96MHz with 256Kb of Flash, 50Kb of Sram, 5 SPI buses, 2 I2C interfaces, 5 UARTS, 16 Analog Inputs at 12Bit resolution and much more.
Для школьного осцллографа более подходящий.

quickquest ★★★★★
()
Ответ на: комментарий от vitruss

Лучше на форуме задавай, вопросы-ответы лучше что бы били открытыми. Заодно может ещё кто чего подскажет, не забывай только ставить тег [Arduino].

AlexVR ★★★★★
()

>до 3000 замеров в секунду на канал

т.е. потолок измерений 3 килогерца? Где тогда эту штуку можно реально применить?

andreykyz ★★
()
Ответ на: комментарий от cvs-255

>частотный диапазон узок

а тут прям широта частотная. Аж 3 килогерца выборок...

AVL2 ★★★★★
()
Ответ на: комментарий от andreykyz

>т.е. потолок измерений 3 килогерца? Где тогда эту штуку можно реально применить?

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

Проект тянет только на ученический.

Zubok ★★★★★
()
Ответ на: комментарий от andreykyz

>т.е. потолок измерений 3 килогерца? Где тогда эту штуку можно реально применить?

В сейсмоакустике есть немало низкочастотных процессов для измерения/наблюдения с невысокой точностью, например, для замены такого 4-кг ящика.
Но до осциллографа на трех транзисторах полувековой давности (от 30 Гц до 20 КГц) «Ардуине» ещё далеко-о-о :)

quickquest ★★★★★
()
Ответ на: комментарий от Zubok

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

ну так а зачем было схему генерить тогда? Чем звуковой вход не устраивает?

AVL2 ★★★★★
()

> до 3000 замеров в секунду на канал

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

chg ★★★★★
()
Ответ на: комментарий от AVL2

>ну так а зачем было схему генерить тогда? Чем звуковой вход не устраивает?

Э-э-э, ты у меня это спрашиваешь? :) Лично меня устраивают мои четыре осциллографа. :)

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

добавить стробоскопический режим и обвязку соответствующую и можно смотреть на живые гигагерцы :)

chg ★★★★★
()
Ответ на: комментарий от andreykyz

главное, это чтобы сигнал был периодический. смотреть можно много выше 3 кгц. цифровые осциллографы это идеальные стробоскопы

chg ★★★★★
()
Ответ на: комментарий от chg

>добавить стробоскопический режим и обвязку соответствующую и можно смотреть на живые гигагерцы :)

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

Для гигагерцев же нужен стробоскопический импульс шириной доли периода входного повторяющегося сигнала. А потом его надо сдвигать на такую же величину. Использовать АЦП микроконтроллера для стробирования? Вряд ли:

Для ATMega:

13 - 260 µs Conversion Time

Up to 76.9 kSPS (Up to 15 kSPS at Maximum Resolution)

Zubok ★★★★★
()
Ответ на: комментарий от chg

>главное, это чтобы сигнал был периодический. смотреть можно много выше 3 кгц. цифровые осциллографы это идеальные стробоскопы

В принципе (умозрительно) может кое-что получиться, но это надо уже предметно смотреть. sample time У ATMega - то ли 1.5, то ли 2 цикла частоты АЦП (а все преобразование 13 циклов, ЕМНИС). Остается вопрос синхронизации со входным повторяющимся «высокочастотным» сигналом и постепенным сдвигом (холостыми командами) запуска АЦП относительно синхронизации. А если частота сигнала будет известна априори, то синхроимульсы можно внутри микроконтроллера генерить.

Но это никакие не гигагерцы будут и даже не сотни килогерц. И точность оцифровки в ATMega при высокой частоте уже не 10 разрядов будет, а ниже. Точность можно повысить если частоту АЦП снижать, но тогда S&H time расти будет.

Zubok ★★★★★
()

Не, ну можно им логику посмотреть. Поучиться можно, как физике, так и ардуино. Но на кой фиг эту новость на лоре постить? 10В она без развязки не выдержит, максимум 5.5 . Хотя порт врятли сгорит, но преобразовывать она не будет.

xSudo ★★★
()

> до 3000 замеров в секунду на канал

ОЧЕНЬ плохо. ATmega может делать, как минимум, на порядок больше замеров.

Made_in_China ★★
()
Ответ на: комментарий от Made_in_China

ОЧЕНЬ плохо. ATmega может делать, как минимум, на порядок больше замеров.

Так передавать же на компьютер еще надо. Вот вся их программа:

int sensorValue = 0;        // value read from the pot
byte lb;
byte hb;

void setup() {
  // initialize serial communications at 115200 bps:
  Serial.begin(115200); 
}

void loop() {
// read A0:
  sensorValue = analogRead(A0);            
// shift sample by 3 bits, and select higher byte  
  hb=highByte(sensorValue<<3); 
// set 3 most significant bits and send out
  Serial.print(hb|224,BYTE); 
// select lower byte and clear 3 most significant bits
  lb=(lowByte(sensorValue))&31;
// set bits 5 and 6 and send out
  Serial.print(lb|96,BYTE);
// read A1
  sensorValue = analogRead(A1);            
// shift sample by 3 bits, and select higher byte 
  hb=highByte(sensorValue<<3); 
// set bits 5 and 6 and send out
  Serial.print(hb|96,BYTE); 
// select lower byte and clear 3 most significant bits
  lb=(lowByte(sensorValue))&31;
// set bits 5 and 6 and send out
  Serial.print(lb|96,BYTE);
}
Zubok ★★★★★
()

до 3000 замеров в секунду на канал

Мде. Я на звуковушке как минимум на порядок круче сделаю =)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Made_in_China

>ОЧЕНЬ плохо. ATmega может делать, как минимум, на порядок больше замеров.

Да, и они читают два канала всегда.

Zubok ★★★★★
()

Между прочим, китайцы уже давно выпустили железный осциллограф на ОС Linux. Идут под марками Hantek и Tekway. Два канала, полоса частот до 200 МГц, около 700 долларов с доставкой.

Сейчас собирается группа энтузиастов по написанию альтернативной прошивки для этих осциллографов.

Подробности:

http://www.eevblog.com/forum/index.php?topic=1571.0

Yampp
()
Ответ на: комментарий от xSudo

> Хотя порт врятли сгорит

Вероятнее всего, сгорит защитный диод, включённый между выводом и Vcc.

prozium ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.