Вертикальный тангенциальный проигрыватель виниловых пластинок на Ardruino для блютус колонки (она уже есть у Алекса)

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
Доброго времени суток.
Идея: Вертикальный тангенциальный проигрыватель виниловых пластинок на Ardruino для блютус колонки (она уже есть у Алекса)

1) Привод диска с контроллером частоты вращения на 33,5 и 45 оборотов.
2) Привод тонарма вертикальный на штанге с оптическим контроллером перемещения головки и приводом от сервомашинки.
3) подъем и опускание головки либо вручную, либо сервомашинкой.
4) Головка магнитная. Предусилитель с выходом на линию или на блютус. Головки есть дешевые. Если хорошие, то Аудиотехника AT-92, либо на Али есть за копейки аналоги.
5) Корпус и детали - печать на 3D принтере.
6) Питание 18650. Зарядка по USB
7) Если ещё встроить блок для оцифровки и записи в МP3, то вообще бомба!!!

Пример желаемого вида устройства - цель не копировать 1 в 1! Это компоновочная основа для проекта...
SONY PS-F9

подробнее про SONY PS-F9

Штука будет мобильная и легко повторяемая как проект. Можно брать в сумке на барахолку для покупки советского винила, или на пикники... ;-)
З.Ы. На е-бае за такими оригинальными Соньками гоняются и готовы расставаться с деньгами от 500 баксов за штуку.

Что скажете?
 
Последнее редактирование:

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0

нужно 33,3 и 45 оборотов и крутить пластинку весом до 200 гр. по горизонтальной оси вращения... ищу моторчики c али мощнее чем в HDD, но все они либо высокоскоростные либо шаговые ;-(... и надо без шариковых подшипников на валу...
 
Последнее редактирование:

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
"игла виниловый картридж" это запрос на али... цены от 1,5- 2 до 10- 13 долларов
 

Вложения

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
пример с мотором от флоппи-дисковода... идеальным был бы вариант переделки на вращение по принципу директ-драйва... т.е. пластинка на оси двигателя, а не привод через пассик как в примере. Но ход интересный... Наверное лучше будет привод от 5 дюймовых дискет, но 3 дюймовых осталось намного больше и цена им от 100- 200 руб на авито... Вот если бы получился контролер на Ardruino для него на 33 и 45 оборота было бы очень здорово!..


http://www.audioorigami.co.uk/archive/floppy-project/
 
Последнее редактирование:

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
недопиленная заготовка ;-))))
донорские органы....
По крайней мере, с аудиотрактом для проекта можно не заморачиваться, - и в оригинальной Соньке он был сделан более-менее фиговеньким. Такой проигрыватель больше игрушка, необычный вид и вертикальное положение пластинки + он должен был быть "волкмен"...
А тонарм конечно переделать на тангенциальный по схеме Сони, но на Ардуинке... Привод - мотор от дисковода с управлением на Ардуино. И всё это стоит вертикально как было СОНИ.. и питается от 18650

Потрошки китайской игрушки по ссылке + картинка с примерной ценой на али... По питанию аудиочасти укладывается в общий концепт.
https://mysku.ru/blog/china-stores/24142.html
 

Вложения

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

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
Нужно для привода диска получить что-то подобное...

 

Mozgoklui

★★✩✩✩✩✩
1 Окт 2018
68
55
посоветовать увы ничего не могу, но за темой слежу, крайне интересно.
 

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
посоветовать увы ничего не могу, но за темой слежу, крайне интересно.
Спасибо ;-)... пока что сам копаю литературу, потому что сделать тангенциальный тонарм проще чем прямой привод... У меня есть вертикальный проигрыватель от Шарпа, модель Sharp VZ-3000 и у него сделан тангенциальный тонарм на оптопаре. Он умеет проигрывать пластинки с двух сторон. Всё реализовано на пасиковом приводе с реверсом диска. У меня есть его сервис-мануал, прилагаю к этому посту, чтобы посмотреть как он устроен.
 

Вложения

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
А так он выглядит в работе.

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

Сейчас задача сводится:
1) к поиску донорских органов, (флоппики, моторчики, сервомашинки, ардуинки, и проигрыватель, пойдет даже тот что я кидал выше с Али...)
2) программированию двух модулей ардуино. Один на управление двигателем, второй на управление тонармом
3) Сопряжение двух модулей между собой, чтобы работали в паре - сигнал старт\стоп с блока тонарма на блок двигателя
4) проектирование подвижной части тонарма. и половинок зажима пластинок на приводе.
5) 3D моделирование и 3D печать корпуса
Подумал, что можно сделать и двухстороннюю версию с двумя головками, как у шарпа, тогда не надо пластинку переворачивать. будет проигрываться с двух сторон.

Я не программист, и не электронщик, я дизайнер ;-))). Внешний вид и компоновку сделаю на раз. Но вот надо научиться программировать ардуино, чтобы решить эту задачу. Уверен, что программист знакомый с ардуино решил бы эту задачу за пару вечеров...
Если у Вас есть наработки и идеи по донорским органам - кидайте в тему.... Спасибо.
 
Последнее редактирование:

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
Получил ответ от автора видео в посте #9, Владимира Смирнова.
----
схема вся на видео, как таковую не рисовал, все 6 шимов с ардуинки на полумосты http://www.freepatent.ru/images/patents/73/2389128/2389128.jpg (плюсы фаз (верхнее плече) по порядку 11,9,5 минусы(нижнее плече) 10,6,3) скетч сырой https://yadi.sk/d/hcSktxO5dIJVtg
----
Скетч

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
long previousMillis = 0; //когда последний раз мигали
long previousGetMillis = 0;
int otkl;
int vih;
int vivodov;
int obr; //временные переменные для вывода
long ps,obmin;
double CurInt,nado ; //Текущий интервал фаз (в градусах)
long previousMillisTakt = 0; //Предыдущее срабатывания счетчика интервала
long interval = 1; //Интервал в миллисекундах (влияет на скорость)
double increment = 1; //шаг увеличения угла
int Phase1,Phase2,Phase3; //Текущее значение уровня фаз
int Phase1u,Phase2u,Phase3u; //Текущее значение уровня фаз
int Phase1d,Phase2d,Phase3d; //Текущее значение уровня фаз
double pi = 3.1415926535; //Можно только гадать что это

int sin_tab [512];
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display

//****************************************************************************************************************************

void Takt() //Тут обработка логичесткового калибровоного такта каждый interval
{
//Гоняем интервал фаз от 0 до 360 (если гонять обратно двигатель будет крутиться обратно)
CurInt=CurInt+(nado/50);
if (CurInt >= 255) CurInt = 0;
//Математика расчета фаз
//Phase1 = sin(CurInt*2*pi/180)*127+128; //Фаза 1 должна описывать траекторию синусойды для достижения максимальной мощьности двигателя
//Phase2 = sin((CurInt+120)*2*pi/180)*127+128; //Фаза 2 находится также как и первая со смещением в 120 градусов
//Phase3 = sin((CurInt+240)*2*pi/180)*127+128; //Фаза 3 находится также как и первая со смещением в 240 градусов или со смещением в 120 градусов от второй

Phase1 = sin_tab[long(CurInt)]; //Фаза 1 должна описывать траекторию синусойды для достижения максимальной мощьности двигателя
Phase2 = sin_tab[long(CurInt+85)]; //Фаза 1 должна описывать траекторию синусойды для достижения максимальной мощьности двигателя
Phase3 = sin_tab[long(CurInt+170)]; //Фаза 1 должна описывать траекторию синусойды для достижения максимальной мощьности двигателя

//Записываем
if (Phase1 > 0) {
Phase1u = Phase1;
Phase1d = 0;
} else {
Phase1u = 0;
Phase1d = -Phase1;
}
if (Phase2 > 0) {
Phase2u = Phase2;
Phase2d = 0;
} else {
Phase2u = 0;
Phase2d = -Phase2;
}
if (Phase3 > 0) {
Phase3u = Phase3;
Phase3d = 0;
} else {
Phase3u = 0;
Phase3d = -Phase3;
}

analogWrite(11, Phase1u);

analogWrite(10, Phase1d);

analogWrite(9 , Phase2u);

analogWrite(6 , Phase2d);

analogWrite(5 , Phase3u);

analogWrite(3 , Phase3d);

}
//******************************************************************************************************************

void setup(){
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("init");
for (double i=0;i<=255;i++) {
sin_tab[int(i)]=sin(i/255*2*pi)*80;
sin_tab[int(i)+255]=sin_tab[int(i)];
};
lcd.setCursor(0, 0);
lcd.print("cur=");
lcd.setCursor(0, 1);
lcd.print("nado =");

pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(7, INPUT);
pinMode(2, INPUT);
attachInterrupt(0,int1,RISING); //и аттачим clock также на D2й вход
}
//******************************************************************************************************************
void int1(){ //Прерывание обработки оборотов
ps++;
}
//******************************************************************************************************************
void loop(){
if(millis()-previousMillisTakt > 2){
previousMillisTakt=millis();
Takt();
};

if(millis()-previousGetMillis > 500){
previousGetMillis=millis();
nado = analogRead(7)/4;
obmin = ps*2;
ps=0;
};


if (millis() - previousMillis > 100) { //мигалка
obr = analogRead(6)/4;
if (obr>=nado) {
otkl=max(otkl--,0);
} else {
otkl=min(otkl++,127);
};
vih = max(min(obr+otkl,127),0);
previousMillis = millis();
vivodov++;
lcd.setCursor(10, 0);
lcd.print(vivodov);
lcd.setCursor(5, 0);

// lcd.print(String("")+nado/51+"."+nado%51*196/100+" ");
lcd.print(String("")+long(CurInt)+" ");
lcd.setCursor(7, 1);
lcd.print(String("")+long(nado)+" ");
}
}

//******************************************************************************************************************
/**
* Divides a given PWM pin frequency by a divisor.
*
* The resulting frequency is equal to the base frequency divided by
* the given divisor:
* - Base frequencies:
* o The base frequency for pins 3, 9, 10, and 11 is 31250 Hz.
* o The base frequency for pins 5 and 6 is 62500 Hz.
* - Divisors:
* o The divisors available on pins 5, 6, 9 and 10 are: 1, 8, 64,
* 256, and 1024.
* o The divisors available on pins 3 and 11 are: 1, 8, 32, 64,
* 128, 256, and 1024.
*
* PWM frequencies are tied together in pairs of pins. If one in a
* pair is changed, the other is also changed to match:
* - Pins 5 and 6 are paired on timer0
* - Pins 9 and 10 are paired on timer1
* - Pins 3 and 11 are paired on timer2
*
* Note that this function will have side effects on anything else
* that uses timers:
* - Changes on pins 3, 5, 6, or 11 may cause the delay() and
* millis() functions to stop working. Other timing-related
* functions may also be affected.
* - Changes on pins 9 or 10 will cause the Servo library to function
* incorrectly.
*
* Thanks to macegr of the Arduino forums for his documentation of the
* PWM frequency divisors. His post can be viewed at:
* http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1235060559/0#4
*/

void setPwmFrequency(int pin, int divisor) {
byte mode;
if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
switch(divisor) {
case 1:
mode = 0x01;
break;
case 8:
mode = 0x02;
break;
case 64:
mode = 0x03;
break;
case 256:
mode = 0x04;
break;
case 1024:
mode = 0x05;
break;
default:
return;
}
if(pin == 5 || pin == 6) {
TCCR0B = TCCR0B & 0b11111000 | mode;
}
else {
TCCR1B = TCCR1B & 0b11111000 | mode;
}
}
else if(pin == 3 || pin == 11) {
switch(divisor) {
case 1:
mode = 0x01;
break;
case 8:
mode = 0x02;
break;
case 32:
mode = 0x03;
break;
case 64:
mode = 0x04;
break;
case 128:
mode = 0x05;
break;
case 256:
mode = 0x06;
break;
case 1024:
mode = 0x7;
break;
default:
return;
}
TCCR2B = TCCR2B & 0b11111000 | mode;
}
}
 

Вложения

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
Дорогие форумчане, я только начинаю изучать Ардуино. Помогите, пожалуйста, отредактировать скетч чтобы, можно было регулировать обороты. Я ещё в поиске компонентов... Буду рад любым комментариям, скетчам и замечаниям! Заранее спасибо!
 

Mozgoklui

★★✩✩✩✩✩
1 Окт 2018
68
55
Дорогие форумчане, я только начинаю изучать Ардуино. Помогите, пожалуйста, отредактировать скетч чтобы, можно было регулировать обороты. Я ещё в поиске компонентов... Буду рад любым комментариям, скетчам и замечаниям! Заранее спасибо!
У меня примерно такая же ситуация была, т.е. скомпоновать и напечатать могу что угодно, оформить и спроектировать в 3д. Но вот ардуино... Не осилил. Поэтому тупо скачал программу Flprog. Она позволяет графически программировать ардуино, не вникая в код. И за несколько вечеров получил одну ардуино, соединённую с сенсорным экраном и управляющую (при взаимодействии с этим экраном) двумя моторами по ШИМ, куском адресной RGB, с модулем часов и датчиком температуры. Чтобы разобраться и написать под это код ушло бы куча времени. Попробуйте, крайне рекомендую. По крайней мере удобнее экспериментировать будет с разными моторами, чем каждый раз ковырять код.
 
  • Лойс +1
Реакции: Levkin_2m

Levkin_2m

✩✩✩✩✩✩✩
10 Фев 2019
21
0
У меня примерно такая же ситуация была, т.е. скомпоновать и напечатать могу что угодно, оформить и спроектировать в 3д. Но вот ардуино... Не осилил. Поэтому тупо скачал программу Flprog. Она позволяет графически программировать ардуино, не вникая в код. И за несколько вечеров получил одну ардуино, соединённую с сенсорным экраном и управляющую (при взаимодействии с этим экраном) двумя моторами по ШИМ, куском адресной RGB, с модулем часов и датчиком температуры. Чтобы разобраться и написать под это код ушло бы куча времени. Попробуйте, крайне рекомендую. По крайней мере удобнее экспериментировать будет с разными моторами, чем каждый раз ковырять код.
Спасибо, попробую... ;-)