Как подключить к Arduino эхолот Humminbird?

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Bif+, 12 фев 2019.

  1. Bif+

    Bif+ Гик

    Да юсб и MAX232 с конденсаторами. Смотрите комменты выше.
     
  2. Bif+

    Bif+ Гик

    422 вообще не нужен, если Вы не хотите тянуть по витой паре 1200м. Достаточно собрать схемку из интернета на max232. 8 нога вход - 9 выход, 13-вход, 12- вых. На схеме все хорошо видно, проблема что бы 12в не подать на ардуину.
     
  3. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Не понимаю зачем MAX232.. Она нужна только для старых компов с классическим двуполярным RS232. Ладно. Похоже я что-то пропустил. Спокойной ночи.
     
  4. Bif+

    Bif+ Гик

    Все пробовал! С эхолота 2 провода RX и TX. RX для подключения вай-фай поплавкового трансъюдера и GPS навигатора. Я за месяц столько перелопатил иформации, в том числе и по RS. В данном случае RS нужна для инвертирования сигнала с эхолота, практика показала, иначе-кракозябры выводит.
     
  5. Bif+

    Bif+ Гик

    Все это я делал. Понимаю, что чудес на свете не бывает: если выводится на монитор послед. порта сигнал и я его направляю на ардуину, а она его не видит - что может быть не так?
     
    Последнее редактирование: 13 мар 2019
  6. tpolimer

    tpolimer Нерд

    Сейчас на работе и раньше вечера не доберусь.

    В каком мониторе порта Вы смотрите?
    Пришлите фото (а то выводится в монитор послед. порта и потом направил на ардуину). Если монитор порта не от Arduino, то проблема может быть в подключении и в формате Serial порта (Start Bit, Data Bit, Parity Bit, Stop Bit).

    Если через монитор порта Arduino, то пришлите код, который выводит данные в монитор порта Arduino. Вечером гляну, если интернет нормальный, можем пообщаться со скайпом и TeamViewer.
     
  7. Bif+

    Bif+ Гик

    Добрый день, уважаемое сообщество!
    Сегодня подключил Ардуино нано с мини юсби кабелем и случилось чудо - заработало. Или кабель, или arduino Mega2560 мертвая, потом разберусь. Выдает в монитор порта Arduino:
    - I
    Char - N
    Char - D
    Char - P
    Char - T
    Char - ,
    Char - 3
    Char - .
    Char - 8
    Char - ,
    lastDeep - 3.80
    Char - 0
    Char - .
    Char - 0
    Char - *
    Char - 4
    Уважаемый tpolimer !
    Большое Вам спасибо за помощь!
    Если можно, то еще один вопрос: что надо изменить в коде, что бы выводились только две цифры - в данном случае 3.8, т.е убрать - 0 ?
     
    Последнее редактирование: 13 мар 2019
  8. tpolimer

    tpolimer Нерд

    Об этом подумал бы в последнюю очередь.

    Удаляем
    Код (C++):
    Serial.print("Char - ");
    Serial.println(lastChar);
    А так же
    Код (C++):
    Serial.print("lastDeep - ");
    И он будет печатать, только глубину.
     
  9. Bif+

    Bif+ Гик

    Это все я закомментировал ( // ). Как подрезать- 0 ? И еще, мой первичный код с Вашими изменениями тоже работает, но, думаю, что буду использовать Ваш код.
     
  10. Bif+

    Bif+ Гик

    Вообще вся эта затея из серии про автопилот для лодки и троллинга по заданной глубине.
    Двумя потенциометрами R1 и R2 задаются глубины 6.0 и 7.5. Получаемая глубина из Эхолота сравнивается с заданными величинами R1 и R2 и, в зависимости >,< или = ,серва крутит румпель. Как считаете, какие могут быть "подводные камни"? И возможно ли это соорудить на одной ардуине?
     
  11. Bif+

    Bif+ Гик

    Как перевести полученные показания в аналоговые:
    Код (C++):
    lastDeep = analogRead(lastDeep);      
    lastDeep = map(lastDeep, 0, 1023, 0, 100);
     
  12. tpolimer

    tpolimer Нерд

    Для печати, Serial.println(lastDeep) заменить на Serial.println(lastDeep, 1), подробнее об этом - http://arduino.ru/Reference/Serial/Print.

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

    Но проблемы есть.
    1. У Вас мало знаний и опыта в программировании, сужу по этому вопросу
    Строка lastDeep = analogRead(lastDeep), а смысл сохранять глубину с эхолота, чтобы потом ее перезаписать с аналогового порта?
    Тут просится отдельная переменная или смыл мне не понятен.

    Строка lastDeep = map(lastDeep, 0, 1023, 0, 100).
    Сам map, это функция вида map(int, int, int, int), параметры с которыми они работаю int, у нас float. Тут просится приведение float к int, предварительно умножить на 10. Получится, глубина 3,5 будет у нас в системе как 35 и т.д., тогда map отлично работает.

    1.1. Четко понимать, что требуется и подробно расписать себе, все шаги в программе.
    Тогда можно решать их постепенно.

    UPD. И да, увы придется учится...
     
  13. Bif+

    Bif+ Гик

    3 месяца назад я не знал,что такое ардуино.
    lastDeep = analogRead(lastDeep); здесь должен быть пин, с которого хотел снимать сигнал lastDeep, полученый от другой ардуины. Думал задействовать вторую ардуину, поэтому задал такой вопрос. Умножил на 100,т.к
    3.50. На одной ардуине ,наверное, для меня будет еще сложно. буду делать на двух. Сейчас разбираюсь с кодом для второй ардуины.
     
  14. Серво в зависимости от глубины крутить не проблема, но вот как это приведет к автопилотированию - это большой вопрос.
     
  15. tpolimer

    tpolimer Нерд

    Сам сейчас учусь, чего-то не знать или быть в начале пути это нормально.

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

    analogRead читает аналоговый сигнал, на другой ардуине его нужно генерировать.

    Умножайте на 10 и приводите к int. Так как глубины 3.52 Вы ни когда не получите, а после приведения к int получим 35.

    Честно говоря не вижу все картины и мне сложно представить зачем там 2-ая ардуина.

    Если делать автопилот, а не просто крутиться, то соглашусь с
    И тут проблема не ардуине или их кол-ве, а в том, что не понятно, как должен работать алгоритм.
     
  16. Bif+

    Bif+ Гик

    Когда в лодке двое - проблем нет: один держит штурвал, второй вываживает спиннингом.
    А когда один, то надо либо останавливаться, либо развернет течением. Троллингисты поймут.
    Будем учиться, но мне уже трудно - мне уже 65.
     
  17. Алгоритм никак не может работать. Нельзя сделать автопилот по одному значению, ортогональному степеням свободы перемещения.
     
  18. tpolimer

    tpolimer Нерд

    Тут нужно понимать, как работает алгоритм управления, расписанный и понятный любому, учитываемый все нюансы. И только потом, можно что-то программировать.

    Увы приходится, сам сейчас учусь. Как всегда, читаем, подсматриваем за другими, спрашиваем:).

    Не до конца понял, что имелось ввиду. Сам пока не понимаю, как должно быть сделано управление.
     
  19. Bif+

    Bif+ Гик

    В свое время я делал устройство на самодельном компасе с магнитной стрелкой 125мм ,и пяти оптронах, и семи реле. Система работала, но только при минимальной волне. В штиль довольно хорошо. Реле быстро подгорали. Работало не долго. Сейчас познакомился с ардуино и решил сделать на более высоком уровне.
     
  20. Bif+

    Bif+ Гик

    Алгоритм довольно простой:
    Идем против течения, берег слева. Левым потенциометром задаем 6м, правым - 7.5м. Датчик эхолота стоит на носу лодки. При пересечении 6м к берегу, т.е DPT<6, штурвал вправо. При возвращении, те DPT>6m -штурвал на 3сек до конца влево, затем - прямо. По 7.5м таже ситуация, но наоборот. Есть еще несколько промежуточных команд с соответствующими задержками по удержанию курса. В идеале подключить к системе электронный компас для удержания направления с определенной дельта. В первых постах в ветке "закажу проект" :
    http://forum.amperka.ru/threads/Нуж...пилота-на-компасе-mpu6050-arduino-nano.17330/