ATtiny13/Arduino Nano i serwo modelarskie jako oś Z do plotera

Dyskusje o programowaniu mikroprocesorów.
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 3857
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

ATtiny13/Arduino Nano i serwo modelarskie jako oś Z do plotera

#1

Post napisał: tuxcnc » 16 sie 2020, 12:55

Moją pierwszą maszyną CNC był prymitywny ploter do rysownia płytek PCB pisakiem kwasoodpornym.
Było to sterowane AT89C52 (kto jeszcze pamięta taki układ ?) i prostym programem w assemblerze interpretującym HPGL.
Ploter potrafił jechać tylko wzdłuż osi X, wzdłuż osi Y, oraz pod kątem 45 stopni do osi X i Y.
Podnoszeniem i opuszczaniem pisaka zajmował się selenoid, czyli inaczej elektromagnes.
Pomimo prymitywności sprzęt był użyteczny i wykonałem nim całkiem skomplikowane płytki.

Czasem z nostalgią wracam do tamtych czasów i obiecuję sobie że wykonam kopię tamtego plotera, tylko według dzisiejszych standardów i dzisiejszej technologii ...

Co do osi X i Y to się zbyt wiele nie wymyśli, muszą być silniki krokowe i śruby albo paski, ale takie rozwiązanie w osi Z, która ma tylko podnosić i opuszczać pisak jest ewidentnym przerostem formy nad treścią.
Aż się prosi użyć serwa modelarskiego, choćby i tandetnego SG90, które kosztuje w Chinach aż 8 PLN z wliczoną wysyłką ...
Oczywiście do takiej zabawki nie ma sensu montować sterownika lepszego od GRBL, ale tu powstaje problem, bo on serwomechanizmów nie obsługuje ...
Doszedłem do wniosku, że nie warto się bawić w przepisywanie kodu GRBL, bo dużo lepszym i bardziej uniwersalnym rozwiązaniem będzie zbudowanie prostego sterownika, który będzie zamieniał binarny sygnał wejściowy na sygnał sterujący serwem.
Najlepiej do tego się nadaje bajecznie tani ATtiny13, którego można nawet upchnąć w obudowie serwa, no ale jeśli ktoś nie ma układu czy programatora, to i Arduino Nano podejdzie.
Dzisiaj się wreszcie zebrałem do napisania programu, którym postanowiłem się z Wami podzielić, bo może się komuś przyda ...

W poniżej zlinkowanym archiwum jest plik kodu źródłowego dla Arduino IDE, oraz pliki hex dla Uno i dla ATtiny13.
Przy takich parametrach jak w programie, serwo obraca się o około 180 stopni. Jeśli to za dużo, to trzeba zmienić jedną linię programu.
Tam jest (5+8*(PINB & B00000010)), 5 to wartość odpowiadająca 0 stopni, a (PINB & B00000010) przyjmuje wartości 0 albo 2 w zależności jaki sygnał jest na wejściu. Reszta powinna być jasna.
Żeby w Arduino IDE programować ATtiny13 trzeba dodać "płytkę", ja użyłem https://github.com/MCUdude/MicroCore ale tego opisywać nie będę.

Archiwum z programem : https://github.com/tuxcnc/tuxcnc/raw/ma ... le.tar.bz2



Awatar użytkownika

drzasiek90
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 302
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: ATtiny13/Arduino Nano i serwo modelarskie jako oś Z do plotera

#2

Post napisał: drzasiek90 » 16 sie 2020, 13:37

Kilka lat temu zbudowałem serwonaped DC właśnie z takiego najtańszego serwa modelarskiego - obecnie do kupienia za kilka zł.
Wyciągnąłem oryginalną płytkę PCB i potencjometr, usunąłem mechaniczne ograniczenie obrotu. Wtedy zaprojektowałem najmniejsza płytkę PCB jaką kiedykolwiek projektowałem, miała chyba coś ok 10x13 mm. Na płytce mieścił się mikrokontroler z peryferiami do jego pracy, enkoder magnetyczny 14 bitowy, mostek H (ciekawe rozwiązanie bo znalazłem układ chyba w obudowie 3x3mm). Napęd działał, posiada komunikację szeregową (sterowanie prędkością lub pozycją napędu w 14bitowej rozdzielczości) oraz wejścia kroku/kierunku. Serwo miało służyć do budowy miniaturowej maszyny CNC która to z kolei miała służyć do niczego (miała zmieścić się na biurku i służyć do testowania oprogramowania sterującego które później tworzyłem). Zabrakło mi jednak czasu i chęci aby maszynę dokończyć. Serwonaped gdzieś chyba jeszcze leży, (jak znajdę gobpo urlopie to wrzucę zdjęcie) natomiast z tego co pamiętam wymontowalem mu magnes od enkodera bo był pilnie potrzebny.


piotr56
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 179
Rejestracja: 21 sty 2016, 11:35
Lokalizacja: Rzeszów

Re: ATtiny13/Arduino Nano i serwo modelarskie jako oś Z do plotera

#3

Post napisał: piotr56 » 07 wrz 2020, 19:27

Witam
Ciekawe rozwiązanie, aczkolwiek istnieją programowe rozwiązania problemu przez modyfikację GRBL. Widziałem wiele wersji, ale ten opis mi się spodobał :) https://www.instructables.com/id/How-to ... sing-GRBL/
Pozdrawiam

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Arduino, Raspberry pi i inne systemy mikroprocesorowe”