Jump to content
InSides

Turntable Tachometer / Controller

Recommended Posts

Laser, sa suzenom zonom detekcije radi slicnu stvar kao maska na magnetu. Preciznije je za neki red velicine.

Maska suzava i eliminise bocne lobove magnetnog polja, koliko moze, da ujednaci okidanje razlicitih magneta.

 

Ali je visoka preciznost vec postignuta, pa je preko toga igranjac vise zadovoljenje inovativnog dela duha. :) 

Share this post


Link to post
Share on other sites

Mislim da je “savet” g. [mention=1935]vladd[/mention] više nego dobar i nadasve racionalan.

Ponekad treba znati stati i ne juriti “savršeno rešenje” (ono i ne postoji).

Čuvajte energiju, trebaće vam sve više i više, kako budete odmicali sa projektom.

Dug je put pred Vama.

 

 

 

Srećko

 

Share this post


Link to post
Share on other sites

Samo ne zaboraviti da bakar burno reaguje na kretanje magneta u blizini, pa da se reakcija ne upetlja u usporenje plinta.

Share this post


Link to post
Share on other sites

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.

 

 

Share this post


Link to post
Share on other sites
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 класи.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
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 библиотеку не тражи да се пинови упишу у код.

Share this post


Link to post
Share on other sites

Баг #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

Share this post


Link to post
Share on other sites

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 :)

Share this post


Link to post
Share on other sites
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мм полиоксиметилен).

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
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 степени, или у присуству сунчаних зрака (што је често код мене).

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
26 minutes ago, vladd said:

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

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

Share this post


Link to post
Share on other sites
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-у. :)

Share this post


Link to post
Share on other sites
37 minutes ago, vladd said:

Zasto se 4066 ne ponasa kao u datasheet-u?

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

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×