Jump to content
InSides

Turntable Tachometer / Controller

Recommended Posts

Увод

Никад ми није било јасно како скоро сви произвођачи грамофона тврде да је константна брзина окретања грамофона кључна за контролу pitch-а, а веома мали број њих развија и/или имплементира склопове за тековно мерење исте. Уместо тога, користе се технике контроле обртаја код мотора и мерење истих, прерачун ротација преко мерење повратних струја итд. Шта ли се онда дешава на самом тањиру?

Такође је било прича да грамофонска игла при контакту са плочама има утицај на константну брзину, а да не помињем растезање каиша и промене у температури. Како сам решио да развијам свој грамофон (*), морам сам да проверим ове хипотезе, да се не би базирао на приче које нису поткрепљене јасним доказима.

(*) Рецимо да је стабилна просечна брзина ротација један (поред доста других) од кључних услова при развоју грамофона.

Услови

Поставио сам следеће услове:

  1. Безконтактни сензор (hall effect, IR, laser);
  2. Висока прецизност (рецимо микросекунде);
  3. Вањски дисплеј (OLED, LCD, ePaper);
  4. Логирање мерења за debugging и даљи развој погона за грамофон;
  5. Израда од релативно доступних компоненти;
  6. Могућност имплементација на било којем грамофону (**).

(**) Локација монтирања сензора и окидача зависи од зазора између доње стране тањира и базе.

Компоненте

Скоро све компоненте се могу локално наручити, осим дисплеја. Било која комбинација од оних које сам навео врши посао. На крају, избор је пао на следеће:

  1. Arduino Nano (овде);
  2. Keyes KY-003 Hall Effect Sensor Breakout (овде);
  3. 0.91" OLED екран са I2C протоколом (рецимо овде);
  4. Неколико магнета (6mm x 3mm је добра величина);
  5. (***) CD4066B прекидач;
  6. (***) Стандардни тастери.

(***) Нису потребни за тахометар, већ за други део пројекта, а то је PI/PID контрола вањског контролера за погон грамофона. TBD.

Принцип

Свако окидање сензора снима број микросекунди прошле од иницијализације микроконтролера.

И онда:

  1. Брзина ротације је разлика између нове и старе вредности, изразене у ротацијама у минути;
  2. Сензор је један, и је фиксне локације;
  3. Окидач(и) сензора могу да буду од један до онолико колико их физички стане на тањиру;
  4. Када је више од једног окидача по ротацији, брзина ротације се рачуна за сваки окидач понаособ, а не као разлику између окидача. (****)

(****) Сваки сензор има време окидања. У случају hall effect сензора, време окидања зависи од снаге магнетног поља које презентују магнети који раде као окидачи. Чак и да имам услове да поставим магнете са апсолутном прецизношћу, не могу да гарантујем да сви магнети имају магнетно поље исте јачине. Због тога, код који сам развио рачуна сваки магнет као да је једини окидач у систему, и упоређује га са самим себе. Овај приступ гарантује виш ступањ прецизности, и умањује утицај прецизности постављања окидача - све док се окидачи поставе на исто растојање од центра како би окинули сензор.

Повезивање

dwr-controller-v0.1.thumb.png.ef7dc9f7fa416efefd707ad7ace52548.png

(*****) За тахометар, без вањске контроле погона, све што је лево од Ардуина се може уклонити.

Окидачи

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

Код мене, то сам овако урадио:

28418283_10155184078340796_1934103836_o.jpg

Програмирање

Сав код (као и идуће промене) је доступан овде:

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

Код је релативно једноставан, а сви оперативни параметри се могу штимати преко вредности променљива:

int countMessageDisplaySpins = 1; int waitingCycle = 0; long stoppingTime = 2500000; // Indicates (1) the number of rotations a display message is active before being replaced with RPM, (2) represents intermediary counter and (3) determines the amount of microseconds elapsed after which the platter is considered stopped.
int triggerNumber = 4; // Indicates the number of sensor triggers per rotation.
int correctionSpin = 4; int correctionSpinShort = 2; long correctionSpinCount = 0; int correctionMovement = 5; // Indicates (1) number of rotations to wait for applying correction with small corrections, (2) number of rotations to wait for applying correction with large corrections, (3) temporary spin count and (4) maximum amount of steps to correct per cycle.
float correctionQ = 0.01; // Indicates the difference quotient from standard speed to activate automatic correction.
float derivedQ = 0.01; // Indicates the correction in RPM derived from a single 0.01Hz step (single "click").

Код је дизајниран да очекује промене у систему, па тако "препознаје" стање система. То је важно за имплементацију у постојеће системе, где тахометар није контролер брзине и/или стања.

Радња

И на крају, како то ради:

Будућност

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

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

Share this post


Link to post
Share on other sites
10 hours ago, InSides said:

Рецимо да је стабилна просечна брзина ротација један (поред доста других) од кључних услова при развоју грамофона.

Ja sam vec pohvalio genijalnu ideju, ali je vredna pohvale svaki put. Dobiti merenje punog kruga na svakoj cetvrtini kruga..sto resava probleme preciznosti pozicioniranja i rada senzora.

Proizvojacima brzina jeste vazna ali u proglasenoj meri, realno se ofrlje i pausalno odnose prema njoj, posto drugi problemi daleko prebacuju problem brzine. I to se nadoknadjuje marketingom :) .

PA su onda daske sa malim motorcetom, najbolji gramofoni na svetu :) 

Elem, veci problem je promasena osa busenja rupe na ploci, koju je NAK1000 prividno (ne)resio pomeranjem diska, ali neresiva je promena distance rupe u odnosu na brazde  na ploci. Pa je brzina rotacije izgubila na vaznosti.

 

I naravno da je srednja brzina vazna, ali su vazne i amplitude variranja, sto se ozbiljno predupredilo ovakvim dizajnom.

Jos jednom pohvala, za genijalan pristup problemu.:thumbup:

Share this post


Link to post
Share on other sites

Хвала на поддршци свима. :)

Конструкција је ужасно једноставна. Хтео сам да цртам плочицу, али стварно нема потребе када је довољан само мини протоборд за ућвршчивање Ардуина. Библиотека за дисплеј је универзална, тако да се може лако променити дисплеј. Ако неко жели да склопи овакво нешто, а није вичан програмирању, цимајте ме за промене кода.

И кад смо код тога, већ имамо неколико промена у коду:

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

  1. Додао flag који се зове tachometerOnly. Када се овај flag означи као "true" код прескаче све рутине у вези екстерне контроле погона. Значи, када је идеја да систем ради само као тахометар, све што треба да се уради је следеће:
    boolean tachometerOnly = true;
  2. Проширио лиценцу. Код је лиценциран под условима MIT лиценце, па додао назив лиценци под чијих услова су лиценциране библиотеке које код користи.

Следећи корак - унапређивање прецизности мерења. Али пре имплементације, мало времена се да посветити рачуници шта се добија а шта се губи тим кораком. Stay tuned.

Share this post


Link to post
Share on other sites

Na “komsijskom” forumu je otvorena tema o novodizajniranoj ručici gramofona koju je neko (autor, njegov marketing ....ko zna već) odmah proglasio jednom od najboljih na svetu.
Kao neko sa visedecenijskim iskustvom u R&D rekao bih da je sve u vezi sa tim primer kako ne treba da funkcioniše R&D.
Ovo sam rekao samo zbog toga da još jednom pohvalim ne samo ovo Vaše tehničko rešenje o kome pišete već ceo pristup R&D koji se izuzetno dobro već naslućuje (u Vašem slučaju radi se o Vašem viđenju gramofona sa svim kompromisima u koje ste Vašom voljom ili zbog eksternih faktora već ušli ili ćete ući); a koga se ne bi postideli ni oni iz najbogatijih država i njihovih najboljih kompanija.
Impresioniran sam.
Želim Vam svu sreću (trebaće Vam) da projekat dovedete do kraja na najbolji mogući način i da ga materijalizujete i “naplatite”.



Srećko

Share this post


Link to post
Share on other sites
2 minutes ago, Srecko said:

Želim Vam svu sreću (trebaće Vam) da projekat dovedete do kraja na najbolji mogući način i da ga materijalizujete i “naplatite”.

Хвала. :)

Идеја је да свака од компоненти грамофонског "система" се претстави у посебној теми, када је готово (или бар приближно готова).

Ово укључује, у најмању руку:

  1. Тахометар / контролер;
  2. База;
  3. Погон;
  4. Ручица;
  5. Сталак.

Можда ће потрајати док се све не заврши како би ја хтео, али до тада објављујем оно што мислим да је зрело за екстерну употребу.

Интересантна та прича око наплате - у теми коју отворим око грамофонске базе причао би мало о опклади која је индиректно почела цео овај пројекат.

Без разлике на то, чврсто сам убеђен да нико од произвођача / конструктора не губи ништа своје својине када је дели са светом.

1 minute ago, Woland said:

@Srecko poznajući @InSides "naplata" ovog i ostalih njegovih projekata, je uveliko započela zadovoljstvom tokom izrade gramofona :)

Ето видиш. :)

Share this post


Link to post
Share on other sites

@Srecko

Ono, ima tema i na ovom forumu, doduše sa 2-3 posta. :)

Da se ne ponavljam, ali je veoma enigmatično/tragično sve to što se desilo sa transportom ove ručice ( DHL krivac ) za Meryland i HIFi sajam gde je trebalo da bude svetska premijera.

E sada, zašto US, zašto Merilend, zašto samo par ovih video klipova na YT, a nigde čestite prezentacije u Srb, zašto toliika exluziva&mistifikacija su pitanja za konstruktora/autora ručice.

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.

×