1 2 3 4 5 6 7 8 9 10 7.5/10 7,33оценок: 6

Моделирую 3D-принтер H-bot

Тема в разделе "Самодельные инструменты и оборудование", создана пользователем DIYMan, 26.03.17.

Метки:
  1. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Собрал ось XY. Ну... почти собрал :)

     
  2. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Запустил оси X и Y:

     
  3. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Тут подсмотрел, что в Marlin есть поддержка G-кодов M42 и G4, что даёт возможность управлять импульсами на пинах. А пинов свободных в RAMPS - будет, хотя бы потому, что не все концевики заюзаны (использую только концевики минимальных положений).

    И подумалось мне, что можно по стартовому и конечному G-code (поля для их ввода есть в любом слайсере) сделать голосовую сообщалку, типа "Печать начата" и "Печать окончена", тем более, что DFPlayer Mini и 3.3В Arduino Pro Mini сиротливо ждут своего часа - не солить ведь их ;)

    Набросал код, прошил Pro Mini, соединил всё - работает: сколько импульсов пришло - такой файл и проигрывает, например - если пришло 5 импульсов - будет играть файл mp3/0005.mp3 на SD-карте. Динамик, если усилок не использовать (тоже есть в загашнике) - до 3 Ватт, в принципе, слышно нормально.

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

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

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

    Код, собственно, довольно простой (вдруг кому интересно):

    Код:
    //----------------------------------------------------------------------------------------------------------------------------------------------
    /*
    Прошивка для управления по командам M42 и G4, для вывода голосовых сообщений в формате MP3 через DFPlayer Mini.
    DFPlayer подключается через SoftwareSerial.
    */
    //----------------------------------------------------------------------------------------------------------------------------------------------
    // настройки прошивки
    //----------------------------------------------------------------------------------------------------------------------------------------------
    #define SERIAL_SPEED 9600 // скорость работы с плеером DFPlayer mini, бод
    #define SERIAL_RX_PIN 10 // пин RX для SoftwareSerial
    #define SERIAL_TX_PIN 11 // пин TX для SoftwareSerial
    #define PLAYER_INIT_DELAY 2000 // сколько миллисекунд ждать инициализации плеера, прежде чем настраивать обработчик прерывания
    #define PLAYER_INITIAL_VOLUME 24 // начальная громкость плеера (0-30)
    #define INTERRUPT_PIN 2 // на каком пине ловим импульсы (должен быть подтянут к питанию резистором на 10К !!!)
    #define MAKE_DECISION_TIME 1000000 // через сколько мкс, если не было импульсов - принимать решение, что пачка импульсов закончена
    //#define _DEBUG // закомментировать для выключения отладочного режима
    //----------------------------------------------------------------------------------------------------------------------------------------------
    // привязки кол-ва импульсов к мелодиям делаются так: мелодии имеют имена файлов по кол-вам импульсов, и лежат в папке mp3, например, для двух импульсов
    // мелодия будет называться mp3/0002.mp3, для 12 импульсов - mp3/0012.mp3 и т.п.
    //----------------------------------------------------------------------------------------------------------------------------------------------
    // код прошивки
    //----------------------------------------------------------------------------------------------------------------------------------------------
    #include <SoftwareSerial.h>
    #include "DFPlayer_Mini_Mp3.h"
    //----------------------------------------------------------------------------------------------------------------------------------------------
    volatile bool triggered = false;
    volatile uint32_t triggeredTime = 0;
    volatile uint32_t pulseWidth = 0;
    SoftwareSerial sSerial(SERIAL_RX_PIN,SERIAL_TX_PIN);
    //----------------------------------------------------------------------------------------------------------------------------------------------
    uint16_t pulsesCounter = 0;
    uint32_t lastPulseAt = 0;
    bool inited = false;
    //----------------------------------------------------------------------------------------------------------------------------------------------
    void interruptHandler()
    {
      if(digitalRead(INTERRUPT_PIN) == LOW)
      {
        triggeredTime = micros();
      }
      else
      {
        if(triggeredTime && !triggered)
        {
          pulseWidth = (micros() - triggeredTime);
          triggeredTime = 0;
          triggered = true;
        }
      }
    }
    //----------------------------------------------------------------------------------------------------------------------------------------------
    void setup()
    {
      #ifdef _DEBUG
      Serial.begin(SERIAL_SPEED);
      Serial.println("Wait for player init done...");
      #endif
    
      // настраиваем плеер
      sSerial.begin(SERIAL_SPEED);
      mp3_set_serial(sSerial); // устанавливаем, через какой Serial будет работать DFPlayer с нами
    
    
    }
    //----------------------------------------------------------------------------------------------------------------------------------------------
    void loop()
    {
    
      if(!inited)
      {
        if(millis() > PLAYER_INIT_DELAY)
        {
          inited = true;
       
          mp3_set_volume(PLAYER_INITIAL_VOLUME); // устанавливаем громкость плеера
       
          // назначаем обработчик прерывания
          attachInterrupt(digitalPinToInterrupt(INTERRUPT_PIN), interruptHandler, CHANGE);
       
          #ifdef _DEBUG
          Serial.println(F("Ready."));
          #endif
        }
      }
    
    if(triggered)
    {
    
       lastPulseAt = micros();
       pulsesCounter++;
    
       #ifdef _DEBUG
       Serial.print("Pulse width: ");
       Serial.println(pulseWidth); 
       #endif
         
       triggered = false;
    }
    else
    {
       if(micros() - lastPulseAt > MAKE_DECISION_TIME)
       {
         lastPulseAt = micros();
       
          if(pulsesCounter > 0)
          {
            #ifdef _DEBUG
            Serial.print("Play melody number: ");
            Serial.println(pulsesCounter);
            #endif
    
            mp3_stop();
            mp3_play(pulsesCounter); // запустили нужную мелодию
            mp3_single_loop(false); // выставили флаг циклического проигрывания       
           
            pulsesCounter = 0;
           
          } // if
       }
       
    }
    
    
    }
    //----------------------------------------------------------------------------------------------------------------------------------------------
    
    Ну и приложил все потроха аттачем, на всякий.
     

    Вложения:

  4. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Концевички и про голосовые оповещения:

     
  5. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Набросал платку для управления озвучкой (исходники в аттаче). Есть джампер для выбора питания, на случай разных плат Pro Mini - на 3.3В и на 5В.

    screen.png

    Если будут какие замечания - велкам, что называется, а то из меня разводильщик плат - тот ещё. На макетке попробовал - всё робит, опторазвязка, все дела. Pro Mini и DFPlayer будут вставляться в кроватки, чтобы вынуть, при необходимости, если вдруг плата другая будет.
     

    Вложения:

    Последнее редактирование: 23.04.18
  6. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Отутюжил, сейчас сохнет, как высохнет - буду просматривать/подкрашивать по необходимости:

    IMG_3062.JPG

    Завтра метнусь в лабаз за лимонкой, и вперёд - травить, травить, травить :)
     
  7. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Вытравил:

    IMG_3063.JPG

    Две пачки лимонной кислоты, 100 мл перекиси, столовая ложка соли, 15 минут. Буду потихоньку сверлить. Вот лудить у мну после сверловки не очень получается - припой в отверстия затекает :( Мож есть какой рецепт?
     
  8. HANTER333
    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156

    HANTER333

    Живу здесь

    HANTER333

    Живу здесь

    Регистрация:
    21.12.15
    Сообщения:
    1.617
    Благодарности:
    1.156
    Хим. лужение:)], ну а если нет химии, берешь экранировку (миллиметра 2-2.5мм. китайцы кстати продают), хорошенько смазываешь ее RMA223 (у тебя есть), и через нее залуживаешь плату (только не перегревай;)).
     
    Последнее редактирование: 24.04.18
  9. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Где ты раньше был :) Экранировка есть, флюс есть, но я залудил как лошара - просто залил всё спиртоканифолью и жирно протёр паяльником. Получилась жесть, но мне пофик, главное - работает :)

    За совет спасибо, учту в следующих пробах ;)
     
  10. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Плата голосовых событий, кривозалуженная и кососпроектированная :)]:aga::

     
  11. chifcom
    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4

    chifcom

    Участник

    chifcom

    Участник

    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4
    Адрес:
    Новороссийск
    Хим лужение сам начал недавно использовать, намного лучше и быстрее чем сплав Вуду или Розе. Благо жидкость стоит вменяемых денег и продается во многих профильных магазинах. Свою жидкость я брал в БАУЦЕНТРЕ. Процесс лужения занимает 3минуты. Бросил блату в пакет, налил жикости и все.
     
  12. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Что за жидкость? Название, фамилия? :)
     
  13. chifcom
    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4

    chifcom

    Участник

    chifcom

    Участник

    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4
    Адрес:
    Новороссийск
  14. chifcom
    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4

    chifcom

    Участник

    chifcom

    Участник

    Регистрация:
    16.04.18
    Сообщения:
    8
    Благодарности:
    4
    Адрес:
    Новороссийск
    Хим лужение для меня просто находка после того как платы для устройств на заказ приходится покрывать паяльной маской с надписями компонентов плюс ко всему металлизация переходных отверстий.
    Если будет нужда или интерес освоить металлизацию отверстий, могу поделится реактивами, как я понял мы не далеко друг от друга живем и если что автобусом могу передать.
     
  15. DIYMan
    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890

    DIYMan

    Любопытный рукосуй :)

    DIYMan

    Любопытный рукосуй :)

    Регистрация:
    19.05.13
    Сообщения:
    8.309
    Благодарности:
    6.890
    Адрес:
    80 км от Краснодара
    Принято к сведению, спасибо ;):hello: