Precyzyjna Maszyna oraz RPM

Obroty na minutę: RPM (czujka pola magnetycznego SS49E)

Pan Przemek ukończył kod, który zlicza obroty wirującego silniczka – brawo! Należy się pochwała, bo to jego pierwsze zmagania z Arduino.

Układ doświadczalny:

W układzie celowo zamontowano magnesy tak, by czujka SS49E „widziała” raz biegun północny (N) magnesu, a za drugim razem (gdy silniczek obróci sie o 180 stopni) biegun południowy (S). Ustawienie magnesów na końcach patyka nie jest więc przypadkowe 😉 Czujnik SS49E odczytuje zarówno biegun S jak i N (uwaga: nie wszystkie czujki pola magnetycznego, bazującego na efekcie Halla, tak mają – warto to sprawdzić przed zakupejm), dlatego widzimy dwa „piki” podczas obracania silniczka – jeden „do góry” (większe napięcie) oraz „do dołu” (napięcie mniejsze). Z dala od magnesów czujka zwraca napięcie ~2.5V informując, że wartość pola magnetycznego jest (około) zera. Poniżej wykres z Kreślarki

Program zliczający liczbę obrotów na sekundę (zmienna czas – aktualnie 1000ms, ale można zmienić, także przez krotność – zmienna krok). Algorytm polega na znajdowaniu maksimum i minimum napięcia – a zapisywane jest moment ich wystąpienia (do zmiennych t_1oraz t_2, odpowiednio). Różnica tych czasów do pół obrotu.

void setup() {
Serial.begin(9600);
}

int i,max_=518,min_=518,a=0,b=0,czas,n=0,krok=1;
float v;
long int t_1=0,t_2=0,t_k=0,t_3=0,t_p;

void loop(){
 t_p=millis();
 czas=1000;
 i=analogRead(A0);
 if(i>540){
   if(i>max_){
    max_=i;
    t_1=millis();
   }
   else if(i<max_){
    a=1;
   }
 }
 if(i<490){
   if(i<min_){
    min_=i;
    t_2=millis();  
    }
   else if(i>min_){ 
    b=1; 
  }
 }

 if(t_1>t_2){
  t_3=t_2;
 }
 else{
  t_3=t_1;
 }
 
 if(a==1&&b==1){
    t_k=abs(t_2-t_1);
    a=0;
    b=0;
    max_ = 518;
    min_ = 518;
    if(czas>t_3){
      n++;
    }
    else if(czas<t_3){
    Serial.print("Liczba pol-obrotow: ");
    Serial.println(n);
    n=0;
    krok++;
    czas=czas*krok;
    }
 }
 }

Zmienna n (małe n) zlicza wystąpienia „półobrotów”, a co ustalony czas wypisywany jest komunikat z tą liczbą. W ten sposób mamy właśnie pół-RPS (revolutions per second), z którego łatwo można już otrzymać RPM (revolutions per minute).

Precyzyjna Maszyna

Sprężynka nie wytrzymała – chyba była zbyt twarda 🙁

Nowy model powinien być lepszy – bo wydrukowany z Z-Ultratu:

No i mamy coraz lepszą pracę Maszyny:

Więcej o projekcie Maszyny na stronie projektu.

(c) K.G.

Precyzyjna Maszyna (chwytak!) oraz Wiatromierz

Chwytak do ołówka/mazaka zaprojektowany, wydrukowany w 3D i zamontowany! Działa z serwomechanizmem a kod BBcode obsługuje nowe instrukcje (up, down).

No i kolejny (próbny) precyzyjny rysunek:

Opis całego proejktu Maszyny pod tym adresem

Obroty na minutę (rpm) i czujka pola magnetycznego SS49E

Wakacje w trakcie, ale nie tylko Pan Bartek spędza wolny czas z pracą nad projektem. Pan Przemek, który nie miał czasu na zajęcia Fi-BOTa w roku akademickim, poznaje Arduino i „atakuje” temat liczenia obrotów silniczka, wykorzystując czujkę pola magnetycznego SS49E


A po co nam zliczanie tych obrotów? Zastosowań jest wiele, jednym z nich jest mierzenie prędkości wiatru takim prostym urządzeniem:

w środku którego znajdują się: czujka SS49E, dwa magnesy oraz łożysko kulkowe (typ 682ZZ).

O dalszych losach tego projektu niebawem…

(c) K.G.

Precyzyjna Maszyna – protokół BBcode i pierwsze rysowanie

Pan Bartek wymienił paski na odpowiednie przez co maszyna faktycznie stała się precyzyjna 😉 Na zdjęciu poniżej widać te „zębkowate” paski właśnie i pierwszy „wydruk” – na razie litera „F” ale z czasem będzie cały Fi-BOT i logo 😀

Ciągle jest kilka kwestii do zrobienia:

  • (konstrukcyjna) mechanizm trzymania, podnoszenia i opuszczania pisaka (zmiany kolorów? kto wie),
  • (oprogramowanie) protokół komunikacji: tutaj padło na komunikację UART sterowaną graficznie z processinga i własny protokół wymiany danych „BBcode„. 

Jak na razie protokół BBcode obsługuje jedną instrukcję – przesuń maszynę o zadaną liczbę kroków wzdłuż osi x i y. W planach jest jeszcze „podnieś pisak” i „pisak dół”, a może nawet „powtarzaj X razy”. Zobaczymy.

Już we wtorek kolejne etapy produkcji – to się właśnie nazywa wakacje! jest czas na zabawę! Aktualizacje także na oddzielnej stronie projektu.

(c) K.G.

Precyzyjna Maszyna – silniki krokowe

Pan Bartek zaprezentował dziś finalną wersję ramy – z wózkami własnego pomysłu. Oto i ona:

I najważniejsze – wózki:

Chwilowo paski to zwykła dętka rowerowa (odpowiednie paski w drodze). Sterowanie shieldem do silników krokowych i maszyn CNC:

Taki shield to fajna sprawa – oszczędza plątaniny przewodów. Jego programowanie jest bajecznie proste. Używamy modułów A4988 sterowników silników:

Wszystko złożone i gotowe do pracy wyglądało tak:

A jak to działa?

Na filmie powyżej dodatkowy (tymczasowy) element – gąbki, to wyciszenie (cała konstrukcja lekko drga, a metalowe śrubki lekko dzwonią). Mamy pomysł co z robić z tym „fantem” – będzie i skuteczne, i zabawne 😉 W strylu Pana Bartka – wydrukuje się w 3D odpowiednie podkładki. Niebawem się okaże.

A teraz dwa silniki w akcji:

Nie mogliśmy się oprzeć pokusie „zainstalowania” precyzyjnego pisaka 😉 i wykonania pierwszego „precyzyjnego” rysunku:

Na uwagę zasługują gradienty koloru i efektowne falki. Jak się takie rzeczy programuje – chwilowo pozostawiamy w tajemnicy 😀 Filmik

Poniżej najważniejsi gracze z prezentowanej maszyny: wózki konstrukcji Pana Bartka – gratuluję pomysłowości!


Widać, że prace idą w (bardzo) dobrym kierunku. Niebawem kolejne etapy produkcji – wszystko aktualizowane na oddzielnej stronie projektu.

(c) K.G.