Jump to content

Turntable Tachometer / Controller


InSides

Preporučeni Komentari

Insides,

jel mozes malo detaljnije da prezentujes pogon gramofona, koji tip motora je u pitanju (neke karakteristike ako su dostupne), da li ima i kakvu regulaciju, kako je spregnut sa gonjenim elementima itd.

Ne znam skoro nista o gramofonima, ali se sa pogonima mlatim tu i tamo...

Takodje, sta se ocekuje, kolika tolerancija od zadatog broja obrtaja.

 

 

Link to comment
Podeli na ovim sajtovima

11 hours ago, Bajlag said:

jel mozes malo detaljnije da prezentujes pogon gramofona, koji tip motora je u pitanju (neke karakteristike ako su dostupne), da li ima i kakvu regulaciju, kako je spregnut sa gonjenim elementima itd.

Биће, у посебној теми. Мотор je BLDC, погон је 3 фазни синусни генератор + појачало у D класи.

Link to comment
Podeli na ovim sajtovima

4 hours ago, bnb said:

InSides,

Displej ,tip,sam kupio koji si ti preporučio.

Pinovi,odozgo na dole kod mene su obeleženi:SDA ,SCK ,VCC ,GND.

Da li je šema povezivanja podudarna ili nije?

Ако имаш Arduino Nano, SDA = A4, SCK = A5. Ево breadboard сличице:

dwr-controller-v0.1.png

Ако користиш нешто друго осим Nano-а, пиши шта је и видећу дали су пинови различити.

Начин на који ја користим u8g2 библиотеку не тражи да се пинови упишу у код.

Link to comment
Podeli na ovim sajtovima

  • 2 nedelje kasnije...

Баг #4 (*)

Блок програма ради прекорачења вредности у рутини за приказ просека.

(*) Багови #1, #2 и #3 искорењени пре официјалног release-а.

Позадина

Након имплементације рутине за просек (види овде) повремено је долазило до блокаде Ардуина, али се нисам пуно замарао јер је било спорадично, а хардвер и софтвер је још увек у флуксу.

Пре пар дана, теста ради, ресетирао сам контролер и оставио да се регулира брзина са око 38.00rpm на 33.33. То је дало очекиване резултате, и онда прешао на регулацију 45.00 са отприлике 51.00rpm. Ту је запело након пар минута - блокиран дисплеј и престала регулација. Ардуино IDE је мало проблематичан за дебаговање за разлику од стандардних околина где постоје debug субрутине, брејк поинти итд, тако да морају се, у основи, програмирати брејкови, па се онда елиминира рутина по рутини.

Зато сам проширио испис на сериском порту да штампа скоро све променљиве које имају утицај.

Баг

Проблем је лоциран у субрутини за приказ просека, и то у бројачу поља који се континуирано ресетира како би се могли увек добијати задњи број просека:

const int averageTotal = 16; int averageCount = 0;

Тачније, averageCount се није ресетирао. Али не увек, него само када се пребаци мод са 33 1/3 на 45 окретаја у минути. Како скоро 95% плоча које имам су резане на 33 1/3, нисам до сада приметио проблем.

Ево конкретне рутине где се проблем јавио:

if (averageCount == averageTotal)
{
  if (!averageFlip)
  {
    averageCount = 0;
    averageCompleted = true;
  }
  else
  {
    averageFlip = false;
  }
}

Решење

За сваки случај - (1) ресетирати averageCount увек, и (2) ухватити промену averageCount параметра још и раније:

if (averageCount >= averageTotal)
{
  averageCount = 0;
  if (!averageFlip)
  {
    averageCompleted = true;
  }
  else
  {
    averageFlip = false;
  }
}

И још, рутина за штампање на сериску порту сада приказује (1) просечни RPM, (2) тренутачни RPM и (3) број слота у пољу за просеке (од 1 до averageTotal):

if (debugSerial)
{
  Serial.print(currentX, 4); Serial.print(" "); Serial.print(currentRPM, 4); Serial.print(" "); Serial.print(averageCount); Serial.println();
}

Код

Код је, као и увек (d217886), овде:

https://github.com/stojnev/dwr-controller

Link to comment
Podeli na ovim sajtovima

Imao bik ja jednu primedbu u vezi neodimium magneta koji prolaze na par cm od gramofonske glave. Jel provereno indukuje li to šta na izlazu, kolko ja računjam nekih 2,2Hz je učestanost prolaska magneta u odnosu na neku fiksnu tačku?

Ako ne onda ništa :)

Link to comment
Podeli na ovim sajtovima

15 hours ago, ManicP said:

Imao bik ja jednu primedbu u vezi neodimium magneta koji prolaze na par cm od gramofonske glave. Jel provereno indukuje li to šta na izlazu, kolko ja računjam nekih 2,2Hz je učestanost prolaska magneta u odnosu na neku fiksnu tačku?

Ako ne onda ništa :)

Учесталост је, у ствари - 0.45Hz за 33.33rpm и 0.33Hz за 45rpm. Тренутно користим 4 магнета.

Магнети су минијатурни, 6мм х 3мм, и у најгорем случају су (код мене) бар 10 центиметара. У најбољем, више од 12 центиметара. Тањир који користим је укупне "дебљине" од 100 милиметара (70мм алуминијум, 15мм ваздух, 15мм полиоксиметилен).

Сличан метод се користи код грамофона са тањим тањирима, и нисам видео да је ико пријавио проблем (што не значи да га нема).

Да одговорим питање - нисам мерио / проверивао дали магнет има утицај на квалитет излаза.

Link to comment
Podeli na ovim sajtovima

Insides, jesi sam postavljao hardware oko arduina i pisao kod ili si krenu od gotovih modula, pa prilagodio za tu namenu?

BTW mozda bi bilo preciznije uraditi isto ali pomocu svetlosti? neki gotov opticki modul koji reaguje na prisustvo i odsustvo svetlosti. Zaklanjaju ga neke prepreke za svetlost koje se nalaze na mestima recimo gde su sada magneti. Izvor svetlosti recimo led koji konstantno svetli a preko puta njega opticki prjemnik kao staticni elementi. neko parce tamne folije ili plastike prolazi izmedju njih i prekida dotok svetlosti na prijemnik, kada prodje ponovo svetlost dolazi? Samo je potrebno videt sta brze raguje opto dioda ili magnet

Link to comment
Podeli na ovim sajtovima

13 minutes ago, ZZZ said:

Insides, jesi sam postavljao hardware oko arduina i pisao kod ili si krenu od gotovih modula, pa prilagodio za tu namenu?

BTW mozda bi bilo preciznije uraditi isto ali pomocu svetlosti? neki gotov opticki modul koji reaguje na prisustvo i odsustvo svetlosti. Zaklanjaju ga neke prepreke za svetlost koje se nalaze na mestima recimo gde su sada magneti. Izvor svetlosti recimo led koji konstantno svetli a preko puta njega opticki prjemnik kao staticni elementi. neko parce tamne folije ili plastike prolazi izmedju njih i prekida dotok svetlosti na prijemnik, kada prodje ponovo svetlost dolazi? Samo je potrebno videt sta brze raguje opto dioda ili magnet

Нема потребе од готових модула (ако се Ардуино не рачуна за готов модул). Систем користи:

  1. Ардуино Нано;
  2. Allegro A3144 сензор (*);
  3. CD4066B прекидач (quad bilateral switch) - ово задње је опционо и користим га само за екстерну контролу постојећег контролера мотора.

(*) Уместо голог сензора, узео сам Keyes KY-003 склоп који осим сензора има још и ЛЕД диоду која показује активацију сензора - лакше за дебаговање - али идентично се везује и "голи" сензор. Такође, A3144 је discontinued, замена је A1104.

Нисам сигуран дали сам раније поменуо, али тестирао сам још и светлосни сензор (IR + рефлективна фолија) и то се није показало поуздано како магнет + hall effect сензор. IR сензори које сам тестирао не раде добро кад је температура собе виша од 20 степени, или у присуству сунчаних зрака (што је често код мене).

Хтео бих да пробам ласерски сензор (то јесам поменуо овде) али не жури ми се (непотребно скупо + компликује инсталацију).

Link to comment
Podeli na ovim sajtovima

Ir je nezgodan posto se zasiti prijemnik, laser je komplikacija, pride ako se ide na jeftine lasere, pouzdanost rada pada dramaticno.

Zoki je dobro predlozio vidljivu diodu sa nekom fazetom, da se suzi snop za detekciju, sto je fino nemagnetno resenje. moguc je u U optokapler, i refleksivni, lakse je zalepiti neku metu na disk nego magnet.

 

Mada se i magnetni snop moze fokusirati i izolovati, ali je nelagoda blizine magneta magnetnom pikapu opravdana.

Link to comment
Podeli na ovim sajtovima

26 minutes ago, vladd said:

i refleksivni, lakse je zalepiti neku metu na disk nego magnet.

Требао бих то мало боље испитати. Бојим се да та мета не тражи високу прецизност израде (у фазону форме/ширине рефлективних лента - код не мари за прецизну локацију позиционирања све док активира сензор).

Link to comment
Podeli na ovim sajtovima

2 hours ago, guja011 said:

ostani ti kod magnetne verzije.

 

1 hour ago, Srecko said:

Ništa ne menjajte kad očito funkcioniše. Pogotovo ne menjajte kad niste utvrdili ni da objektivno taj problem postoji!

Свакако прво је на плану за завршим унапређења #3 и #4.

On 2/25/2018 at 11:38 PM, InSides said:

Будућност

Тек смо почели. У плану је бар следеће:

  1. Имплементација Timer2_Counter библиотеке за повећање прецизности система;
  2. Рутине за приказ разних просека;
  3. Аутоматскo штимање PI/PID параметара;
  4. Рутине за чување укупног времена свирања (не само ротација).

Па онда би да ревидирам употребу CD4066B зато што не понаша се баш како пише у datasheet-у. :)

Link to comment
Podeli na ovim sajtovima

37 minutes ago, vladd said:

Zasto se 4066 ne ponasa kao u datasheet-u?

Да будем прецизнији - не понаша се како ја читам у datasheet-у да треба да се понаша.

4066 користим да би "кликао" тастере на екстерном контролеру. На том контролеру, тастери на притисак повезују пинове микроконтролера на масу (pin-to-ground).

Мој проблем је, када повежем 4066 као да шеми коју сам показао, у случају када 4066 није под напоном, његови излази су спојени, тако да "кликају" тастере и када не желим да то раде. Све док Ардуино добије напон бар 1 секунду пре екстерног контролера, 4066 се понаша како треба.

Link to comment
Podeli na ovim sajtovima

Koliko vidim, kako je povezano, tebi arduino preko 4066 kratkospaja(ima otpornost stotinak oma) tastere, preko control pinova multipleksera. Cemu sluzi prespajanje tastera koji sluze za prespajanje?

Ako to je rad tastera ukljucenje prema masi(a nema na semi) 4066 mozes zameniti sa  ULN2003. Ne razumem vezu tastera i 4066...

Link to comment
Podeli na ovim sajtovima

9 hours ago, InSides said:

Нема потребе од готових модула (ако се Ардуино не рачуна за готов модул). Систем користи:

  1. Ардуино Нано;
  2. Allegro A3144 сензор (*);
  3. CD4066B прекидач (quad bilateral switch) - ово задње је опционо и користим га само за екстерну контролу постојећег контролера мотора.

(*) Уместо голог сензора, узео сам Keyes KY-003 склоп који осим сензора има још и ЛЕД диоду која показује активацију сензора - лакше за дебаговање - али идентично се везује и "голи" сензор. Такође, A3144 је discontinued, замена је A1104.

Нисам сигуран дали сам раније поменуо, али тестирао сам још и светлосни сензор (IR + рефлективна фолија) и то се није показало поуздано како магнет + hall effect сензор. IR сензори које сам тестирао не раде добро кад је температура собе виша од 20 степени, или у присуству сунчаних зрака (што је често код мене).

Хтео бих да пробам ласерски сензор (то јесам поменуо овде) али не жури ми се (непотребно скупо + компликује инсталацију).

Mislio sam pored hardverskih modula i na vec napisane module kodova. (izuzev biblioteka recimo za displej itd)...

Link to comment
Podeli na ovim sajtovima

14 hours ago, ZZZ said:

Mislio sam pored hardverskih modula i na vec napisane module kodova. (izuzev biblioteka recimo za displej itd)...

Користим две екстерне библиотеке:

  1. u8g2 библиотека за контролу дисплеја;
  2. OneButton библиотека за програмирање тастера - ова библиотека креира директне интерфејсе за корисничке догађаје (events), и то SingleClick(), DoubleClick(), LongPress() итд.

Осим тога, код је писан из почетка (from scratch :)).

Link to comment
Podeli na ovim sajtovima

Kreiraj nalog ili se prijavi da daš komentar

Potrebno je da budeš član DiyAudio.rs-a da bi ostavio komentar

Kreiraj nalog

Prijavite se za novi nalog na DiyAudio.rs zajednici. Jednostavno je!

Registruj novi nalog

Prijavi se

Već imaš nalog? Prijavi se ovde

Prijavi se odmah
  • Članovi koji sada čitaju   0 članova

    • Nema registrovanih članova koji gledaju ovu stranicu
×
×
  • Kreiraj novo...