LINUX.ORG.RU

Сообщения float

 

*WRT - всё?

С 13-го июня следующего года в ЕС вступят в силу новые требования к приборам с функцией беспроводной связи, которые значительно осложнят установку на них альтернативных прошивок. Североамериканские коллеги подтянутся к 2017 году. Для 5 гГц новые правила FCC там уже в силе с лета 2015. Согласно им, в новых приборах должен быть предусмотрен DRM, в указаниях для производителей и ритейлеров говорится буквально: «опишите в деталях, каким образом прибор защищён от установки других прошивок, таких как DD-WRT».

Такие дела. К сожалению, самое вероятное развитие - пошаговый запрет свободных прошивок для маршрутизаторов в принципе. А там и до линукса на десктопе недалеко.

 

float
()

МК для большого числа трансмиттеров @ 80 кГц

Не смог составить более внятный заголовок. Цель создать сетку из ультразвуковых передатчиков. Сейчас есть прототип на ардуине Nano, там всего 2 свободных канала у таймера (на выходе - волна желаемой частоты), на них висят соответственно 2 таких передатчика. С каким железом можно это дело расширить до, скажем, 32-х? Регистры сдвига? Какая-то специальная железяка с большим числом PWM IO (на такой частоте?)? Важно также, чтобы всё это дело могло активироваться извне в произвольном порядке.

 , ,

float
()

Arduino Uno (Atmega328p) ШИМ

Второй день туплю над даташитом и не могу решить простейшую проблему: один раз в секунду нужно сгенерировать пульс частотой 40 кГц продолжительностью, скажем, 1 мс.

Что-то не поддаётся мне логика таймеров и прерываний... Вернее, принцип понятен, я даже добился пульсации, где длина пульса = длине паузы, а дальше - никак.

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

Вот код

const byte LED = 9;
#define CPU_FREQ     (16000000)
#define SIG_FREQ     (40000)
#define PLS_CYCLES   ((CPU_FREQ/(2*SIG_FREQ)))

ISR (TIMER1_COMPA_vect)
{
    TCCR0A ^= _BV(COM0A0) ;  //Toggle OC1A on Compare Match
    if ( (TCCR0A & _BV (COM0A0)) == 0) {
        digitalWrite (LED, LOW);
    }
}

void setup()
{
  pinMode (LED, OUTPUT);

  // Timer 0 : 40 kHz PWM                       
  TCCR0A = _BV(WGM01); // CTC                    
  TCCR0B = _BV(CS00);  // no prescaler           
  // 1 tick = 1/16MHz =	62.5 ns                  
  // half period duration is 1/(2*40kHz) = 12.5 us
  // We have to wait 12500/62.5 = 200 clock cycles
  OCR0A =  PLS_CYCLES - 1;

  // Timer 1: interpulse gap                     
  TCCR1A = _BV (WGM12); // CTC                   
  TCCR1B = _BV(CS10) /*| _BV(CS11)*/ | _BV(CS12); // prescaler of 1024
  // 1 tick = 1024/16MHz = 64 us                 
  // We have to wait 999ms/64us = 15609 clock cycles
  OCR1A  =  15609 - 1 ;
  TIMSK1 = _BV(OCIE1A);   // enable Timer1 Interrupt

  Serial.begin(115200);
}

void loop()
{}

 ,

float
()

МК и аналоговый сигнал >= 80 кГц

Возможно ли такое провернуть с каким-нибудь Arduino и Co? Требуется оцифровать форму сигнала с ультразвукового датчика, который резонирует на 40 кГц.

У меня очень маленький опыт с ардуиноподобными, есть ардуино уно с ATmega328p. В IDE есть функция analogRead(), но в документации читаю «It takes about 100 microseconds», т.е. в 8 раз дольше, чем мне нужно, можно ли это как-то обойти?

 

float
()

(?) Теория фильтров, посоветуйте книг[и/у]

Сижу, разбираюсь в одной штуковине. Замечаю, что не хватает базисных знаний по обработке сигналов, конкретно по фильтрам. Инженеры, посоветуйте библию по этой теме, можно на английском. Чтобы хотя бы в принципе знать, что имеется в виду например под phase response, quadrature sampling, FIR. Википедия проясняет отдельные моменты, но нужно что-то систематизированое.

float
()

Простой data/messaging протокол

Есть своя программа (=есть её исходники) для обнаружения и трекинга объектов на видео. Пока всё один большой комбайн, хочу прикрутить к ней возможность цепляться по tcp/ip клиентом для разных шалостей - например, запросить позицию определённого объекта или отправить команду остановить слежение за определённым объектом. Пока что пихаю всё struct с __attribute__((packed)) и пересылаю её. Но пока команд немного, и данных вроде как тоже - позиция, таймстемп, ещё пара служебных целочисленных значений.

Руки уже зачесались пересылать также и разные другие данные, картинку объекта, например. Другими словами, пересылать бинарные данные неизвестного размера. Думаю добавить поле datasize и data и пересылать блоб. А как грамотные программисты такое реализуют? С json-ами связываться не хочется, хочется KISS.

float
()

Локальное создание переменной vs член класса

Какие плюсы и минусы у этих подходов? Есть функия, которая вызывается довольно часто (обработка кадров из видео), и в которой используются вспомогательные переменные (матрицы, точнее cv::Mat) для промежуточных результатов этой обработки. Надо ли делать их членами класса, чтобы они создавались один раз при создании объекта класса или это будет микрооптимизацией? Есть ли смысл объявить их локально static, тогда на создание тоже не будут тратиться ресурсы при каждом вызове, ведь так?

 ,

float
()

(Полу)автоматическое определение местоположения

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

float
()

Сгенерировать случайные числа с неравномерным распределением

Из-за пробелов в математическом образовании туплю уже час и ничего не могу придумать. У меня есть некоторый упорядоченный набор чисел, скажем S = [32, 16, 8, 4]. Я хочу случайным образом получить (целочисленный) индекс в интервале [0,3], но так, чтобы вероятность его получения была взвешена соответственно S. То есть чтобы из 60-ти раз я 32 раза получил 0, 16 раз 1 и т. д. Реализовывать буду на C, но это не существенно.

 rand,

float
()

VNC клиент с поддержкой передачи файлов

На виндомашине запущен TightVNC. Существует ли в дикой природе VNC клиент под линукс, с помощью которого можно положить туда файл?

 , ,

float
()

Помогите найти симулятор DLX (deluxe)

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

float
()

Прошу совета: ищу web framework/CMS (не галерею)

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

- регистрация и аутентификация
- возможность загрузки файлов
- на стартовой: новые загрузки и всякая статическая мелочь
- возможность поиска по имени, дате и жанру
- (nice to have) оценки рисунков пользователями в рамках всяких там конкурсов

Задуман раздел, где дети и родители оставляют истории, советы, описания (одним словом, текст), поэтому галерея не совсем подходит.

Хотелось бы через пару месяцев это выпустить в онлайн. Каким путём лучше всего пойти полному профану в вебе? Есть ли CMS, на базе которых можно при должном усердии соорудить что-то, удовлетворяющее требованиям? Или нанять школьника со знаниями php/perl/... на LOR::Job? Или лучше нанять профессионала (рассчитываю на возможность пожертвований около пары сотен евро)?

Жужжать будет всё на стабильном дебиане на десктопе, хотя, если взлетит, будем покупать хостинг.

float
()

lavabit всё

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

Мир катится куда-то не в лучшую сторону. То есть наверное, он всегда катился, но раньше это было как-то более скрыто что ли.

float
()

Коммит без working directory

Достался мне код. После многочисленных правок его нужно вернуть на родину, в bare репозиторий. По недоразумению код мне достался без '.git'. Как с наименьшим извратом закоммитить его туда? Правильной ли будет цепочка

git clone bla gitcode
find mycode -name "*.c" -o -name "*.h" -exec cp {} gitcode/ \;
cd gitcode
git commit
...

 

float
()

lavabit - только у меня не работает?

Говорит «Unknown user or password incorrect.» При этом в Preferences и в Account Upgrade в веб интерфейсе получается аутентифицироваться. Второй раз за последний год такое. Но этот что-то затянулся, поддержка не отвечает. (Пора валить, пожалуй).

float
()

stddef.h: No such file or directory

После обновления дебиана постиг меня внезапно сабж. При этом

 $ dpkg -S /usr/include/linux/stddef.h
linux-libc-dev:amd64: /usr/include/linux/stddef.h
 $ apt-cache policy linux-libc-dev
linux-libc-dev:
  Installed: 3.2.41-2
  Candidate: 3.2.41-2
  Version table:
     3.8.12-1 0
        500 http://ftp.debian.org/debian/ unstable/main amd64 Packages
 *** 3.2.41-2 0
        500 http://ftp.debian.org/debian/ stable/main amd64 Packages
        700 http://ftp.debian.org/debian/ testing/main amd64 Packages
        100 /var/lib/dpkg/status

это я туплю или wtf?

 

float
()

debian hostname

После обновления начались странности с хостнеймом. В /etc/hostname прописано localhost, так же как в /etc/hosts. Однако после запуска иксов оно меняется на «linux», что приводит к ошибкам типа «Desktop :0 not found». Куда рыть?

float
()

цвет в emacs modeline

Не смог разобраться, как поменять цвет отображения названия функции под курсором (с трудом читаемый синий: http://s2.postimage.org/q09uy5ul5/emacs.png ) Так как много лет использую аутентичную reaper-theme, то Reaper.

float
()

получить внешний ip без javascript etc.

Раньше можно было пропарсить getip.com или whatismyip.com, а теперь на одном адрес выдаётся картинкой, на втором javascript'ом. Остались ли ещё текстовые сервисы, не страдающие этой web2.0-манией?

float
()

с++ разделить переменные между классами/библиотеками

Такой немного школовопрос. В первой библиотеке эти переменные читаются из базы данных. Сейчас я заворачиваю их в структуру и передаю в функцию init(struct*) второй библиотеке. init инициализирует static члены второго класса.

Я всё правильно делаю?

float
()

RSS подписка на новые темы