Хронограф : измеритель скорости пули. От простого к сложному

Grig
Offline
Зарегистрирован: 26.01.2017

Ребята почитал я вас,все вы оччень навароченые, дисплеи от нокия прикручиваете,а я чайник не много соображаю в электронике в програмирование 0.Если можно у меня вопрос.Есть  ардуино про микро, труба с фото элементами 94 мм между датчиками соединение  как у han2001только без нокиа, можно ли написать скетч. Cоединение ардуино пока с компом через программу ардуино1,0,6.Пробовал  разные скетчи ,либо датчик какой нибуть не работает либо в замерах генератор случайных чисел.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да чего тут навороченные)) вот если  бы еще приложение на телефон и по wifi или блютуз выводилась скорость))

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

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

кстати все таки ардуино про мини или микро?

Grig
Offline
Зарегистрирован: 26.01.2017

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проще всего тебе проверить отсюда и почитай ниже. раскомментируй 58 строку. только скорость будет в терминале в 10 больше. и 94мм это большое расстояние. минимальная измеряемая скорость будет большая. 

Grig
Offline
Зарегистрирован: 26.01.2017

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пройди уроки джереми блюма до 6 минимум. когда пройдешь пиши

Grig
Offline
Зарегистрирован: 26.01.2017

Говорю что в програмирование 0 вот в электронике соображаю поял в своё втемя трансиверы уилки блоки питания.Я сейчас как динозавр ,паять ни чего не надо на всё есть чипы хренипы микроплаты, только програмируй и будет тебе счастье а я как раз в этом деле далёк!!!!!

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

KJMC
KJMC аватар
Offline
Зарегистрирован: 23.03.2016

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

но это при условии что умеешь писать приложение на телефон

dekus
Offline
Зарегистрирован: 22.03.2016

Я могу и схему нарисовать и плату развести и программу для микроконтроллера написать и для телефона написать (работал в этих областях). Но мне лень :). Если б какая мотивация была

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

сабля, фломастеры и трехколесный велосипед устроит?))

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

han2001
Offline
Зарегистрирован: 09.01.2015

Я даже больше бы сказал. Этот форум не ради результата, а ради процесса.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

кстати возникла мысль, незнаю насколько это для меня реально: сделать на esp8266. хз как там с прерываниями в плане простоты настройки и примеров. но было бы интересно. погуглю

KJMC
KJMC аватар
Offline
Зарегистрирован: 23.03.2016

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

KJMC
KJMC аватар
Offline
Зарегистрирован: 23.03.2016

Вот google play посоветовали программку
https://play.google.com/store/apps/details?id=com.chronoconnect.mobile.lite
Она по звуку определяет скорость пули. В ютубе видео есть про нее...

Gilmer
Offline
Зарегистрирован: 12.05.2016

jeka_tm пишет:

кстати возникла мысль, незнаю насколько это для меня реально: сделать на esp8266. хз как там с прерываниями в плане простоты настройки и примеров. но было бы интересно. погуглю

Да, была у меня такая мысль. Сделать на ESP-хе с выводом замеров в мобильное приложение. Она, кстати, и пошустрее ардуинки будет. Но вот со временем беда, временно завязал с ардуинками. На счет аппаратных прерываний если я правильно понял можно вешать на любую ногу http://esp8266-arduinoide.ru/prog/ . Программировать её можно в среде Arduino. Так что на мой взгляд реализуемо.

Пока только сделал для себя вариант с беспроводной передачей данных по nrf24l01. 1й модуль это база с TFT дисплеем на которой получаем рассчитываем и выводим информацию. Питается от li-io акума.

На показания не смотрите, это данные переданные вручную, без расчётов (когда тестировал передачу пакетов - теряются пакеты или нет).

Второй модуль трубка с датчиками + ардуинка nano + аккум 18650 + плата заряда + повышайка + nrf24l01. Фото не осталось. Сейчас всё валяется на даче.

Начал даже реализовывать сохранение лога отстрела на карту памяти (в модуле дисплея есть слот) для последующего построения граффиков в экселе для расчёта плато и тд... Но не доделал из-за нехватки времени и возникших сомнений по правильности показаний требуемых скоростей (РСР винт).

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

круто будет время попробую. так как приложение не умею писать для телефона для начала использую blynk

Gilmer
Offline
Зарегистрирован: 12.05.2016

Рекомендую посмотреть в сторону MIT app inventor 2. Для простеньких приложений очень даже ничего. И в освоении не сложный - информации в сети море.

Gilmer
Offline
Зарегистрирован: 12.05.2016

А если заморочиться, то можно и веб страничкой выводить данные =)

Делаем что бы ESP-ка создавала точку доступа, подключаемся к ней, переходим в любом браузере по её IP адресу и видим web страничку с данными. А там и меню настроек реализовать можно и всё что душа пожелает =)

И приложение не надо никакое писать/скачивать.

Эх жалко времени нет =(  

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да как раз про него и думал, я про MIT app inventor 2

я просто попробовал скомпилировать код для есп с прерываниями, инфу еще тогда не нашел, а ссылку позже дали. и оно компилировалось. интересная игрушка получится. и скорее всего на 18650 аккумуляторе или cr123. жрет все таки много есп

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

Gilmer
Offline
Зарегистрирован: 12.05.2016

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я хз как это делается

han2001
Offline
Зарегистрирован: 09.01.2015

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

 
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

han2001
Offline
Зарегистрирован: 09.01.2015

Это я понял уже, поэтому обработку первой и второй кнопки внутри этого условия и стоит, но реакции на нажатие все равно нет

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

void loop(){
  while ( s1 == 0 && s2 == 0 ) {
    //Window_0();

    //========================================================================
    //                         Управление первой кнопкой
    //========================================================================
    if(digitalRead(pin_1)==0 && digitalRead(pin_2)==1){
      delay(50);
      if(digitalRead(pin_1)==0 && digitalRead(pin_2)==1){
        //test=0;
        switch (display_N) {
        case 0: // если главный экран
          display_N=2;
          Window_2(display_2_menu);
          delay(200);
          break;

        case 1: // если экран статистики
          display_N=0;
          Window_0();
          delay(200);
          break;

        case 2: // если меню настроек
          display_2_menu++;
          if(display_2_menu==5) display_2_menu=0;
          Window_2(display_2_menu);
          delay(200);
          break;

        case 3: // если экран калибровки
          display_3_menu++;
          if(display_3_menu==3) display_3_menu=0;
          Window_3(display_3_menu);
          delay(200);
          break;

        case 4: // если настройка масса
          display_4_menu++;
          if(display_4_menu==3) display_4_menu=0;
          Window_4(display_4_menu);
          delay(200);
          break;

        }
      }
    }

    //========================================================================
    //                         Управление второй кнопкой
    //========================================================================
    if(digitalRead(pin_2)==0 && digitalRead(pin_1)==1){
      delay(50);
      if(digitalRead(pin_2)==0 && digitalRead(pin_1)==1){
        // test=0;
        switch (display_N) {
        case 0: 
          first(); 
          break; 
        case 1: 
          Stat();
          break;  
        case 2:
          Settints();
          break;
        case 3:
          Calibr();
          break;
        case 4:
          massa();
          break;
        }
      }
    } 

  } 
  ;
  _delay_ms(500); // wait 500 ms

  if ( s1 != 0 && s2 != 0 ){
    data = 1.06 / (TCNT1 * (1.0 / 16000000.0)); // v = s / t    
    if (n <= 9) {
      DATA[n] = data;
      middle = DATA[n];
      n++;
    }
    if (n>9) {
      lcd.fillRect(5,  3,  39,  8, !color);// если больше 10 выстрелов, стираем рисунок состояния кол-ва выстрелов для подготовки отрисовки состояния кол-ва следующих 10 выстрелов
      lcd.Update();
      n = 0;
    }
  }

  TCCR1B = 0;
  TCNT1 = 0;
  s1 = 0;
  s2 = 0;
}

 

han2001
Offline
Зарегистрирован: 09.01.2015

Так у меня вроде так и сделано

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

может и не  так. я же писал на первый взгляд

han2001
Offline
Зарегистрирован: 09.01.2015

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

KJMC
KJMC аватар
Offline
Зарегистрирован: 23.03.2016

Добра все!

На просторах необъятного нарыл быблиотеки для LCD Nokia 1202 и 1100, может Вам пригодиться...

http://digitalchip.ru/podklyuchenie-ekrana-nokia-1202-k-apparatnomu-spi-...

http://digitalchip.ru/opisanie-funktsiy-graficheskoy-biblioteki-dlya-lcd...

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

спасибо конечно. но я уже накушался с этим дисплеем. у меня 3-4 вида либ есть (ну было точно) под него и плюс своя

han2001
Offline
Зарегистрирован: 09.01.2015

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


 //========================================================================
  //                         Управление первой кнопкой
  //========================================================================
  if(digitalRead(pin_1)==0 && digitalRead(pin_2)==1){
    delay(50);
    if(digitalRead(pin_1)==0 && digitalRead(pin_2)==1){

Заменил delay(50) на такую функцию _delay_ms(50) и лед тронулся. В чем между ними разница?

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

возможно связано что измерение использует таймер, и видно блокирует функцию delay, хотя странно

вторая функция видно работает иначе

han2001
Offline
Зарегистрирован: 09.01.2015

Но факт остается фактом везде заменил на _delay_ms(50)  и все менюшки заработали, правда пока в основное не получается вывалиться, предыдущая менюшка накладывается с основной, но это буду решать дальше.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

han2001
Offline
Зарегистрирован: 09.01.2015

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

han2001
Offline
Зарегистрирован: 09.01.2015

jeka_tm подскажи пожалуйста как ты рисовал символ "M/S" на главном экране, хочу нарисовать "Дж".

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

в программе рисовалке насколько помню

 

han2001
Offline
Зарегистрирован: 09.01.2015

Большое спасибо за ссылку на программу.

Если интересно, то вот что получилось в первом приближении. Приложил библиотеку с обновленными двумя символами (М/С и Дж).

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

молодец. символы в либу не обязательно добавлять. есть библиотечная функция вывода картинки. хранишь в progmem и выводишь куда нужно. ну это вообще

а вообще выглядит хорошо, ничего не бросилось в глаза. давай фото или видео что получилось

han2001
Offline
Зарегистрирован: 09.01.2015

Вот обзорное видео менюшек.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

классно получилось

han2001
Offline
Зарегистрирован: 09.01.2015

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

а я как руки дойдут буду делать на есп. показометр на эксране смартфона

han2001
Offline
Зарегистрирован: 09.01.2015

Так какая там усдчивость, есть время ковыряешься, нет, то дела делаешь. А без твоего кода я и не сделал бы ни когда, а так как доктор Франкенштейн, куски кода сшивал, да подпралял где мне надо. А насадки для себя и делал. Изначально делал хрон для крысы 2100 вставляемый в фальшсвол, а потом сделал переходник на иж-61 для контроля скорости при переходе в PCP.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

покажи когда сможешь как это выглядит на стволе

han2001
Offline
Зарегистрирован: 09.01.2015

Вот, пока ижак не переведен в РСР, хорошо видна трубка переходник со ствола на хрон