Хабрахабр

Поделки из нерабочих HDD — мини-помпа

Да не простая — с ограничениями по габаритам — толщина до 25мм, ширина до 50мм (длина — уже можно варьировать). Понадобилась мне как-то для будущих самоделок водяная помпа. Не найдя в продажах желаемого (в основном — по габаритам), по своей упоротойупорной натуре приступил к реализации своего решения данного вопроса! Из желаемых характеристик — напор 1м и расход 100л/ч.

Внимание — много фото!

«Мозги» и немного предыстории:

Строго говоря, идея использовать для помп моторчики HDD не нова. C 2009 года ведётся целая ветка на одном известном форуме. Так что изначально был нацелен на изготовление помпы из «ноутбучного» жёсткого диска и поиска подходящего драйвера c интегрированными силовыми ключами и бессенсорным управлением.

Череда тестов с разными драйверами (MTD6501C, DRV11873 и ряда прочих китайских поделок) давали неутешительный итог: более крупные моторы от 3. Но «из коробки» перенять опыт мне не удалось. А вот с мелкими моторами в лучшем случае удается запустить единицы, и те работают крайне нестабильно. 5 дисков работают идеально. С таким неутешительным результатом давняя идея была заброшена и находилась на грани забвения.

При своих скромных габаритах обладает довольно внушительным потенциалом: Но относительно недавно наткнулся на довольно любопытный драйвер от TI — DRV10987.

  • Рабочее напряжение от 6v до 28v
  • Интегрированный понижающий преобразователь на 5v (можно запитать МК для управления)
  • Постоянный рабочий ток до 2А (пиковый — 3А)
  • Огромное число программно определяемых параметров (задание значений конфигурационных регистров по шине I2C) для управления работой мотора

Вооружившись ардуинкой (да простят меня за это ругательное слово местные электронщики) для задания параметров, изготовленной ЛУТом платой под данный драйвер, углубился в опыты по запуску моторчиков. Что же, данный контроллер меня не разочаровал! Несмотря на примененный метод «научного тыка» при подборе параметров, удалось найти подход к любому мотору от HDD!

Пользуйтесь на здоровье!) Помог мне в этом самописный онлайн-конфигуратор настроек.

Вот скетч по заливке параметров через ардуино:

#include <Arduino.h>
#include <Wire.h> #define I2C_DRV10983_Q1_ADR 0x52
#define Fault_Reg 0x00 #define MotorSpeed_Reg 0x01 #define DeviceIDRevisionID_Reg 0x08
#define SpeedCtrl_Reg 0x30 #define EEPROM_Access_Code_Reg 0x31
#define EEPROM_EeReady_Reg 0x32
#define EEPROM_Iindividual_Access_Adr_Reg 0x33
#define EEPROM_Individual_Access_Data_Reg 0x34
#define EEPROM_Access_Reg 0x35
#define EECTRL_Reg 0x60 void setup() byte readByAdress(byte reg_adr, unsigned int &result) { //I2C write 2-byte register byte i = 0, err = 0; byte bytes[2] = {0, 0}; Wire.beginTransmission(I2C_DRV10983_Q1_ADR); Wire.write(reg_adr); err = Wire.endTransmission(); if(err!=0) return err; Wire.requestFrom(I2C_DRV10983_Q1_ADR, 2); while(Wire.available()) { bytes[i] = Wire.read(); i++; } result = ((bytes[0] << 8) | bytes[1]); return 0;
} byte writeByAdress(byte reg_adr, unsigned int value) { //I2C read 2-byte register byte bytes[2]; bytes[1] = value & 0xFF; bytes[0] = (value >> 8) & 0xFF; Wire.beginTransmission(I2C_DRV10983_Q1_ADR); Wire.write(reg_adr); Wire.write(bytes,2); return Wire.endTransmission();
} boolean flag = true;
void loop() { if(flag){ unsigned int onReady = 0; writeByAdress(EECTRL_Reg, 0xFFFF); writeByAdress(EEPROM_Access_Code_Reg, 0x0000); //Reset EEPROM_Access_Code_Reg writeByAdress(EEPROM_Access_Code_Reg, 0xC0DE); //Set EEPROM_Access_Code_Reg while(onReady == 0){ // Wait EEPROM ready readByAdress(EEPROM_EeReady_Reg, onReady); } Serial.println("EEPROM_Access."); onReady = 0; //Write values on shadow registers //writeByAdress(EEPROM_Access_Reg, 0x1000); //Not use EEPROM storage. Store values in shadow registers writeByAdress(0x90, 0x154F); writeByAdress(0x91, 0x042C); writeByAdress(0x92, 0x0090); writeByAdress(0x93, 0x09EA); writeByAdress(0x94, 0x3FAF); writeByAdress(0x95, 0xFC33); writeByAdress(0x96, 0x016A); writeByAdress(EEPROM_Access_Reg,0x0006); //EEPROM mass access enabled && update while(onReady == 0 ){ // Wait EEPROM ready readByAdress(EEPROM_EeReady_Reg, onReady); } Serial.println("EEPROM_Update."); writeByAdress(EECTRL_Reg, 0x0000); //Run motor flag = false; } }

Затем уже были заказаны в поднебесной более презентабельные платки:

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

О «пересадке сердца»

Осталось дело за малым — достать из корпуса HDD мотор, который кстати говоря, в 2.5 дисках (и в большинстве 3.5) является его неотъемлемой частью. Вкратце можно процесс описать известной фразой "Пилите, Шура, пилите!":

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

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

Подготовка реципиента к трансплантации:

Мозги и сердце будущей помпы отлично ладят друг с другом и готовы обрести новое место обитания. Так что самое время подумать о корпусе и крыльчатке.

Так как нужно получить при малом рабочем объеме высокое давление, крыльчатку спроектировал с 7 лучами:


Печать на 3D принтере поликарбонатом
3D модель

Но печатать целый корпус им дорого. Поликарбонат — вещь для корпуса отличная. Зато у рекламщиков за спасибо можно выпросить обрезки от листов толщиной 4мм и 2мм. Куски толстых листов очень трудно найти да и фрезеровка не бесплатна (для меня). Потребуется разве что высверливание отверстий под фитинги и гайки. Так что корпус проектировался для последующего нарезания лазером деталей и их склейкой в единое целое без необходимости фрезеровки.


Вид 3D модели
3D модель

В местах сопряжения каналов притока и оттока срезаны грани
Набор деталей для склейки «топа» помпы.

Ход операции:

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

Аналогично склеивается основание для мотора (или изготовить из 6мм куска поликарбоната целиком)
Стек деталей «топа» на сушке после склейки — верх-приток-сепаратор-крыльчатка-ротор.


После склейки высверливаются отверстия для фитинга — 8мм латунной трубки по насечкам на детали «сепаратор»


Старый добрый состав БФ-4 как по мне дает надежную склейку латуни и поликарбоната

В верхней части рассверливаются (не насквозь!) отверстия под вклейку гаек-заклепок М3.
Тем же клеем приклеивается основание мотора в нижней части помпы. И на фото видна прокладка из тонкого силикона

Тестирование:

Вот и пришла пора проверить в работе самоделку. Для этого был наскоро собран тестовый стенд. Так как Хабр читают дети серьезные разработчики, у которых внешний вид и состав стенда может вызвать приступы паники, ужаса и дезориентации, хотел его спрятать под спойлер… но надеюсь, всё обойдётся, и потом не говорите, что я вас, уважаемые читатели, не предупреждал!

Питание мотора — 12v
Ардуинка подаёт управляющий сигнал PWM, скважность которого задается вручную переменным резистором, считывает значение конфигурационных регистров, а так же определяет скорость вращения как через внутренние регистры драйвера (RPMrg), так и по сигналу FG (RPMfg).

Запуск мотора без нагрузки. Регулировка оборотов и замер энергопотребления

А в конце видео видно, как на высоких оборотах значения скорости во внутреннем регистре «подвисают» на интервале от 10к до 13к оборотов, хотя через выход FG частота фиксируется без изменений. Мотор успешно стартует от 6% управляющего PWM сигнала.

16A. С холостым ходом всё понятно — получили 13к оборотов при напряжении 12v и потреблении 0. Так что следующий этап — сопровождение домочадцев на улицу, дабы не мешались, и оккупация ванной комнаты! Но собиралась водяная помпа, а я тут воздух гоняю.

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


По итогам замеров получилась вот такая таблица


График расхода

А в случае поломки, благодаря разборной конструкции и наличию в любых ремонтных мастерских / сервисных центрах ящиков с дохлыми 2. Как итог — данная поделка целиком удовлетворяет моим требованиям. И путь к дальнейшему построению СВО открыт! 5HDD — починить не составит труда. Так что продолжение следует!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть