Написать скетч для двух плат ардуино нано. Срочно.

Nemtem
Offline
Зарегистрирован: 06.06.2019

Здравствуйте, нужна программа.

Основная задача устройства, измерение частоты сердечных сокращений на основе модуля - датчика Pulsesensor.
Устройство поделено на две части, первая часть "передающая" основана на ардуино нано 328p, она регистрирует с помощью датчика частоту сердечных сокращений, и передают эти данные по блютузу на вторую часть  устройства "приемную". 
Вторая часть "приемная" состоит из: ардуино нано 328p, блуютуз модуля HC_05,  и  дисплей 128X64 OLED IIC . 
На экране ЖК дисплея должно выводится: Среднее занчение частота сердечных сокращений и медианное в цифрах,  Ардуино будет запитываться от 5 Вольт. Датчик чсс тоже 5 Вольт. А блютуз 3.3 Вольта. Расстояние на которое будет передаваться информация с Блютуз, будет около 1-2 метров. Блютуз модули я настроил, на мастер и слейв, листинг имеется. Подключение дисплея по I2C интерфейсу. Все модули и  компоненты  есть.
https://drive.google.com/open?id=1tl66tnYHOIRttTSr2_OnuAjLOnUXfgKq Примерная блок - схема.
Onkel
Offline
Зарегистрирован: 22.02.2016

Nemtem пишет:

Здравствуйте, нужна программа.

Основная зад....ная блок - схема.

Пишите ydom@mail.ru - cделаю. Поскольку Вам нужна высокая надежность, то я напишу код с учетом имеющихся проблем у IDE Arduino, с обходом критических мест и без ардуиновских костылей, могу написать   и на честном С. Проверю на макете, так что Вы получите полностью проверенный, на 100 % проверенный код. Есть опыт работы с мед. техникой, научно- исследовательской по считыванию emg с помощью чипов АD8232 для 1 меда, с фурье - обработкой, для управления нейропротезом предплечья. Пишите ydom@mail.ru

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Onkel пишет:
на честном С ... на 100 % проверенный код
:)

sadman41
Offline
Зарегистрирован: 19.10.2016

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

А тут, в Черноголовке, за несколько часов прямо таки полное покрытие тестами осуществляется. Хоть сейчас бери высоконадёжный скетч, к ракете прикручивай и на Марс запускай.

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

а мне показалось, что в этот раз акцент сдвинут на это

Onkel пишет:
то я напишу код с учетом имеющихся проблем у IDE Arduino, с обходом критических мест и без ардуиновских костылей

а это

Onkel пишет:
могу написать   и на честном С. 

отходит на второй план ))

новая модель !!! так сказать.

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

Ну не умеет он писать на IDE. А учиться поздно. Вот и пытается писать на Си. Который учил 30 лет назад. Хоть как то. Но ведь заказчики ведутся на его рекламу, что это лучше. Главное - к своему неумению подвести научную базу. 

promavto
Offline
Зарегистрирован: 30.04.2013

Onkel пишет:

Пишите ydom@mail.ru - cделаю.

Какой работоспособный человек. За каждое предложенние берется. А я вот, лентяй, четыре проекта уже пол года закончить не могу. Перестал брать новые уже около года. Молодец мужчина.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

За то какие у него фонтаны ! Вот реализовал себя :) В них си отмывает. Как отмоет, сразу в фонтане воду меняют :) А еще он лучше всех знает сколько в секунде миллисекунд и его очень смешит слово асинхронник, особенно если его с телефона написали :) Он его под подушку кладет, когда спать ложиться !

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

И что ? Этот заказчик в авторитете ? После того как устроит тут срач, изгадил другого исполнителя, который дал ему дельные советы, а потом этот онкель за него заступился, жопу так сказать подлизал... Вот тут у них кошачья свадьба :) Они друг друга уважают, а остальные, особенно ТЫ, ну сам понимаешь кто :)  

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

sadman41 пишет:

Что интересно - у монстров типа Майкрософт нет 100% обезбаженного кода.

А разве кто-то говорил про "обезбаженный"? Это Вы придумали. Говороили про
Onkel пишет:
100 % проверенный код.
, а проверенный и "обезбаженный" - это две большие разницы.

Совсем недавно слышал диалог:

- За эти деньги Вы готовы сделать нам безопасный периметр?
- Нет, за эти деньги мы готовы сделать периметр, удовлетворяющий норматвным требованиям по безопасности.

Не путайте понятия.

qbit
Offline
Зарегистрирован: 18.03.2019

alex_ivanoff_31 пишет:

Вообще-то ему сегодня заказчик сказал спасибо за его работу! см http://arduino.ru/forum/ishchu-ispolnitelya/nebolshoi-sketch-dlya-arduin...

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

#include <TimerOne.h>

void tick1ms( void );

typedef struct {
 long tachometer;
 long active_output;
 long out_off;
} TACHOMETER_TIMERS;

TACHOMETER_TIMERS tt;


//////////////////
void setup()
...
Timer1.initialize(1000);
Timer1.attachInterrupt( tick1ms );
memset( tt, 0, sizeoff( tt ) );

//////////////////
void loop()
...
task_tachometer();


//////////////////
void tick1ms( void ) { tt.tachometer++; tt.active_output++; tt.out_off++; }

//////////////////
void task_tachometer( void ) {

//Если тахометр > 1000 и ДТ1 меньше 500 включаем выход
  if( ( tachometer > 100 ) && ( DT1 < 500 ) ) { digitalWrite( 1, HIGH ); }

// Если тахометр < 1000 в течении 10 секунд выключаем выход
  if( tachometer < 1000 ) {
    if( tt.tachometer >= 10000 ) {
      digitalWrite( 1, LOW );
      tt.active_output = 0;
      tt.out_off = 0;
    }
  } else {
    tt.tachometer = 0;
    if( tt.active_output > 60000 ) {
      digitalWrite( 1, HIGH );
      if( tt.out_off > 30000 ) {
        digitalWrite( 1, LOW );
        tt.active_output = 0;
        tt.out_off = 0;
      }
    }
  }
}

 

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

Так у вас не на "частном сИ"

Ни считается.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я бы даже сказал - на инопланетном Си: sizeoff( tt ) 

sadman41
Offline
Зарегистрирован: 19.10.2016

Ворота пишет:

sadman41 пишет:

Что интересно - у монстров типа Майкрософт нет 100% обезбаженного кода.

А разве кто-то говорил про "обезбаженный"? Это Вы придумали. Говороили про
Onkel пишет:
100 % проверенный код.
, а проверенный и "обезбаженный" - это две большие разницы.

Сорри, отвык от marketing bullshit :(

Думал, что если проверенный - значит во всех рабочих и критических режимах.

qbit
Offline
Зарегистрирован: 18.03.2019

sadman41 пишет:

Я бы даже сказал - на инопланетном Си: sizeoff( tt ) 

Бедем считать что Ваш препроцессор нашел 1ю ошибку.

sadman41
Offline
Зарегистрирован: 19.10.2016

Вторую.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Кто разрешил отключать сайз !?

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

qbit пишет:
за задачу, которая решается за время распития чашки коффе
Тока не компилируется :(

qbit
Offline
Зарегистрирован: 18.03.2019

Лог с ошибками приведи. 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

А что сам запустить компилятор не можешь?

Сначала ругается на незакомментированные многоточия в строка 16 и 23. Если закомментировать. то ругается на sizeoff в строке 19. Потом на отсутствие фигурных скобок в setup и loop.  Дальше не проверял, мне хватило.

Onkel
Offline
Зарегистрирован: 22.02.2016

brokly пишет:

За то какие у него фонтаны ! Вот реализовал себя :) В них си отмывает. Как отмоет, сразу в фонтане воду меняют :) А еще он лучше всех знает сколько в секунде миллисекунд и его очень смешит слово асинхронник, особенно если его с телефона написали :) Он его под подушку кладет, когда спать ложиться !


Ув. Брокли, вам уже 6 десяток, а Вы тут злитесь, нервничаете! Я вот еще фонтан сделал- перед Домом Ученых в Черноголовке, у фонтана работает вечернее кафе, приезжайте, попейте кофейку, чайку с конфетками или круассанами, успокойте нервы и не кидайтесь уже на людей, неужели Вам с этого легче? Заодно и освежите в памяти сколько микросекунд в секунд.

qbit
Offline
Зарегистрирован: 18.03.2019

Ворота пишет:

А что сам запустить компилятор не можешь?

Сначала ругается на незакомментированные многоточия в строка 16 и 23.

:) Это Ваша "первая программа", коль пытаетесь компильнуь многоточие? (Сарказм). Был приведен фрагмент кода, а не готовый к сборке код. Попробыйле это:


#include <TimerOne.h>

void tick1ms( void );

typedef struct {
 long tachometer;
 long active_output;
 long out_off;
} TACHOMETER_TIMERS;

TACHOMETER_TIMERS tt;

int tachometer, DT1;

//////////////////
void setup() {
TimerOne Timer1;
Timer1.initialize(1000);
Timer1.attachInterrupt( tick1ms );
memset( (void *)&tt, 0, sizeof( tt ) );
}

//////////////////
void loop() {
 task_tachometer();
}

//////////////////
void tick1ms( void ) { tt.tachometer++; tt.active_output++; tt.out_off++; }

//////////////////
void task_tachometer( void ) {

//Если тахометр > 1000 и ДТ1 меньше 500 включаем выход
  if( ( tachometer > 100 ) && ( DT1 < 500 ) ) { digitalWrite( 1, HIGH ); }

// Если тахометр < 1000 в течении 10 секунд выключаем выход
  if( tachometer < 1000 ) {
    if( tt.tachometer >= 10000 ) {
      digitalWrite( 1, LOW );
      tt.active_output = 0;
      tt.out_off = 0;
    }
  } else {
    tt.tachometer = 0;
// Если выход был не активен в течении 1 минуты включаем выход на 30 секунд
    if( tt.active_output > 60000 ) {
      digitalWrite( 1, HIGH );
      if( tt.out_off > 30000 ) {
        digitalWrite( 1, LOW );
        tt.active_output = 0;
        tt.out_off = 0;
      }
    }
  }
}
karamzin01
Offline
Зарегистрирован: 08.03.2018

Р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии имеются

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

qbit пишет:

Был приведен фрагмент кода, а не готовый к сборке код.

Попробыйле это:

Из поста #10 это никак не слудует.

qbit пишет:

Попробыйле это:

Оно мне точно надо? :-)

Я не понял, что ты пытаешься мне доказать? Что я в посте #17 не прав? Там что-то неверно написано? Или что ты мне доказываешь?

qbit
Offline
Зарегистрирован: 18.03.2019

Ворота пишет:

Оно мне точно надо? :-)

Это Вам решать. У Вас не собрался приведенный фрагмент кода. Специально для Вас подправил. Не надо - проходите мимо.

Ворота пишет:

Я не понял, что ты пытаешься мне доказать? Что я в посте #17 не прав? Там что-то неверно написано? Или что ты мне доказываешь?

Для Вас - ничего.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Ну, раз ничего, давай прекратим.

vvadim
Offline
Зарегистрирован: 23.05.2012

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

Onkel
Offline
Зарегистрирован: 22.02.2016

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

Без костылей. В том-то и дело, что я честно заработал, написав код  без костылей, а также собрав макет, полностью идентичный применяемому клиентом, проверил код на макете, снял видео как все работает и потом дополнительно проконсультировал клиента по текущим вопросам модификации кода.
В примере с timer.one не будет правильно работать pwm на пинах 9 и 10 , и будет конфликт с библиотекой серво.
 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

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

Но перегибать палку тоже не надо. Вот ты пишешь: "TimerOne  и есть костыль, который оставит заказчика без двух pwm выходов (9 и 10), будет конфликтовать с библиотекой servo, поскольку задействует и модифицирует timer1 микроконтроллера". И чо?  Если в проекте не нужны ни servo, ни pwm на тех пинах, то чем плохо, что она их использует? Твой чистый С не использует таймеров? Или не модифицирует их.

Заявление: "Из-за страшного костыля юзер лишится доступа к нахрен ему не нужной функциональности" - это как раз для срача. Действительно, лишится - не поспоришь,. Только остаётся вопрос: ну, лишится, и чо? Оно ему надо?

Onkel
Offline
Зарегистрирован: 22.02.2016

Ворота пишет:

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

Но перегибать палку тоже не надо. Вот ты пишешь: "TimerOne  и есть костыль, который оставит заказчика без двух pwm выходов (9 и 10), будет конфликтовать с библиотекой servo, поскольку задействует и модифицирует timer1 микроконтроллера". И чо?  Если в проекте не нужны ни servo, ни pwm на тех пинах, то чем плохо, что она их использует? Твой чистый С не использует таймеров? Или не модифицирует их.

Заявление: "Из-за страшного костыля юзер лишится доступа к нахрен ему не нужной функциональности" - это как раз для срача. Действительно, лишится - не поспоришь,. Только остаётся вопрос: ну, лишится, и чо? Оно ему надо?


Если бы Вы заметили, что примененный код будет конфликтовать с библиотекой servo и два PWM выхода - 9 и 10 перестанут работать, то ваше решение было бы идеальным.  Я конечно немного погорячился и переборщил с сарказмом, но я больше не буду. Простите пожалуйста засранца. Мир жвачка?

b707
Offline
Зарегистрирован: 26.05.2017

Onkel пишет:

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

6 июня в 2 часа  размещен заказ. и к 16 часам 7-ого - все вышепроцитированное? - силен!

а срач где? - удалили уже?

Onkel
Offline
Зарегистрирован: 22.02.2016

b707 пишет:

 

6 июня в 2 часа  размещен заказ. и к 16 часам 7-ого - все вышепроцитированное? - силен!


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

Onkel
Offline
Зарегистрирован: 22.02.2016

b707 пишет:

а срач где? - удалили уже?

Какой срач? До поста #25 включительно - он и есть.

 

b707
Offline
Зарегистрирован: 26.05.2017

Onkel, есть личный вопрос - по мылу засвеченному выше в ветке напишу. не против?

b707
Offline
Зарегистрирован: 26.05.2017

Onkel пишет:

Какой срач? До поста #25 включительно - он и есть.

 

это разве срач? Детский сад какой-то.

Onkel
Offline
Зарегистрирован: 22.02.2016

b707 пишет:

Onkel, есть личный вопрос - по мылу засвеченному выше в ветке напишу. не против?

Конечно. Мыл открыт. ydom@mail.ru  - cамый честный С на рынке. Повелитель фонтанов. Гроза ПИД - регуляторов.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Onkel пишет:

Если бы Вы заметили, что примененный код будет конфликтовать с библиотекой servo и два PWM выхода - 9 и 10 перестанут работать, то ваше решение было бы идеальным.  

Моё решение? Это вон тот некомпилируемый говнокод - моё решение? Ты меня с кем-то жестоко перепутал. Ладно, за это (за перепутние) прощаю - жвачка, так жвачка. Но ... всё же ... людей-то не путай!

Onkel
Offline
Зарегистрирован: 22.02.2016

Ворота пишет:

Моё решение? Это вон тот некомпилируемый говнокод - моё решение? Ты меня с кем-то жестоко перепутал. Ладно, за это (за перепутние) прощаю - жвачка, так жвачка. Но ... всё же ... людей-то не путай!

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