Arduino +can-bus, ищу исполнителя.

aragon2003
Offline
Зарегистрирован: 22.08.2019

День добрый.

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

Скорость шины 100кбит.

Периодичность сигнала 100мс.

Первый сигнал  id-130,l-5, 00 01 34 3F F0

Второй id-130,l-5, 45 41 39 BF E3

Хотелось бы проконсультироваться по поводу пригодности ардуино уно для этих целей.Возможно нано будет лучше?

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

Спасибо.

aragon2003
Offline
Зарегистрирован: 22.08.2019

P.S.Аналоговый вход для подачи плюсового сигнала любой,на ваше усмотрение.

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

Нано лучше. 

aragon2003
Offline
Зарегистрирован: 22.08.2019

Gas311 пишет:

Нано лучше. 


Можете обьяснить чем он лучше? Я действительно не в теме...

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

У неё 8 аналоговых входов, у уно 6. В остальном одинаковы и программы одни и те же и работают одинаково

Но мне нано больше нравится

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

Компактней.

Могу написать скетч: wrk.sadman@gmail.com

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

Ну да. Компактней

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

Арагон, для Вашей задачи разницы между Уно и Нано нет. Если уже есть уно - используйте ее.
Если не найдете исполнителя пишите ded@cur-ex.ru

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

ТС, купите вот это https://www.canny.ru/c5nano/ , самое дешевое решение для вашей задачи.

aragon2003
Offline
Зарегистрирован: 22.08.2019

Спасибо,но проблема не в железе,а в программной реализации...

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

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

 

aragon2003
Offline
Зарегистрирован: 22.08.2019

Начинаю к этому склоняться...)

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

aragon2003 пишет:
Начинаю к этому склоняться...)

что, неужели не нашли исполнителя?

aragon2003
Offline
Зарегистрирован: 22.08.2019

b707 пишет:

aragon2003 пишет:
Начинаю к этому склоняться...)

что, неужели не нашли исполнителя?


Нет,люди предлагают...просто ситуация какая...варианта у меня два...первый-собрать все железо самому(оно есть и подключить его проблемы нет),но заминка со скетчем...мне озвучивают ценник в 2000 рублей за скетч,я уважаю чужой труд и не считаю эту цену чрезмерной,но в этом случае теряется экономический смысл самостоятельной сборки потому что есть второй вариант.
Второй вариант-это покупка готового изделия(они есть) за 3000 рублей "под ключ"...т.е. готовый девайс с 5 проводами,подключение элементарное...но так не интересно...) ну и вот я на распутье...)

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

aragon2003 - напишите мне, адрес в сообщении #7, посмотрим что можно сделать

karamzin01
Offline
Зарегистрирован: 08.03.2018

Предложу Лучший вариант - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии имеются

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

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

MaksVV
Offline
Зарегистрирован: 06.08.2015

да ладно вы, там делов то, почти пример из библиотеки. Да простят меня местные

#include <mcp_can.h>
#include <SPI.h>

MCP_CAN CAN0(10);     
uint32_t prev = 0; 

void setup()
{
  CAN0.begin(MCP_ANY, CAN_100KBPS, MCP_8MHZ);
  CAN0.setMode(MCP_NORMAL);   
}

byte data1[5] = {0x00, 0x01, 0x34, 0x3F, 0xF0};
byte data2[5] = {0x45, 0x41, 0x39, 0xBF, 0xE3};

void loop()
{
  if (millis() - prev>100) 
  {
    prev = millis();
      if(digitalRead(A0)) {CAN0.sendMsgBuf(0x130, 0, 5, data1);}
      else                {CAN0.sendMsgBuf(0x130, 0, 5, data2);}
  }
}

 

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

Демпингатор :)

MaksVV
Offline
Зарегистрирован: 06.08.2015

да смешно за такое деньги брать , ей богу. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

b707 пишет:
Демпингатор :)

это если б я дешевле предложил,  а так вообще саботёр ))

aragon2003
Offline
Зарегистрирован: 22.08.2019

MaksVV пишет:

да ладно вы, там делов то, почти пример из библиотеки. Да простят меня местные

#include <mcp_can.h>
#include <SPI.h>

MCP_CAN CAN0(10);     
uint32_t prev = 0; 

void setup()
{
  CAN0.begin(MCP_ANY, CAN_100KBPS, MCP_8MHZ);
  CAN0.setMode(MCP_NORMAL);   
}

byte data1[5] = {0x00, 0x01, 0x34, 0x3F, 0xF0};
byte data2[5] = {0x45, 0x41, 0x39, 0xBF, 0xE3};

void loop()
{
  if (millis() - prev>100) 
  {
    prev = millis();
      if(digitalRead(A0)) {CAN0.sendMsgBuf(0x130, 0, 5, data1);}
      else                {CAN0.sendMsgBuf(0x130, 0, 5, data2);}
  }
}

 

Спасибо большое.если честно,то очень неожиданно.)

aragon2003
Offline
Зарегистрирован: 22.08.2019

brokly пишет:
Вооот. Поэтому я послал его по ссылке, но ему даже лень посмотреть что это и как работает. Там писать то , как раз ничего не надо , все написано зат нас. Тут вот как, труд других тс уважает только на словах, а истинная цель - за копейку канарейку. Все как всегда. ,

я вообще-то решил купить готовое устройство,даже с продавцом списался,но вам несомненно виднее.)

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

MaksVV пишет:

да смешно за такое деньги брать , ей богу. 

Почему смешно? Смешно - это когда ты деньги не взял, а "клиент" тебе две недели мозги трахает с вопросами типа "подключил ардуину к бортовой сети, а программа не работает - наверное неправильно написана". Или когда ты кому-то сделал бесплатно, а потом узнаёшь, что "получатель благ", пользуясь твоей прошивкой, зарабатывает вполне себе реальные деньги. Причём, не испытывая никаких позывов что-то тебе подкинуть из получаемого дохода. Однако, если что-то надо доработать - снова приходит за халявкой.

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

aragon2003 пишет:

я вообще-то решил купить готовое устройство,даже с продавцом списался,но вам несомненно виднее.)

Это четко доказывает мою правоту :) Ссылка то на готовое устройство. Так что мне реально виднее было еще вначале этого гимороя :)

MaksVV
Offline
Зарегистрирован: 06.08.2015

sadman41 пишет:

MaksVV пишет:

да смешно за такое деньги брать , ей богу. 

Почему смешно? Смешно - это когда ты деньги не взял, а "клиент" тебе две недели мозги трахает с вопросами типа "подключил ардуину к бортовой сети, а программа не работает - наверное неправильно написана". Или когда ты кому-то сделал бесплатно, а потом узнаёшь, что "получатель благ", пользуясь твоей прошивкой, зарабатывает вполне себе реальные деньги. Причём, не испытывая никаких позывов что-то тебе подкинуть из получаемого дохода. Однако, если что-то надо доработать - снова приходит за халявкой.

а то что кто-то писал, например, arduino IDE и сделал её открытую. Я думаю, есть много кто зарабатывает, пися в этой среде мега коды. Но разработчики имхуется не сильно  разволновались по этому поводу . Для этого у них на сайте есть кнопочка для пожертвований. Мир не так уж и плох как кажется. Много есть и хороших людей. Хотя толку чето писать, все равно удаляется...

fridgetester
fridgetester аватар
Offline
Зарегистрирован: 09.02.2019

Бисплатно гаваришшь. Молодо-тупо. https://store.arduino.cc/usa/

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

MaksVV пишет:

а то что кто-то писал, например, arduino IDE и сделал её открытую. 

Такова была изначальная стратегия Arduino CC - железо за деньги, IDE "типа бесплатно".  К тому же клиенту продаётся труд, а не IDE: разобраться в задаче; написать так, чтобы прошивка корректно работала в нештатных ситуациях, а не просто была куском из примера, который может заработать на столе и отказать в эксплуатации; объяснить нюансы заказчику.

Я не думаю, что если я к тебе приеду на своей машине со своей фарой, то ты заменишь мне бесплатно старое на новое - ведь твоих денежных затрат там нет, просто время потраченное. Ну, или просто на скотч прихерачишь и провод питания кинешь из форточки. Это как раз эквивалентно предоставлению переделанного за полминуты примеру из библиотеки: ну работает же, подумаешь - отвалится, как только за ворота выедешь. 

MaksVV
Offline
Зарегистрирован: 06.08.2015

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

все , больше не пишу. 

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

MaksVV пишет:

например сделать сброс инициализации давления в шинах. или сброс сервис пробега на щитке приборов -  нажать пару клавиш. Ну или щётки стеклоочистителя поменять. Вот такие работы можно делать бесплатно. 

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

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

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

b707 пишет:

 Клиентам не помогают, им оказывают услуги.

Особо хитрожопым - услуги оказывают бесплатна. :) 

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

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

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

MaksVV
Offline
Зарегистрирован: 06.08.2015

убедили

Puta
Offline
Зарегистрирован: 29.09.2019

Простите начинающего,знаю что в этой теме вопросы задавать не принято,но опыта никакого пока,просто читаю темы разные и пытаюсь нахвататься чужого опыта.В скетче который выше приведен что делается? ТС выложил техзадание что при подаче сигнала на аналоговый вход передача одного фрейма в кан-шину должна смениться на второй и опять должна начаться передача первого при снятии сигнала с этого аналогового входа и так до отключения.Я не могу понять где в скетче реализовано измерение входного сигнала,т.е. при уровне хай транслируем такой сигнал,а при уровне на входе лоу--передаём другой.Извините за  вопросы дилетанта Вход для сигнала выбран А0,правильно?.

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

Puta пишет:

не могу понять где в скетче реализовано измерение входного сигнала,т.е. при уровне хай транслируем такой сигнал,а при уровне на входе лоу--передаём другой.

строчки 21 и 22

Puta
Offline
Зарегистрирован: 29.09.2019

b707 пишет:

строчки 21 и 22

а где в этих строчках заданы условия,т.е. лоу и хай?Насколько я понимаю,там только чтение с аналогового входа? В моём понимании должно быть что-то типа "если на входе уровень лоу,то делаем вот это,иначе делаем вот то." Где в этих строках определение уровня на входе?

И еще вопрос если позволите..Вход не нужно подтягивать к минусу? Там ведь при отсутствии сигнала может хаотично меняться уровень на входе?

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

Puta пишет:

а где в этих строчках заданы условия,т.е. лоу и хай?Насколько я понимаю,там только чтение с аналогового входа? В моём понимании должно быть что-то типа "если на входе уровень лоу,то делаем вот это,иначе делаем вот то." Где в этих строках определение уровня на входе?

 

В этом коде вход используется не как аналоговый, а как цифровой. С цифрового входа мы можем получить сигналы  LOW и HIGH, они же 0 и 1, они же "ложь" и "истина"

Так что запись

if (digitalRead(pin))   эквивалентна строчке if (digitalRead(pin) == HIGH)

Подобные вопросы пропадут, как только вы прочитаете первую половину учебника по языку С

Puta
Offline
Зарегистрирован: 29.09.2019

b707 пишет:

В этом коде вход используется не как аналоговый, а как цифровой. С цифрового входа мы можем получить сигналы  LOW и HIGH, они же 0 и 1, они же "ложь" и "истина"

Так что запись

if (digitalRead(pin))   эквивалентна строчке if (digitalRead(pin) == HIGH)

Подобные вопросы пропадут, как только вы прочитаете первую половину учебника по языку С

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

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

может