Jump to content

    

pnp_mechanic

Участник
  • Content Count

    66
  • Joined

  • Last visited

Community Reputation

0 Обычный

About pnp_mechanic

  • Rank
    Участник

Recent Profile Visitors

986 profile views
  1. Прошло немного времени и я опять вернулся к теме ультразвукового расходомера. :-) На базе МС TDC1000+tdc7200 не удаётся получить требуемую точность. Соорудил макетку на TDC-GP22, схему взял с оф. документа. Подкупает эта МС своей доступностью и ценой. Всё нормально работает и точность 0.5 - 1% на расходах 0.006 - 3.0 куба вполне достижима. И даже пробные замеры это подтверждают. Но вот проблема при резкой смене расхода, вообще перестаёт быть видна разница времени по потоку и против. Через 5-10 сек. всё возвращается в норму, причём сброс МС и перезагрузка настроек в течении этого времени не помогают, отклик УЗ сигнала наблюдается без значительного изменения амплитуды Интересно в серийных теплосчётчиках и расходомерах такое тоже наблюдается или для таких изделий динамика процесса не важна и важен только долговременный показатель расхода. Может быть что происходит с датчиками при резкой смене давления. Конечная цель - получить более менее точные данные мгновенного расхода с интервалом 1 сек. или меньше.
  2. Да, спасибо. Похоже это они. Только прибором определяется 100 Ом. Вообще конечно хорошие резисторы, у прибора где они впаяны точность 0,16% по всей шкале 4-20 мА.
  3. Установлены в цепи питания тензомоста. Размер немного больше 1206, но они круглые. Интересует возможность покупки или хотя бы тип. При нагреве сопротивление падает, прямо сверхпроводник может получится :-)
  4. Ради интереса замерил ток "Макиты" 24 вольтовой Ток холостого хода до 7А. доходит, саморезы закручивал до 30А доходило. 500 Вт самое то...
  5. Спасибо за ваше внимание . Сейчас уже разобрался, забыл совсем настроить камеру. cvSetCaptureProperty(cam_capture, CV_CAP_PROP_FRAME_WIDTH, 640); cvSetCaptureProperty(cam_capture, CV_CAP_PROP_FRAME_HEIGHT, 480);
  6. А там вообще есть чему ток ограничить, например в Orange прямой проводник от +5. Наверное и тут также.
  7. Возникла необходимость регистрировать событие с вебкамеры. Общая идея -отображать в части окна видео с камеры и на этом же окне кнопки для управления и настройки. Для этой затеи приспособил Orange PI с Armbian 5.9, захват видео с камеры успешно работает до момента нажатия кнопки "butt_1". Причём далее программа на кнопку реагирует, а видео останавливается. Подозреваю, что нет необходимого условия для отрисовки части окна. Это не смотря на то, что каждый раз выполняется "gtk_widget_queue_draw(area);" Может что не так в программе...? /* makefile CXX ?= g++ CXXFLAGS += -c -Wall $(shell pkg-config --cflags opencv --libs gtk+-2.0) LDFLAGS += $(shell pkg-config --libs --static opencv --libs gtk+-2.0) all: prog_ex prog_ex: main.o; $(CXX) $< -o $@ $(LDFLAGS) %.o: %.cpp; $(CXX) $< -o $@ $(CXXFLAGS) clean: ; rm -f main.o prog_ex */ #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include "opencv2/videoio.hpp" #include "highgui.h" #include <linux/videodev2.h> #include <sys/ioctl.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <gtk/gtk.h> #include <gdk/gdk.h> #include <cairo.h> #include <stdio.h> #include <stdbool.h> #include <iostream> using namespace cv; using namespace std; GtkWidget *window; GdkPixbuf* pix; GtkWidget *area; CvCapture* cam_capture; IplImage* frame; VideoCapture capture; //кнопоки и ... GtkWidget *vbox_1; //контейнер GtkWidget *hbox_1; GtkWidget *video_box; GtkWidget *btn1,*btn2; //кнопки static void destroy(GtkWidget *widget, gpointer data) { gtk_main_quit(); } //событие по кнопке static void clic_butt_1(GtkWidget *widget, gpointer data) { g_print("\n\r key pres"); } //событие по кнопке exit static void clic_butt_2(GtkWidget *widget, gpointer data) { gtk_main_quit(); } //Работает до тех пор пока не нажата "btn1" !!! static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { g_print("N_1"); frame = cvQueryFrame(cam_capture); if(!frame) { g_print("Err_1"); return TRUE;} pix = gdk_pixbuf_new_from_data((guchar*) frame->imageData, GDK_COLORSPACE_RGB,FALSE, frame->depth, frame->width-350, frame->height -150, (frame->widthStep), NULL, NULL); gdk_draw_pixbuf(widget->window,widget->style->fg_gc[GTK_WIDGET_STATE (widget)], pix, 0, 0, 0, 0, -1, -1, GDK_RGB_DITHER_NONE, 0, 0); // -> X gtk_widget_queue_draw(area); return FALSE ; } //================================================= int main(int argc, char *argv[]) { g_print("\n\rTest prog capture video of webcam"); cam_capture = cvCreateCameraCapture(0); gtk_init(&argc, &argv); //Окно window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Test Open_CV"); gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); GdkGeometry windowProperties; windowProperties.min_width = 800; windowProperties.min_height = 600; gtk_window_set_geometry_hints(GTK_WINDOW(window), NULL, &windowProperties, GDK_HINT_MIN_SIZE); gtk_window_set_resizable(GTK_WINDOW(window), FALSE); g_signal_connect(window, "destroy", G_CALLBACK(destroy), NULL); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); //виджет area = gtk_drawing_area_new(); gtk_drawing_area_size(GTK_DRAWING_AREA(area), 300, 300); //BOX контейнер vbox_1 = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); hbox_1 = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); video_box = gtk_vbox_new(GTK_ORIENTATION_HORIZONTAL,5); //создать кнопки btn1 = gtk_button_new_with_label (" Test_key "); btn2 = gtk_button_new_with_label (" Close "); gtk_button_set_relief(GTK_BUTTON(btn1), GTK_RELIEF_NORMAL); //Кнопки в контейнер gtk_box_pack_end (GTK_BOX (hbox_1),btn1, FALSE, FALSE, 0); gtk_box_pack_end (GTK_BOX (hbox_1),btn2, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX (video_box),area, FALSE, TRUE, 0); //Контейнер кнопок -> в контейнер номер 1 gtk_box_pack_end (GTK_BOX (vbox_1),hbox_1, FALSE, TRUE, 0); gtk_box_pack_start (GTK_BOX (vbox_1),video_box, FALSE, TRUE, 0); //Контейнер с контейнером на окно gtk_container_add (GTK_CONTAINER (window), vbox_1); //на окно //СОбытия кнопок "pressed","released","clicked" g_signal_connect (G_OBJECT(btn1), "clicked", G_CALLBACK (clic_butt_1),NULL); g_signal_connect (G_OBJECT(btn2), "clicked", G_CALLBACK (clic_butt_2),NULL); //событие - "видео с камеры" - работает пока кнопка не нажата!!?? почему так g_signal_connect(G_OBJECT(area), "expose_event", G_CALLBACK(expose_event), NULL); gtk_widget_show_all(window); gtk_main(); return 0; }
  8. Точно, в схемах только дюймовые размеры. Если нужно я ставлю самую мелкую, иногда выручает...
  9. А "сетку пользователя" можно сделать 1мм? Или я что-то пропустил.
  10. Судя по фото и схеме, снабберные конденсаторы используете без последовательного резистора. Интересно почему так? Насколько я понимаю в таком случае будет греться и емкость и транзистор.
  11. Надо полагать, что сигнальная земля подключена к одному из пинов. Тогда корпус разъёма как в PC... А вот конденсатор может же и зарядится испытательным напряжением. Ударит током испытателя, тогда точно не пройдёте сертификацию :-) И потом куда второй конец разъёма подключаться будет, наверное тоже к чему то заземлённому. Как ни крути земля или корпуса устройств соединятся.
  12. Интересно, сертификация это и испытания тоже? Куда второй "конец" высоковольтного импульса будет приложен?
  13. Да, сам такое наблюдал, станок плазменной резки + Mach3. Любой провод длиннее 100 мм., в том числе мышь и кл., работают как антенна. Не смотря на полную гальваническую развязку PC от станка, мышь и кл. виснут. Если принтер зависает, всех проблем-то чека не будет. Фискальную память для такого случая никто не отменял. А вот приёмник денег конечно важен и он уже имеет RS232 или вообще счётный выход. Другое дело, что USB становится все более и более распространённым интерфейсом. И рано или поздно USB осваивать нужно....
  14. Да, разумеется принтер с RS232 значительно проще в применение. Но есть в доступности только USB. ( цена, наличие, распространённость и пр.) Пока получилось посредством STM32CubeMx( ох, не нравится он мне) прочитать дескрипторы принтера. А коли чего, так припаяю RX TX прямо к центральному МК принтера и вперёд, благо схема имеется.