Problem znany jest modelarzom szkutniczym. W zasadzie w każdym modelu trzeba dorobić kilka linek (albo cały ich komplet). Zabawę zaczyna się od zwinięcia pojedynczych żył zgodnie z ich splotem (dużo ciaśniej niż oryginał). Następnie cały zestaw żył zwijamy razem ze sobą. Na koniec pozostaje opalenie, dzięki czemu pozbywamy się włosków. Wychodzi bardzo zgrabna (i grubsza niż surowiec) linka o ładnym splocie.
Taką wielożyłową linkę można też zwinąć “ręcznie”. Niestety jest to dość pracochłonne. Dodatkowo, trudno zachować identyczne skręcenie poszczególnych żył. W rezultacie efekt nie zawsze jest zadowalający a kolejne linki nie są do siebie podobne. W sprzedaży znajdziecie specjalne urządzenia do zwijania (ropewalk). Niestety nie są ogólnie dostępne, a ich koszty są zazwyczaj niewspółmiernie wysokie. Postanowiłem takie urządzenie zrobić samemu.
Prototyp zwijarki powstał na bazie klocków lego-podobnych.
Właściwie to urządzenie działało całkiem sprawnie. Niestety do dyspozycji miałem tylko jeden silnik. Po zwinięciu żył musiałem je przepinać, żeby spleść linkę.
Zwijarka
Moja zwijarka składa się z dwóch niezależnych elementów:
- przedniego – zwijającego poszczególne żyły (maksymalnie 3), z micro:bit, servo:lite (z zasilaniem) i serwa 360,
- tylnego – zwijającego żyły w linkę, wyposażonego w drugie serwo 360
Elementy są niezależne i można je ustawiać w dowolnej odległości. W ten sposób mogę zwijać linki dokładnie tak długie, jakie potrzebuję. Elementy mają pogrubione podstawki służące do przymocowania ich do stołu za pomocą klamerek lub ścisków stolarskich. Obroty serwa przedniego elementu przekładane są za pomocą zębatek na 3 osie. Osie zakończone są haczykami, o które zaczepiam poszczególne żyły. Serwo tylnego elementu skręca linkę z żył. Jest podłączone do servo:lite umieszczonym w przednim elemencie.
Całość sterowana jest przez micro:bit z przedniego elementu.
Cały proces skręcania linek wygląda następująco:
- Tnę kilka żył, związuję na ich końcach pętelki i zaczepiam o haczyki przedniego elementu,
- Przeciwne końce żył związuję razem i zaczepiam o haczyk tylnego elementu.
- Żyły muszą być tak ułożone, żeby ich sploty układały się w tą samą stronę.
- Między linki, przy tylnym elemencie wkładam krzyżak tak, żeby je rozdzielić
- Skręcam poszczególne żyły przednim serwem zgodnie z ich splotem aż uzyskam pożądane napięcie (zwykle 1-2 cm mniej niż ich oryginalna długość),
- Wyłączam przednie serwo,
- Uruchamiam tylne serwo.
- W miarę skręcania przesuwam krzyżak tak, żeby linki równomiernie splatały się od tylnego elementu w kierunku przedniego.
- Po uzyskaniu pełnego splotu wyłączam tylne serwo.
- Po napiętej lince przeciągam kilka razy płomień z zapalniczki tak, żeby pozbyć się włosków.
Gotowe:)
Servo:Lite
Rozszerzenie servo:lite to niewielka płytka dokręcana do micro:bit. Na jej odwrocie znajduje się zasobnik na 3 baterie AAA. Oprócz tego na płytce znajdziecie pięć diod LED oraz wyłącznik główny.
Płytka obsługuje 2 serwa (lub trzy, jeżeli zrezygnujecie z obsługi LED). Maksymalny prąd na wszystkich serwach nie może przekroczyć 1A. Jeżeli weźmiecie pod uwagę parametry pracy, w praktyce ogranicza to zakres obsługiwanych serw do tych mniejszych (klasy mikro, do 10g).
Wyjścia dla serw podłączone są do portów micro:bit P1 i P2. Diody do P0. Śrubowe połączenie płytki z micro:bit zapewnia zasilanie i komunikację.
Servo:Lite – programowanie serw
Wykorzystam bloczki z domyślnego zestawu. W grupie Pins znajdziecie:
Przykładowe komendy:
Bloczek (przykład) | Rezultat dla normalnego serwa | Rezultat dla serwa 360 |
---|---|---|
servo write pin <p1> to <180> | Ustaw serwo na pinie p1 w pozycji 180 (maksymalnie w lewo/prawo) | Serwo P1 obraca się w lewo (prawo) |
servo write pin <p2> to <0> | Ustaw serwo na pinie p2 w pozycji 0 (maksymalnie w prawo/lewo) | Serwo P2 obraca się w prawo (lewo) |
servo write pin <p1> to <90> | Ustaw serwo na pinie p1 w pozycji 90 (neutralnej) | Serwo P1 nie obraca się |
Więcej do obsługi serw nie trzeba. Pamiętajcie, że serwa podpięte są pod P1 i P2.
Budowa zwijarki
Zwijarkę zbudowałem z 3mm sklejki. Sklejkę pozyskałem… z drewnianych segregatorów. Miały iść na przemiał. Zamiast tego delikatnie je rozkleiłem tak, aby wykorzystać oryginalne ząbkowane łączenia:
Tylny element
Tylny element spełnia dwie funkcje: trzyma wszystkie żyły razem – a po ich skręceniu, zwija całą linkę. Musiałem wykonać obudowę, która będzie podstawą dla serwa. Trudność polegała na tym, że ten element musi również napinać żyły podczas zwijania.
Przy budowie bazy wykorzystałem ząbki łączeń:
Spód elementu wkleiłem wgłąb ścianek:
O tylną ściankę zahaczę gumkę – co będzie częścią “mechanizmu” napinającego:
Cały trik polegał na odpowiednim skonstruowaniu podłogi. Podłogę przykręcę np. do blatu stołu. Tylny element będzie się z niej wysuwał (stąd podniesiony spód). Gumka będzie z powrotem odciągała cały element napinając podpięte do niego żyły. Razem wygląda to tak:
Zauważcie, że koniec podłogi jest trochę grubszy. Dzięki temu będę go mógł bezpiecznie przytwierdzić do np. stołu.
Na koniec wykonałem jeszcze pokrywkę:
Pokrywkę przymocowałem za pomocą kołków. Są wklejone jedynie w pokrywkę, więc mogę ją łatwo zdemontować.
Element przedni
Ten element jest trochę bardziej skomplikowany. Zawiera zasilanie, sterowanie i serwo napędzające 3 osie. O osie zahaczę zwijane żyły.
Podobnie jak poprzednio, zacząłem od skrzynki.Tym razem serwo nie jest zamontowane w przedniej ścianie, tylko na dodatkowej przegrodzie:
Między przegrodą a przednią ścianą znajdą się trybiki. Środkowy trybik podłączony jest bezpośrednio do serwa. Napędza on pozostałe trzy trybiki. Osie i złączki zapożyczyłem z zestawu lego-podobnego.
Wycięcie otworów na osie wymagało większej uwagi. Znając położenie serwa (osi napędzającej), miejsca na osie trybików wyznaczyłem za pomocą klocka i kątomierza cyfrowego.
Osie przełożone przez przednią ścianę:
Teraz zająłem się przednią ścianą, gdzie zamontowałem micro:bit:
Teraz pozostało osadzenie przedniego panelu na obudowie… Założyłem sobie, że będzie on demontowalny. Osadziłem go na prowadnicach:
Haczyki na osiach
Haczyki na osiach wykonałem z plastiku PLA (takiego od drukarki 3D). Pręciki PLA wkleiłem w mufki (zielone) przy pomocy Doodlera. Na koniec podgrzałem plastik za pomocą gorącego powietrza i ukształtowałem go w haczyki.
Dla tylnego elementu przykleiłem klocek lego do orczyka i krótki łącznik do haczyka. W ten sposób będę mógł przykręcić orczyk do serwa (przez klocek).
Tylny element z serwem:
Element przedni:
Oprogramowanie
Oprogramowanie jest raczej mało skomplikowane. W kolejnych krokach wybieram serwo oraz kierunek jego obracania. Między krokami przełączam się klawiszem “B’. Wybór opcji w danym kroku (np. serwo tylne/przednie, obroty w lewo/prawo) dokonuję wciskając klawisz ‘A’. Po wybraniu serwa i kierunku, wciśnięcie B uruchamia odpowiednie serwo. Wciśnięcie dowolnego przycisku przerywa obracanie serwa. Program powraca wtedy do wyboru serwa.
Poniżej zamieszczam kod w JS. Przejdźcie do edytora, w górnym menu wybierzcie “{} JavaScript” i wklejcie kod do edytora. Przechodząc do widoku “Blocks” – możecie programować za pomocą bloczków.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
let start = 0 let direction = 0 let servo = 0 let even = false let mode = 0 input.onButtonPressed(Button.A, () => { if (mode == 2) { resetMe() } else if (mode == 0) { servo += 1 if (servo > 1) { servo = 0 } } else if (mode == 1) { direction += 1 if (direction > 1) { direction = 0 } } else { } }) input.onButtonPressed(Button.B, () => { if (mode == 2) { resetMe() } else { mode += 1 if (mode == 2) { start = 1 } } }) function resetMe() { mode = 0 pins.servoWritePin(AnalogPin.P1, 90) pins.servoWritePin(AnalogPin.P2, 90) } resetMe() basic.forever(() => { even = !(even) if (mode == 0 && servo == 0) { basic.clearScreen() basic.showLeds(` . # . # . . . # . . # # # # # . # # # . . . # . . `) } else if (mode == 0 && servo == 1) { basic.clearScreen() basic.showLeds(` . . # . . . # # # . # # # # # . . # . . . # . # . `) } else if (mode == 1 && direction == 0) { basic.clearScreen() basic.showLeds(` . # # # . # . # . # # . # . # . # . . # . . . . # `) } else if (mode == 1 && direction == 1) { basic.clearScreen() basic.showLeds(` . # # # . # . # . # # . # . # # . . # . # . . . . `) } else if (mode == 2) { if (start == 1) { start = 0 pins.servoWritePin(AnalogPin.P2, 90) if (servo == 0) { if (direction == 0) { pins.servoWritePin(AnalogPin.P1, 0) } else { pins.servoWritePin(AnalogPin.P1, 180) } } else { pins.servoWritePin(AnalogPin.P1, 90) if (direction == 0) { pins.servoWritePin(AnalogPin.P2, 180) } else { pins.servoWritePin(AnalogPin.P2, 0) } } } if (even) { basic.showLeds(` . . . . . . # # # . . # . # . . # # # . . . . . . `) } else { basic.showLeds(` . . # . . . # . # . # . . . # . # . # . . . # . . `) } } }) |
Jak to działa?
Poniższe wideo pokazuje zwijarkę w akcji:
Koszty
Zwijarkę zbudowałem z elementów, które już posiadałem. Ale zdaję sobie sprawę, że nie u każdego w szafie leżą:
- micro:bit, koszt około 80 złotych,
- servo:lite, koszt około 60 złotych,
- dwa serwa 360 – około 30 złotych (u mnie Fitec),
- sklejka 3mm – pewnie z 0.5 m2 – 10 złotych,
- dodatkowe kabelki – może 2 złote,
Razem: około 180 złotych.
Drogo? Tak. Ale: możecie znacznie obniżyć koszty urządzenia. Najdroższe było samo sterowanie. Zwijarka wcale nie musi być sterowana micro:bit i servo:lite. Możecie użyć do tego Arduino z koszykiem baterii 4xAA. Możecie użyć nawet dwóch testerów do serw. Sterowanie możecie zbudować właściwie na czymkolwiek co generuje sygnał PWM o wypełnieniu 5% lub 10%. Od biedy możecie użyć nawet timerów ne555 po 1 zł sztuka. Opcji jest mnóstwo – całe urządzenie można więc zrobić za nie więcej niż 30 złotych.
Podsumowanie
Dzięki zastosowaniu micro:bit i servo:lite, warstwa elektroniczna tego projektu była bardzo prosta. Najwięcej czasu zajęło mi zbudowanie samych obudów. W oryginale miały być prostsze, ale trochę się zapędziłem:)
W rezultacie powstało bardzo poręczne urządzenie. Linki są bardzo równi zwinięte. Tutaj porównanie takiej zwiniętej ręcznie (na dole) i za pomocą urządzenia:
Trochę przesadziłem z tym “napinaczem” podstawki. Trzeba odpowiednio dobrać gumkę, żeby nie stawiała zbyt dużego oporu. Dodatkowo rozważyłbym zewnętrzne zasilanie – baterie pewnie nie wystarczą na długo.
Orzesz Q;) to je dobre:) brakuje chyba tylko czytnika lini papilarnych;) szacun:)
Rewelka :)
Eeee, taka świetna zwijarka i rewelacyjny opis budowy, a czasu brakło na dłuższy filmik? Nie wierzę! Na pewno to nie działa ;-)
Proszę:)
No właśnie, z chęcią zobaczę efekt działania – skoro to zwijarka do lin, to chciałbym zobaczyć jak powstaje lina :-). Wtedy będzie 5* ;-)
Proszę:)
Ja też z chęcią zobaczę, jak powstaje lina. Nagraj jeszcze jeden filmik
Już jest, pozdrawiam, Arek
No i fajnie :) poszło 5
Witajcie –
Zgodnie z Waszymi sugestiami – dodałem dłuższy filmik. Darowałem sobie pokazy piromańskie:)
Pozdrawiam,
Arek