Quantcast
Channel: Majsterkowo - zrób to sam!
Viewing all 1332 articles
Browse latest View live

Płynna regulacja obrotów multiszlifierki za pomocą pedału od maszyny do szycia

$
0
0
plynna-regulacja-obrotow-ikona
Jak istotnym narzędziem w warsztacie każdego majsterkowicza jest multiszlifierka (miniszlifierka), to chyba każdy wie. Niestety w tych tańszych modelach, które najczęściej trafiają do amatorskich warsztatów, nie ma co liczyć na takie bajery, jak pedały do płynnej regulacji obrotów. Sam przez kilka miesięcy korzystałem z takiej multiszlifierki i wiem, jakim utrapieniem jest odrywanie rąk od pracy w celu zmiany obrotów, czy ogólnie włączenia i wyłączenia urządzenia. No ale przecież nie bez kozery nazywamy się majsterkowiczami, dlatego też dorobimy sobie taki pedał sami - a dokładniej, to zaadoptujemy pedał od maszyny do szycia :) Czytaj dalej...



Programowanie mikrokontrolerów za pomocą programatora USBasp

$
0
0
programator-icsp-typu-usbasp-ikona2
Od momentu pojawienia się w Majsterkowie pierwszego postu poświęconego Arduino dotarło do mnie wiele sygnałów od ludzi, którzy bardzo by chcieli zacząć przygodę z mikrokontrolerami, ale nie mogą sobie pozwolić na wydanie 100zł na Arduino. Niby nie jest to duża kwota, ale zdaję sobie sprawę, że dla młodszych, jeszcze niepracujących majsterkowiczów może być ona sporą barierą. Na szczęście wcale nie trzeba wydawać aż tyle kasy, żeby wykonać wszystkie opisywane w Majsterkowie projekty. Owszem - sama płytka Arduino bardzo ułatwia prototypowanie i testowanie różnych wariantów układu, ale spokojnie można się bez niej obyć. Wystarczy zaopatrzyć się w programator USBasp, którego cena stanowi zaledwie ¼ ceny Arduino: Czytaj dalej...


Jak zabezpieczyć dzwonek bezprzewodowy przed deszczem?

Jak zrobić olbrzymie bańki mydlane?

$
0
0
wielkie-banki-mydlane-ikona
Jakiś czas temu wpadł mi w oko filmik wrzucony na Facebooka przez moich starych znajomych, Anię i Dawida, którzy zajmują się organizacją imprez dla dzieci. Na filmie tym został uwieczniony kawałek pokazu olbrzymich baniek mydlanych w czasie Dnia Bańki Mydlanej ;) Każdy z nas na pewno nie jeden raz puszczał w życiu bańki mydlane. Sam pamiętam, jak będąc dzieciakiem robiłem różne mikstury z wody płynu do mycia naczyń (i wszystkiego, co było w łazience;) i puszczałem bańki za pomocą przyrządów zrobionych z kawałka drutu wygiętego w ładny okrąg na starym słoiku ;) Nigdy jednak nie udało mi się zrobić tak wielkich baniek mydlanych, jak te na poniższym filmiku: Po obejrzeniu tego filmu troszeczkę się napaliłem na te wielkie bańki i postanowiłem spróbować swoich sił w roli bubble mastera. Dodatkowo motywował mnie fakt, że wielkimi krokami zbliżała się pewna rodzinna impreza, na której fajnie by było zrobić pokaz takich wielkich baniek. Po podpytaniu Dawida o kilka szczegółów postanowiłem zrobić sobie i przy okazji opisać w Majsterkowie sposób, w jaki można takie kijki do puszczania olbrzymich baniek mydlanych wykonać we własnym domu za parę złotych. Czytaj dalej...


Jak zwiększyć głośność dzwonka rowerowego?

$
0
0
jak-zwiekszyc-glosnosc-dzwonka-rowerowego-ikona
Chyba każdy rowerzysta może potwierdzić, jak wielką zmorą są piesi wałęsający się po drogach dla rowerów. Po części ich rozumiem, bo niby skąd starsze pokolenie ma wiedzieć, że po szarej kostce brukowej można chodzić, a po czerwonej już nie? Z asfaltowymi drogami dla rowerów jest już trochę lepiej, bo większość pieszych podświadomie wie, że po asfalcie się nie chodzi. Niestety nie dla wszystkich jest to takie oczywiste, dlatego nie wyobrażam sobie poruszania się po mieście rowerem, który nie ma dzwonka. Przez prawie rok zamiast dzwonka używałem dosyć głośnej trąbki rowerowej, ale niestety średnio się ona sprawdzała. Owszem - była dużo głośniejsza od jakiegokolwiek dzwonka, ale piesi słysząc jej dźwięk nie schodzili na bok, a jedynie zatrzymywali się i oglądali za siebie, żeby sprawdzić, co to tak trąbi ;) Jednak dźwięk dzwonka jest zakorzeniony głęboko w umysłach ludzi i lepszego sygnału ostrzegawczego dla rowerzysty chyba nikt nie znajdzie. Tym bardziej, że dzwonek ma dosyć wysoki dźwięk, więc w miejskim gwarze jest dużo lepiej słyszalny od trąbki, której odgłos ginie w szumie przejeżdżających obok samochodów. Oczywiście dzwonek też nie będzie słyszalny zawsze i wszędzie. Wystarczy, że pieszy spacerujący po ścieżce rowerowej będzie miał na uszach słuchawki i szanse, że nas usłyszy, spadają praktycznie do zera. Dlatego nie wystarczy mieć na kierownicy dzwonka... - trzeba mieć głośny dzwonek! Niestety większość dzwonków sprzedawanych obecnie w sklepach jest średniej głośności, ale na szczęście całkiem prosto można takiego dryndałka zhakować ;) I właśnie tym się dzisiaj zajmiemy... Czytaj dalej...


Jak zrobić kabelki do Arduino i do płytek stykowych?

$
0
0
kabelki-do-arduino-ikona
Każdy początkujący miłośnik elektroniki zaczyna prędzej czy później korzystać z uniwersalnych płytek stykowych, które są niezastąpione przy budowaniu prototypów wszelkiego rodzaju układów elektronicznych. Mając taką płytkę można dosłownie w kilka minut złożyć dowolny układ elektroniczny bez potrzeby łapania za lutownicę, dzięki czemu w każdej chwili można dowolnie zmieniać konfigurację całego układu - ot wystarczy przepiąć kilka kabelków i gotowe. Płytki stykowe są też często używane w parze razem z Arduino, pozwalając szybkie podpięcie całej garści dodatkowej elektroniki, jak diody, rezystory, itp. Czytaj dalej...


Jak zrobić teleskopowy chwytak magnetyczny?

$
0
0
Klucze złapane chwytakiem magnetycznym
Normalna rzeczą jest, że od czasu do czasu wpadnie nam coś za jakąś komodę, za szafę, czy w jakiś inny trudno dostępny zakamarek. Czasami do wyciągnięcia zguby wystarczy jakiś kawałek linijki, jednak w części przypadków nie pozostaje nam nic innego, jak odsunąć szafę i spróbować dosięgnąć upuszczony przedmiot ręką. No chyba, że zrobimy sobie magnetyczny chwytak teleskopowy :D Mając taki chwytak bez problemu wyciągniemy zza komody (czy z innego zakamarka) wszelkie metalowe przedmioty - zarówno te drobne (śrubki, zapalniczki, klucze od domu), jak i te nieco większe (wkrętaki, kombinerki, baterie, ...).

Czytaj dalej...


Drewniana plansza do gry w “kółko i krzyżyk”

$
0
0
kolko-i-krzyzyk-ikona
Szukając pomysłu na prezent dla jednego z moich młodszych kuzynów Kasia podrzuciła mi pomysł na zrobienie jakiejś prostej gry planszowej. Dzieciak jest jeszcze mały (7 lat), więc i gra nie mogła być zbyt skomplikowana. Wybór padł na grę "kółko i krzyżyk", którą postanowiłem zrobić z drewna :) Przejrzałem Allegro w poszukiwaniu inspiracji, ale nic ciekawego nie wpadło mi w oko, więc grę postanowiłem zrobić "po swojemu" ;) Po godzinie cięcia, wiercenia, szlifowania i wypalania udało mi się zrobić taką oto grę: Gotowa gra "kółko i krzyżyk" Całość ma wymiary 9x9cm i spokojnie mieści się w dłoni :) Czytaj dalej...



Zabezpieczamy dom, czyli jak zrobić alarm z odświeżacza powietrza

$
0
0
alarm-z-odswiezacza-powietrza-ikona7
Nikt z nas nie lubi być okradany - jest to sprawa jasna i oczywista. Jednak już sam sposób zabezpieczania naszych dóbr materialnych nie jest już kwestią tak oczywistą, bo sposobów na podniesienie bezpieczeństwa jest wiele. Jedni ryglują drzwi czterema zamkami i wstawiają kraty w okna, drudzy wydają majątek na zaawansowane systemy alarmowe, a jeszcze inni kupują sobie psy, które pilnują ich dobytku. Wiadomo - nie ma zabezpieczeń nie do obejścia i zawodowy złodziej bez problemu rozbroi każdy system alarmowy. No chyba że... nie zamontujemy u siebie żadnego gotowego rozwiązania i zrobimy sobie alarm sami :D Ekipa Niebezpiecznika z pewnością potwierdzi, że najciężej jest ominąć to zabezpieczenie, którego włamywać najzwyczajniej w świecie się nie spodziewa. I właśnie to sobie dzisiaj zmontujemy - prosty system alarmowy reagujący na ruch w pomieszczeniu, który wykonamy na bazie... odświeżacza powietrza ;) Efektem dzisiejszego postu będzie taki oto alarm: Czytaj dalej...


Prosta antena do obioru DVB-T

$
0
0
dvb-t-ikona2
Jeśli wiesz już wszystko o DVB-T i chcesz po prostu sam zrobić antenę, możesz pominąć trzy następne akapity.

Ale o co chodzi?

Od jakiegoś czasu m.in. w telewizji straszą nas "przejściem na odbiór cyfrowy". Nie ma się czego bać, bo oznacza to dla nas dużo dobrego - lepsza jakość obrazu i dźwięku, więcej kanałów, "program telewizyjny" (harmonogram nadchodzących audycji) w telewizorze. I to wszystko za darmo, bez kablówki czy anteny satelitarnej - oczywiście pamiętając o płaceniu abonamentu RTV, który tak czy siak płacić trzeba. Do odbioru potrzebny jest w miarę nowy telewizor z wbudowanym dekoderem DVB-T lub zewnętrzny dekoder tego standardu. Obojętnie jak będziemy odbierać, potrzebna nam antena - tu pokażemy, jak szybko i tanio zrobić własną antenę. Antena DVB-T Czytaj dalej...


Dobry i czuły mikrofon pojemnościowy do komputera i laptopa za 2zł

$
0
0
mikrofon-do-komputera-ikona2
Jakiś czas temu koleżanka pożaliła mi się, że kupiła sobie mikrofon do komputera za 15zł, ale jest on strasznie cichy i mocno szumi. Niestety, ale większość tych tanich mikrofonów to szajs (o czym wspomnę jeszcze w dalszej części artykułu), więc jak już się kupuje gotowy mikrofon, trzeba stawiać na sprawdzone firmy, żeby się nie nadziać. Dużo lepszą opcją jest jednak zrobienie takiego mikrofonu samemu. I to za jedyne 2zł! Serio - 2zł wystarczą, żeby zrobić naprawdę dobry mikrofon do komputera :) Czytaj dalej...


Desperacka próba ratowania suszarki

$
0
0
suszarka-ikona
Dzisiaj będzie bardzo krótki i jeszcze bardziej nietypowy post, w którym niczego fajnego nie zmajstrujemy. Opiszę Wam za to krótką historię suszarki, która po raz kolejny została uratowana przed utylizacją ;)

Ale po co?

Suszarka, która jest główną bohaterką tego posta, została kupiona jakieś 3 lata temu za około 50zł. Przez pierwsze dwa lata śmigała bez zarzutu, ale zaraz po zakończeniu okresu gwarancyjnego zaczęły się pierwsze problemy. Ale nie - Majsterkujący Więcek nie dał satysfakcji producentowi i nie poleciał kupić nowej, lecz uderzył się w pierś i obiecał sobie, że będzie ją reanimował do upadłego ;) Tak dla zasady! Zepsuta suszarka Czytaj dalej...


Jak sterować dowolnym urządzeniem w domu za pomocą pilota od TV i Arduino?

$
0
0
pilot-ir-ikona
Zastanawialiście się kiedyś, czy można wykorzystać pierwszy lepszy pilot (np. od telewizora) do sterowania dowolnym urządzeniem w domu? Otóż można i wbrew pozorom jest to banalnie proste :) I właśnie tym zajmiemy się w dzisiejszym poście. Na początku pokażę Wam, jak nauczyć Arduino odczytywać sygnały wysyłane przez dowolnego pilota, a później omówię kilka układów, które umożliwią włączanie i wyłączanie np. lampki nocnej, czy ściemnianie i rozjaśnianie diod LED. Czytaj dalej...


Jak zrobić głośnik z dysku twardego?

$
0
0
glosnik-z-dysku-twardego-hdd-ikona2
Pamiętacie post, w którym pokazywałem, jak z dysku twardego zrobić szlifierkę? Pisałem wtedy, żebyście nie wyrzucali zbędnych dysków, bo przydadzą się w jeszcze kilku postach. I własnie dzisiaj weźmiemy na warsztat te dyski i zrobimy sobie z nich głośniki :D Tak, tak - najnormalniejsze głośniki, na których będzie można posłuchać muzyki. Oczywiście nie będzie to żaden sprzęt hi-fi, ale z pewnością taki grający dysk twardy wprawi w osłupienie wszystkich Waszych znajomych ;) http://www.youtube.com/watch?v=JNLeux8-xsE W powyższym nagraniu możecie posłuchać utworu Long Journey Home w wykonaniu szantowej kapeli Prawdziwe Perły. Utwór pochodzi z płyty "Na Wygnaniu", którą możecie sobie ściągnąć za darmo z tej strony. Czytaj dalej...


Jak rozpocząć zabawę z STM32?

$
0
0
Początki STM32
Za namową Łukasza postanowiłem przedstawić cykl artykułów poświęconych mikrokontrolerom ARM na przykładzie ZL27ARM firmy KAMAMI, w której ulokowany jest mikrokontroler STM32 F1 03VBT6. Obecnie na rynku można spotkać dwie pozycje książkowe, polskiego wydania, gdzie autorzy starają się w jasny i pełny sposób przedstawić programowanie mikrokontrolerów STM32. Zapewne, jak się domyślacie, treść książek pozostawia sobie wiele do życzenia mimo to, że wzajemnie się uzupełniały i tak nie obeszło się bez wielogodzinnej walki co autor miał na myśli. Czytaj dalej...



Zmajstrujmy coś razem, czyli słów kilka o nowym Majsterkowie :)

$
0
0
nowe-majsterkowo-ikona3
Jak już pewnie zauważyliście, Majsterkowo przeżyło wczorajszej nocy małą rewolucję :) Oprócz zmiany layoutu, zmieniło się na blogu jeszcze kilka innych rzeczy:

Konto majsterkowicza

Od teraz każdy z Was może sobie założyć w Majsterkowie konto - wystarczy kliknąć w link "Zaloguj / Zarejestruj" znajdujący się na dole strony. Co daje takie konto? Zarejestrowani użytkownicy będą mogli brać udział w różnych projektach uruchamianych w Majsterkowie. Pierwszy z projektów, w ramach którego będziecie mogli sterować przez internet jednym z urządzeń w moim domu, ruszy już w najbliższym czasie :D Mając własne konto będziesz mógł dzielić się z czytelnikami swoimi własnymi projektami DIY. Zrób kilka zdjęć, napisz parę słów i opublikuj swój artykuł - bez żadnego czekania na akceptację, czy odrzucania postów wg mojego widzimisię ;)

Twórz i oceniaj twórczość innych

Dając Wam swobodny dostęp do tworzenia treści w Majsterkowie miałem świadomość tego, że od czasu do czasu ktoś będzie próbował opublikować jakiś post wybitnie kiepski merytorycznie. Jednak jak już wspomniałem wcześniej, że mam zamiaru żadnych postów moderować, ani usuwać. Tym zajmiecie się Wy - użytkownicy! Każdy nowy post będzie początkowo trafiał do Poczekalni, i dopiero po zebraniu odpowiedniej ilości pozytywnych ocen (gwiazdek) zostanie automatycznie przeniesiony na stronę główną Majsterkowa :) Na chwilę obecną artykuł leci na główną, jeżeli jest na niego oddanych przynajmniej 10 głosów, a średnia ocenia wynosi minimum 4 (jak te wartości nie będą się sprawdzać, to je skorygujemy).

Majsterkowo się przeprowadziło

Wczorajszej nocy całe Majsterkowo zostało też przeniesione na hosting zenbox.pl, który już za kilka dni oficjalnie ruszy z podbojem świata. W tajemnicy zdradzę Wam, że ofertę mają naprawdę fajną i bardzo nietypową, więc czuję, że zrobią spore zamieszanie na hostingowym rynku :) O szczegóły mnie jednak nie wypytujcie, bo Tomek zabronił mi czegokolwiek mówić ;) Więcek w Majsterkowej koszulce

Może koszuleczkę?

Nie wszyscy pewnie o tym słyszeli, więc przy okazji powtórzę - od jakiegoś czasu są już dostępne w sprzedaży Majsterkowe koszulki :) Są one dostępne w Koszulkowie w cenie 35zł. I żeby nie było - ja sam nic na nich nie zarabiam, a ta cena jest po prostu ceną samego materiału i nadruku. Koszulki są naprawdę świetnej jakości (co potwierdziło też sporo moich znajomych, gdy rozpytywałem ich o jakąś solidną firmę robiącą nadruki:), więc z czystym sumieniem mogę powiedzieć, że są warte tych pieniędzy :)

Coś nie działa?

Oprócz zmiany layoutu, Majsterkowo przeżyło także wczoraj w nocy dosyć poważną operację na otwartym silniku, dlatego prosiłbym Was o zgłaszanie różnych błędów, na jakie ewentualnie gdzieś traficie. Błędy możecie zgłaszać tutaj, lub na naszym forum. Wszystko postaram się łatać na bieżąco (ale w głębi serca mam nadzieję, że nic się nie posypało;)

Słowem zakończenia

Kończąc ten nic nie wnoszący post chciałbym wszystkich gorąco przeprosić za tak długą przerwę bez ani jednego nowego projektu. Przez ostatnie dwa tygodnie byłem pochłonięty szykowaniem nowego Majsterkowa, ale od dzisiaj mam już więcej czasu, więc na dniach pojawi się kilka nowych projekcików :) Jeżeli chcesz być zawsze na bieżąco, zalajkuj koniecznie Majsterkowy fanpage, lub stronę na Google+ :) Pozdrawiam serdecznie! Czytaj dalej...

Które Arduino wybrać? Zobacz porównanie wersji (+konkurs)

$
0
0
Arduino colors
Zapewne większość z was przed zakupem Arduino zastanawiała się, którą wersje wybrać. Postaram się krótko opisać różnice pomiędzy różnymi platformami. Jest to mój pierwszy post, więc proszę o wyrozumiałość ;) Porównanie wersji Arduino będzie od strony laika w świecie mikrokontrolerów (czytaj mnie). Obecnie sam stoję przed wyborem platformy Arduino i mam nadzieję, że ten wpis przybliży wam różnicę poszczególnych wersji, jakich sam doszukałem się w sieci. Producent oferuje aż trzynaście oficjalnych wersji Arduino (nie licząc shieldów). W tym poście postaram się krótko porównać wszystkie wersje wraz z cennikiem tych platform. Pisząc tego posta posiłkowałem się oficjalną stroną producentaoraz sklepem Nettigo zaprzyjaźnionym z Majsterkowem. Na początek chciałbym zrobić krótkie porównanie wszystkich oficjalnych wersji w postaci tabelki: Czytaj dalej...

Arduino na Ubuntu Linux

$
0
0
Arduino#10
Aby zacząć zabawę z mikrokontrolerem Arduino musimy posiadać narzędzia, które nam to umożliwią. Jednym z nich, pomijając samą płytkę, komputer, kabel USB i inne akcesoria jest Zintegrowane Środowisko Programistyczne (IDE), czyli po prostu zbiór bibliotek i programów, które dają nam możliwość komunikacji z Arduino i tworzenie naszych projektów :) Na Majsterkowie znajdują się już opisy instalacji Arduino IDE dla użytkowników Windows'a, jak i Mac OS X. Użytkownicy Linux'a też mogą korzystać z dobrodziejstw tego środowiska. Poradnik będzie oparty na dystrybucji Ubuntu 12.10, czyli najświeższej stabilnej wersji tego systemu.

Pobieranie Arduino IDE

Program można zainstalować za pomocą Centrum Oprogramowania Ubuntu, jednak najprawdopodobniej nie będzie tam jego najnowszej wersji, dlatego też udajemy się na stronę arduino.cc/en/Main/Software, po czym klikamy na jeden z dwóch linków, odpowiednich dla systemu 32 lub 64 bitowego, w zależności od tego jaki posiadamy i pobieramy plik na dysk.

Strona pobierania Arduino IDE

Instalacja wymaganych bibliotek

Przed instalacją samego IDE musimy zainstalować wymagane biblioteki. Otwieramy terminal, po czym wpisujemy komendę:

$ sudo apt-get install gcc-avr avr-libc

Wyskoczy prośba o podanie hasła administratora, podajemy je po czym wciskamy Enter (podczas wpisywania hasła nie widać znaków, to normalne). System poszuka wymaganych pakietów, sprawdzi zależności, po czym zapyta nas czy kontynuować, potwierdzamy  i czekamy, aż instalacja się zakończy. Musimy jeszcze zainstalować pakiet openjdk-6-jre, więc analogicznie do poprzedniego przykładu wpisujemy komendę:

$ sudo apt-get install openjdk-6-jre

i postępujemy tak jak powyżej :) Podłączamy teraz nasze Arduino do wolnego portu USB, po czym wpisujemy w konsoli:

$ dmesg

Ujrzymy wyniki, powinny być one podobne do tych:

[ 3601.428032] usb 5-2: >new full-speed USB device number 2 using uhci_hcd [ 3601.635066] usb 5-2: >New USB device found, idVendor=2341, idProduct=0043 [ 3601.635071] usb 5-2: >New USB device strings: Mfr=1, Product=2, SerialNumber=220 [ 3601.635075] usb 5-2: >Manufacturer: Arduino (www.arduino.cc) [ 3601.635078] usb 5-2: >SerialNumber: 749373038363514190C0 [ 3601.905761] cdc_acm 5-2:1.0: >ttyACM0: USB ACM device [ 3601.908432] usbcore: registered new interface driver cdc_acm [ 3601.908438] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters

System poinformował nas, że Arduino zostało wykryte i podpięte dottyACM0.

Instalacja Arduino IDE

Aby uruchomić środowisko wystarczy rozpakować w dowolnym miejscu pobrane przez nas wcześniej archiwum po czym uruchomić plik arduino. W moim przypadku plik, który pobrałem ma nazwę arduino-1.0.2-linux.tgz Otwieramy archiwum po czym wypakowujemy katalog arduino-1.0.2 na przykład na Pulpit.

Zawartość archiwum z Arduino IDE

Otwieramy katalog arduino-1.0.2, po czym klikamy dwukrotnie na plik arduino i wybieramy Uruchom.

Uruchamianie Arduino IDE

Oto nasze Arduino IDE, jednak jeszcze nie gotowe do działania :) Pierwsze uruchomienie Arduino IDE Wybieramy Narzędzia> Płytka w górnym menu i zaznaczamy naszą wersję Arduino, w moim przypadku Arduino UNO.Wybieranie modelu Arduino Teraz zajmiemy się pewnym problemem związanym z uprawnieniami do portów USB w systemie Ubuntu. Jeżeli w naszym przypadku pole wyboru portu wygląda jak na poniższym obrazku musimy się zastosować do kilku wskazówek :) Nieaktywne pole wyboru portu w Arduino IDE Domyślnie użytkownik w systemie Ubuntu nie ma pełnych uprawnień administratora, przez co nie może dowolnie korzystać z portów USB, a więc pole wyboru portu w menu jest nieaktywne. Jednym z wyjść jest używanie uprawnień root'a podczas korzystania z Arduino, ale nie jest to dobry pomysł :). Musimy więc nadać sobie odpowiednie uprawnienia do /dev/ttyACM0, czyli miejsca, w którym montowane jest nasze Arduino. W tym celu wpisujemy w terminalu:

$ sudo chmod a+rw /dev/ttyACM0

Teraz możemy włączyć ponownie Arduino IDE i wybrać port w menu Narzędzia> Port szeregowy.Wybieranie portu w Arduino IDE

Uruchomienie przykładowego programu

Nasz kompilator jest gotowy do pracy, dla przykładu możemy wybrać z menu Plik> Przykłady> Basics na przykład pozycję Blink. Widoczny program ma za zadanie mruganie diodą podpiętą pod pin 13 w odstępach 1 sekundowych. Jest to swoisty „Hello World” w świecie elektroniki :) Dokładny opis i podstawy programowania w Arduino znajdują się w artykule Łukasza - Od czego zacząć zabawę z Arduino?Wysyłanie programu do Arduino Możemy teraz kliknąć na przycisk Załaduj, w celu wysłania kodu do urządzenia. Komunikat o poprawnej kompilacji i wysłaniu programu do Arduino Po chwili ujrzymy napis Ładowanie zakończone pomyślnie, nasz program siedzi już w Arduino i jest gotowy do działania :) Czytaj dalej...

Skaner 3D oparty na Arduino i Processing

$
0
0
skaner-ikona

Czym jest skaner 3D?

Skaner brył jest urządzeniem stosowanym do zapisywania geometrii fizycznych obiektów w pamięci komputera. Znajduje to zastosowanie np. w muzealnictwie – do archwizacji (od malutkich eksponatów do całych budynków); w medycynie, np. do niezwykle precyzyjnego dopasowania protez; w laboratoriach (badania zużycia) i zakładach produkcyjnych (odtwarzanie części do której brak dokumentacji). Ostatnio pojawiają się również zastosowania w marketingu. Skaner zdejmuje wymiary osoby i poleca pasujące rozmiary ubrań czy tworzy wizualizacje – wreszcie koniec z przymierzaniem! Skanery brył dzielą się ze względu na zasadę działania. Dwie podstawowe to metody:
  • optyczna
  • stykowa
Różnią się między sobą prędkością procesu skanowania jak i dokładnością. Mniej dokładne, ale szybsze, metody optyczne polegają na oświetleniu obiektu światłem i pomiarze odchyleń od oczekiwanego kształtu wzorcowego. Źródłem światła może być np. laser punktowy, laser liniowy, projektor (tzw. skanowanie światłem strukturalnym). Wolniejsza, ale bardziej precyzyjna jest metoda stykowa. W metodzie stykowej, maszyna współrzędnościowa robi serię pomiarów poprzez dosunięcie ramienia z czujnikiem do obiektu i zarejestrowanie pozycji punktu styku poprzez odczytanie wartości położenia z enkoderów liniowych/obrotowych. Dobór metody zależy też od materiału, z jakiego wytworzony jest skanowany obiekt. Metody optyczne nie nadają się do materiałów przejrzystych i mocno błyszczących, metodami stykowymi nie powinno się skanować obiektów z materiałów elastycznych.

Uproszczona zasada działania

Opisanie wszystkich metod jest zadaniem na dobrą pracę naukową, dlatego skupię się na zasadzie działania mojego skanera, wykorzystującego laser liniowy. Obiekt, umieszczony na obrotowej platformie, oświetlony jest laserem liniowym. Pod kątem ok. 30stopni w stosunku do osi optycznej lasera znajduje się kamera (kąt alpha). Kamera obserwuje odkształcenie się linii lasera na obiekcie, przeliczając je na dystans oświetlonego punktu od osi obrotu. Ze względu na to, że jest to dopiero początkowa wersja skanera, pomijam takie rzeczy jak punktowość samego czujnika ccd w kamerze, zniekształcenia na układzie optycznym, błędy wprowadzane przez złej jakości laser. Kamera wykonuje serię zdjęć wokół obiektu, każde zdjęcie robione jest co stały kąt. W moim wypadku wykonywane jest 120 zdjęć wokół obiektu, co oznacza że na każdym kolejnym zdjęciu obiekt jest obrócony o kolejne 360 stopni / 120 = 3 stopnie. Na rysunku oznaczone jest jako fi. Program następnie, wiersz po wierszu, szuka najjaśniejszego piksela. Następnie, gdy piksel taki zostanie znaleziony mierzony jest dystans b pomiędzy nim środkiem obrazu. Wynik, w pikselach, zmieniany jest na milimetry. Współczynnik ilości pikseli odpowiadającym jednemu milimetrowi dla danej odległości kamery od osi obrotu zmierzyłem sobie wcześniej. Następnie za pomocą prostej trygonometrii zamieniam obliczoną odległość b i stały kąt pomiędzy kamerą a laserem na odległość danego punktu od osi obrotu: sinus(alpha) = b / roro = b / sinus(alpha) W ten sposób dostaję współrzędne punktu w tzw. walcowym układzie współrzędnych. W układzie walcowym każdy punkt opisany jest za pomocą trzech parametrów P = (odległość od osi obrotu, kąt między rzutem punktu a osią x, wysokość) Czyli to co już zostało oznaczone: P = (ro, fi, z) W programach CAD czy podobnych graficznych, częściej jednak jest wykorzystywany klasyczny, znany ze szkoły, kartezjański układ współrzędnych, w którym każdy punkt wygląda tak: P = (odległość od początku układ wzdłuż osi X, wzdłuż osi Y, wzdłuż osi Z) czyli P = (x, y, z) Należy wykonać więc konwersję współrzędnych z układu walcowego do kartezjańskiego. Na szczęście to też jest bardzo proste. x = ro * cos( fi )y = ro * sin( fi )z = z I tak dla każdego zdjęcia. Jak mówiłem – nie jest to komplet obliczeń, jest to wersja bardzo uproszczona. Kurczę, rozpisałem się.

Elementy składowe

  • Arduino wraz z Arduino IDE
  • Processing IDE
  • LEGO
  • silnik krokowy
  • driver silnika krokowego wraz ze źródłem zasilania do niego
  • laser liniowy
  • kamera internetowa
  • Meshlab
Pierwsze co należy zrobić, to przemyśleć ogólną budowę i kształt samej platformy, sposób mocowania kamery i lasera, mocowanie silnika, sprzężenie silnika z przekładniami lego. Mi udało się to zrobić bez niszczenia klocków.

Silnik krokowy

Wykorzystałem silnik krokowy od starej drukarki OKI. Silnik ten jest silnikiem bipolarnym o 4 wyprowadzeniach, posiada 48 kroków na obrót, napięcie pracy 3,7V, prąd pobierany przy moim zastosowaniu to ok 200-250mA podczas ruchu. Silnik ma zintegrowaną przekładnię o przełożeniu 6:1. Do wyprowadzeń silnika przylutowałem 4-żyłową taśmę, do drugiego końca każdego z przewodów po goldpinie – dzięki temu bez problemu mogę łączyć silnik ze sterownikiem. Zębatkę przekładni zdjąłem i wywierciłem w niej 6 otworów, które odpowiadają ułożeniu otworów w kole pasowym z lego. Połączyłem to za pomocą 6 osiek o długości „3”. Zdjęcie pochodzi z internetu, mój silnik jest bardzo podobny,  ale nie identyczny.

Driver i zasilacz

Zasilacz to klasyczna aplikacja układu LM317 w postaci zasilacza regulowanego. Schemat załączam, poza tym można znaleźć go w datasheet samego układu. Dodaję też rysunek płytki gotowy do termotransferu. Za pomocą potencjometru należy ustalić napięcie wymagane dla silnika. LM317 w obudowie TO220 może zapewnić maksymalny prąd na poziomie 1,5A, należy mieć to na uwadze. Do sterowania samym silnikiem wykorzystuję kostkę L293D – są to 2 mostki H zintegrowane w jednej obudowie, o wydajności prądowej maks. 600mA na kanał. Jak pisałem silnik pobiera nie więcej niż 250mA, więc taka konfiguracja jest dla mnie absolutnie wystarczająca. W podstawowej wersji kostka wykorzystuje 4 porty mikrokontrolera oraz piny +5V i GND. Jednak po dodaniu mniejszej płytki z 2 tranzystorami, można zredukować ilość potrzebnych portów o 2. Szczegóły można znaleźć w tutorialach arduino i na stronie http://www.tigoe.com/pcomp/code/circuits/motors/stepper-motors/ Wzory płytek, wykaz elementów,  schematy: mostek hzasilacz

Platforma obrotowa

Silnik zamknięty w obudowie z lego praktycznie nie ma możliwości ruchu. Znów uniknąłem konieczności wiercenia czy klejenia (żaden klocek nie ucierpiał). Za pomocą gumki recepturki, silnik połączony jest mechaniczne z przekładnią. Przełożenie na kołach pasowych wynosi 1:1. Sama przekładnia złożona jest z zębatek o niewielkim luzie o przełożeniu 20:12. Dzięki temu uzyskałem całkowite przełożenie z silnika na paltformę 10:1 (6 * 1 * 20/12 : 1). A to oznacza że na jeden pełny obrót platformy potrzeba 10 obrotów silnika krokowego. Sama platforma natomiast jest zrobiona z pękniętego koła lego (z osadzeniem krzyżowym) i płyty CD, sklejonych (osiowo!) klejem na ciepło. Do samej płyty przyklejony, za pomocą taśmy dwustronnej, został zielony papier. Wygląda to równo i elegancko. Reszta na zdjęciach.

Kamera

Miałem tylko dość słabą kamerę Creative Webcam Vista. Więc wyboru nie miałem żadnego, musiałem ją zastosować. Jest przymocowana do platformy za pomocą lego oczywiście.

Laser liniowy

Najpodlejszej jakości wskaźnik laserowy z bazaru oraz szklany walec w charakterze soczewki walcowej tworzą moduł lasera liniowego. Takie szklane patyczki stosowane są w pracowniach chemicznych/laboratoriach i za cholerę nie pamiętam jak się toto nazywa. Na końcach założone koszulki termokurczliwe dla zabezpieczenia przed ostrymi krawędziami szkła.

Arduino

Leonardo. Kupiony parę miesięcy temu w nettigo.pl. W sumie arduino nie ma za dużo do roboty, kod też jest wyjątkowo prosty. Za pomocą połączenia Serial procesor odbiera komendy od programu napisanego w processingu i obraca talerz o zadany kąt. No i świeci diodą oczywiście. [code lang="arduino"]#include <Stepper.h> Stepper oki(48,8,9); const int ledPin = 13; // the pin that the LED is attached to int incomingByte; // a variable to read incoming serial data into void setup() { // initialize serial communication: Serial.begin(9600); // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); oki.setSpeed(60); } void loop() { // see if there's incoming serial data: if (Serial.available() > 0) { // read the oldest byte in the serial buffer: incomingByte = Serial.read(); // if it's a capital H (ASCII 72), turn on the LED: if (incomingByte == 'S') { digitalWrite(ledPin, HIGH); oki.step(4); } // if it's an L (ASCII 76) turn off the LED: if (incomingByte == 'K') { digitalWrite(ledPin, LOW); } } } [/code]

Processing

Processing jest środowiskiem programistycznym, na bazie którego powstało arduino. Bardzo podobna składnia, prosty interfejs i dobra współpraca z ardu to ważne cechy. Sporo bibliotek i dobra ich dokumentacja (w jęz. angielskim) ułatwia zabawę np. z kamerą. Pierwsze co należy zrobić to doinstalować bibliotekę GSVideo: http://gsvideo.sourceforge.net/ instrukcja jest na stronie. Zasady działania kodu nie będę opisywał ponownie, powiem tylko że ze względów różnych, w tej wersji, operacja skanowania jest podzielona na dwie pętle: robienie zdjęć oraz obliczenia. Wynik zapisywany jest w pliku *.asc w katalogu projektu procesinga. Aha. Interfejs na razie jest bardzo ubogi a właściwie go nie ma. Niemniej,  skany się zapisują. [code lang="arduino"]import codeanticode.gsvideo.*; import processing.serial.*; //objects PFont f; GSCapture cam; Serial myPort; PrintWriter output; //colors color black=color(0); color white=color(255); //variables int itr; //iteration float pixBright; float maxBright=0; int maxBrightPos=0; int prevMaxBrightPos; int cntr=1; int row; int col; //scanner parameters float odl = 210; //distance between webcam and turning axle, [milimeter], not used yet float etap = 120; //number of phases profiling per revolution float katLaser = 28*PI/180; //angle between laser and camera [radian] float katOperacji=2*PI/etap; //angle between 2 profiles [radian] //coordinates float x, y, z; //cartesian cords., [milimeter] float ro; //first of polar coordinate, [milimeter] float fi; //second of polar coordinate, [radian] float b; //distance between brightest pixel and middle of photo [pixel] float pxmmpoz = 5; //pixels per milimeter horizontally 1px=0.2mm float pxmmpion = 5; //pixels per milimeter vertically 1px=0.2mm //================= CONFIG =================== void setup() { size(800, 600); strokeWeight(1); smooth(); background(0); //fonts f=createFont("Arial",16,true); //camera conf. String[] avcams=GSCapture.list(); if (avcams.length==0){ println("There are no cameras available for capture."); textFont(f,12); fill(255,0,0); text("Camera not ready",680,32); } else{ println("Available cameras:"); for (int i = 0; i < avcams.length; i++) { println(avcams[i]); } textFont(f,12); fill(0,255,0); text("Camera ready",680,32); cam=new GSCapture(this, 640, 480,avcams[0]); cam.start(); } //Serial (COM) conf. println(Serial.list()); myPort=new Serial(this, Serial.list()[0], 9600); //output file output=createWriter("skan.asc"); //plik wynikowy *.asc } //============== MAIN PROGRAM ================= void draw() { PImage zdjecie=createImage(cam.width,cam.height,RGB); cam.read(); delay(2000); for (itr=0;itr<etap;itr++) { cam.read(); zdjecie.loadPixels(); cam.loadPixels(); for (int n=0;n<zdjecie.width*zdjecie.height;n++){ zdjecie.pixels[n]=cam.pixels[n]; } zdjecie.updatePixels(); set(20,20,cam); String nazwaPliku="zdjecie-"+nf(itr+1, 3)+".png"; zdjecie.save(nazwaPliku); obroc(); delay(500); } obroc(); licz(); noLoop(); } void licz(){ for (itr=0; itr<etap; itr++){ String nazwaPliku="zdjecie-"+nf(itr+1, 3)+".png"; PImage skan=loadImage(nazwaPliku); String nazwaPliku2="odzw-"+nf(itr+1, 3)+".png"; PImage odwz=createImage(skan.width, skan.height, RGB); skan.loadPixels(); odwz.loadPixels(); int currentPos; fi=itr*katOperacji; println(fi); for(row=0; row<skan.height; row++){ //starting row analysis maxBrightPos=0; maxBright=0; for(col=0; col<skan.width; col++){ currentPos = row * skan.width + col; pixBright=brightness(skan.pixels[currentPos]); if(pixBright>maxBright){ maxBright=pixBright; maxBrightPos=currentPos; } odwz.pixels[currentPos]=black; //setting all pixels black } odwz.pixels[maxBrightPos]=white; //setting brightest pixel white b=((maxBrightPos+1-row*skan.width)-skan.width/2)/pxmmpoz; ro=b/sin(katLaser); //output.println(b + ", " + prevMaxBrightPos + ", " + maxBrightPos); //I used this for debugging x=ro * cos(fi); //changing polar coords to kartesian y=ro * sin(fi); z=row/pxmmpion; if( (ro>=-30) && (ro<=60) ){ //printing coordinates output.println(x + "," + y + "," + z); } }//end of row analysis odwz.updatePixels(); odwz.save(nazwaPliku2); } output.flush(); output.close(); } void obroc() { //sending command to turn myPort.write('S'); delay(50); myPort.write('K'); } [/code]

Skanowanie

Film: http://www.youtube.com/watch?v=9sesSbyE2ZM Na razie brak jest podglądu na żywo skanowania, więc do ustawiania kamery używam przykładu GettingStartedWithCaptureWin z katalogu przykładów biblioteki GSVideo. Następnie zostaje tylko włączyć zasilanie, włączyć laser i nacisnąć Run w IDE processing. Film jest w słabej jakości. Nic na to nie poradzę, nie mam żadnej innej kamery ponad telefon.

Chmura punktów

Chmura jest wynikiem działania skanera. Są to wczytane punkty zorientowane w przestrzeni. Do działania z chmurami nadaje się program Meshlab, ale u mnie zachowuje się dość niestabilnie. Trochę mi to przeszkadza w przerobieniu chmury na bryłę, ale jestem chyba coraz bliżej oczekiwanego efektu. Gotową bryłę można zapisać jako plik stereolitografii *.stl i wydrukować na drukarce 3D.  Otrzymana chmura przedstawia obiekt odbity względem początku układu współrzędnych.  Otrzymaną chmurę można zobaczyć poniżej, ale nie jest to dokładnie ta sama co na screenach. Jest to późniejszy skan, wykonany po drobnej przebudowie skanera i w dzień, więc ma trochę szumów (niepotrzebnych wierzchołków). skan

Do zrobienia

Zdecydowanie wkrótce należy:
  • Ulepszenia kodu, m.in. wskazywanie miejsca gdzie Z=0, dzięki temu bryła nie będzie odbita względem punktu P = (o, 0, 0)
  • Dopisanie jakiegoś prostego interfejsu
  • Wbudowana kalibracja kamery i lasera
  • i jeszcze parę...
Pomysły co można ulepszyć:
  • odwrócić kamerę o 90 stopni, w efekcie zwiększy się ilość warstw
  • lepszy laser liniowy, bez poświaty
  • zastosowanie kamery HD, a może jakiejś cyfrowej lustrzanki?
Angielska wersja artykułu umieszczona została na instructables.com, polecam zerknąć: http://www.instructables.com/id/Lets-cook-3D-scanner-based-on-Arduino-and-Proces/ I to chyba było by na tyle. Czytaj dalej...

Przedłużacz warsztatowy ze zwijaczem ze starego odkurzacza

$
0
0
przedluzacz-warsztatowy-ikona
Nie wiem jak Wy, ale ja w swoim warsztacie mam mnóstwo gniazdek sieciowych - w całym pomieszczeniu mam dokładnie... 28 gniazdek - cztery 5-gniazdkowe listwy i trzy luźne gniazdka w ścianach. Tak więc gdzie bym nie stanął, zawsze mam się gdzie wpiąć do sieci ;) Niemniej czasami zachodzi potrzeba skorzystania z przedłużacza, żeby móc odejść ze sprzętem gdzieś nieco dalej. Do tej pory korzystałem z najnormalniejszego przedłużacza zwijanego korbką. Wrodzone lenistwo skusiło mnie jednak, żeby spróbować w jakiś sposób wyeliminować konieczność każdorazowego wyciągania, rozwijania, zwijania i chowania przedłużacza. Najlepszym wyjściem wydawało mi się zastosowanie sprężynowego zwijacza do kabli, jednak te do najtańszych nie należą. Wpadłem więc na pomysł, żeby wykorzystać zwijacz ze starego odkurzacza, który od jakiegoś czasu leży w piwnicy z upalonym silnikiem :) Czytaj dalej...
Viewing all 1332 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>