7 marca 2025 (updated: 7 marca 2025)

DIY Inteligentna Lampa

Chapters

      Krok po kroku przewodnik, jak przejść od nieosiągalnego pomysłu do działającego produktu.

      Czy kiedykolwiek zadawałeś sobie następujące pytania?

      • Czy gorący klej naprawi WSZYSTKO?
      • Czy trudno jest stworzyć inteligentny sprzęt?
      • Czy można wlać beton do tekturowego formy?

      Jeśli nie, może czas najwyższy. Ale jeśli tak, to witaj w klubie! Niedawno mieliśmy wewnętrzny hackathon w EL Passion, i wpadłem na wyzwanie. Zrobienie lampy!

      Inteligentna lampa. Inteligentna lampa z betonu! Inteligentna lampa drewniana/betonowa z paskiem LED RGB… I BLUETOOTH!

      W ciągu dwóch krótkich dni hackathonu (z niewielkimi kosztami) zrealizowaliśmy to wszystko!

      diy lamp 31

      Wszystko zaczęło się od elektroniki

      Około dwa miesiące temu zacząłem bawić się elektroniką. Chciałem poszerzyć swoje horyzonty, nauczyć się, które kable odciąć w przypadku buntu inteligentnych maszyn i wyjść poza moją wiedzę z zakresu Frontend Engineering. Myślę, że większość z was może się z tym utożsamić.

      Zacząłem od podstaw, zdobyłem kilka komponentów, obejrzałem tutoriale, a potem nie mogłem zdecydować, co zrobić dalej.

      Po około dwóch miesiącach przypomniałem sobie, że zbliża się hackathon!
      Ostatnio widziałem prezentację Stephanie Nemeth na konferencji front-end, gdzie pokazała fantastyczne rzeczy, które można zrobić z Arduino i RGB lights. Postanowiłem, że chcę stworzyć coś równie fajnego.

      Jednak chciałem zrobić coś, co będzie użyteczne, funkcjonalne i wymagało umiejętności DIY, kodowania i elektroniki.

      Wybrałem najbardziej oczywistą rzecz, jaką można zrobić z lampkami — lampę. I znalazłem idealny projekt DIY, który chciałem naśladować.

      diy smart lampDIY lampa z tutorialu DIY Creators na YouTube

      Miałem już pomysł. Teraz potrzebowałem zespołu.

      Pitching — Zbieranie zespołu

      Trzy dni przed hackathonem zazwyczaj mamy pitching, podczas którego prezentujemy nasze pomysły reszcie firmy i zbieramy ludzi, którzy będą pracować nad naszym projektem. Nie jestem świetnym sprzedawcą, więc moje wystąpienie brzmiało trochę jak:

      Eee, więc tak, chcę zrobić Concrete Smart Lamp. Dziękuję bardzo.

      Pomimo braku informacji, pięć osób było zainteresowanych dołączeniem do mojego zespołu! Mieliśmy imponujący zestaw umiejętności:

      • Maciej — Byłem jak CEO grupy. Zaplanowałem budowę, upewniłem się, że mamy wszystko, co potrzebne i pomogłem połączyć wszystkie elementy (dosłownie i w przenośni).
      • Wojtek — Przyjął rolę szefa elektroniki. Zaplanował obwód, zbudował prototyp i współpracował z Jakubem (iOS), aby upewnić się, że Bluetooth działa. Upewnił się również, że nie spalimy budynku.
      • Ula — Główna szefowa stolarki i gorącego kleju. Upewniła się, że robimy wszystko dobrze, dotrzymaliśmy terminu i pracowała nad drewnianą obudową lampy.
      • Aga — Złota rączka zespołu. Pojawiła się, gdy najbardziej jej potrzebowaliśmy, i upewniła się, że nasza „ręczna” część budowy będzie działać.
      • Jakub — Szef rozwoju mobilnego. Upewnił się, że mamy niesamowitą, natywną, wieloplatformową, ale właściwie tylko na iOS, bo kto używa Androida, lol aplikację do sterowania naszą lampą.

      Zakupy inteligentnej lampy (wersja nerdowska)

      Przyjrzyjmy się liście zakupów. Wymieniłem tylko te rzeczy, które użyliśmy i na stałe wbudowaliśmy w lampę. Całe dodatkowe wyposażenie, Arduino (prototypowanie, wgrywanie kodu do AVR) oraz komponenty, które uszkodziliśmy, nie są wliczone.

      Całkowity koszt: 159 PLN (około 43 USD)

      Można zdobyć wszystkie przedmioty za niższą cenę, ale w naszym przypadku było to dość pilne.

      tutorial do lampy smartDeski, beton, papier ścierny i inne przydatne rzeczy.

      DIY Inteligentna Lampa: Krok po Kroku Tutorial

      Część 1: Betonowa Podstawa

      diy lamp step by stepFaza budowy projektu była ekscytującym wyzwaniem. Spędziliśmy pierwsze 2 godziny dyskutując, jak zrobić formę do betonu, która spełni następujące wymagania:

      • Zostawić miejsce na elektronikę na dole
      • Zostawić dwa otwory na pokrętła hue i saturation
      • Zostawić miejsce na drewniany ramie

      Wymyśliliśmy coś takiego:
      diy lampWygląda prosto, ale zrobienie tego nie było takie łatwe. Do wykonania formy użyliśmy kartonowego pudełka, dużo szarej taśmy, pudełka po “magic mouse 2”, dwóch plastikowych słomek i trochę gorącego kleju.

      how to do smart lamp tutorialPóźniej wymieszaliśmy i dodaliśmy beton.

      Nie chcieliśmy, aby forma się odkształciła, więc użyliśmy więcej taśmy i czterech litrów mleka. Włożyliśmy również drewnianą podstawę do betonu, aby mieć miejsce na nią później (prawie o niej zapomnieliśmy). Wszystko to jest równoważne z "szybkim rozwiązaniem" w systemach produkcyjnych, ale jak to mówią:

      Jeśli wygląda głupio, ale działa, to nie jest głupie.

       

      Smart People

      Ten cytat stał się naszym mottem na resztę budowy.

      Nie mam zdjęcia podstawy zaraz po wyjęciu jej z formy, ale oto ona po trochę szlifowaniu i już z zamontowanym drewnianym ramieniem. Dodaliśmy również silikonowe nóżki, aby beton nie rysował blatu.

      smart lamp diy

      Część 2: Drewniane ramię

      doing smart lampRamię składa się z dwóch oddzielnych części: górnej części lampy i podstawy z kablem w środku. Połączyliśmy je dużą śrubą, dla której wywierciliśmy otwory w obu częściach górnej i dolnej.

      diy lamp 22Na szczęście nie spaliliśmy biura.

      diy smart lamp 21Okazuje się, że dokładne mierzenie rzeczy jest trudne.

      Zaczęliśmy od wykonania górnej części ramienia

      diy smart lamp 20diy lamp tutorialGórna część była dość wyzwaniem, ponieważ wymagała delikatnej pracy z lutownicą, ale zacznijmy od podstaw. Wykonaliśmy ją z trzech kawałków drewna, dwóch cienkich (boki) i jednego kwadratowego. Najpierw skleiliśmy wszystko razem, wywierciliśmy otwór na dużą śrubę, która łączy górną i dolną część. Po przeszlifowaniu, aby zrekompensować fakt, że deski były nieco krzywe, Ula pomalowała ramię, a gdy farba wyschła, przystąpiłem do montażu taśm LED na nim.

      Pierwszą rzeczą, którą zrobiłem, było zmierzenie, jak pociąć taśmy LED. Nie chcieliśmy włożyć jednego długiego kawałka, ponieważ nie dawałby zbyt dużo światła, więc po zmierzeniu, ile zmieści się, pociąłem trzy taśmy, każda o długości 35 cm. Następnie przylutowałem główny kabel do pierwszej części taśmy LED i użyłem rurki termokurczliwej, aby zabezpieczyć połączenie.

      diy smart lamp 18Rurka termokurczliwa i połączenia lutownicze łączące dwie taśmy LED.

      Po przyklejeniu pierwszej taśmy do drewna, zdałem sobie sprawę, że zapomniałem, jakie kable podłączyłem do wyjść Red, Green, Blue i 12V+. To był mały problem, ale na szczęście mieliśmy multimetr, który pozwolił nam sprawdzić połączenia.

      Następną rzeczą, którą musiałem zrobić, było przylutowanie dwóch taśm LED szeregowo do pierwszej części. Zajęło mi to trochę czasu, ale udało mi się to zrobić, mimo że miałem lutownicę za 8$, której końcówka malała z każdym użyciem. Przetestowaliśmy to, podłączając kabel do płytki stykowej i używając jednego z enkoderów obrotowych do zmiany koloru.

      Dolna część ramienia była również dość wyzwaniem

      diy smart lamp 17diy smart lamp 16

      Dolna część ramienia była skomplikowana, ponieważ musieliśmy umieścić kabel wewnątrz. Myśleliśmy o przecięciu go na pół, wydrążeniu miejsca, a następnie ponownym złożeniu, ale to mogłoby prowadzić do błędów i zajmować dużo czasu. Ostatecznie zdecydowaliśmy się przykleić trzy dodatkowe kawałki drewna, aby stworzyć miejsce na kabel, jak pokazano na grafice. To również powód, dla którego część wewnątrz podstawy jest nieco węższa.

      Brakowało nam kilku części, kilku kawałków drewna oraz śruby, która trzymałaby ramię razem. Zrobiliśmy krótką przerwę od pracy i poszliśmy do sklepu, aby kupić te wszystkie rzeczy.

      Naturalny kolor sosny nie był zbyt ładny, więc Ula pomalowała zarówno górną, jak i dolną część lampy, aby były nieco ciemniejsze. Pozostawiliśmy to do wyschnięcia na noc, a następnego dnia połączyliśmy to i wyglądało świetnie!

      diy smart lamp 15Proces malowania.

      diy lamp 14Układ kabla wewnątrz lampy.

      Część 3: Oprogramowanie

      iOS App

      Nie byłem zbyt zaangażowany w proces tworzenia aplikacji iOS, więc nie mogę podać bardziej szczegółowych informacji na temat kodu. Jakub przejął prowadzenie i dostarczył działającą aplikację przed końcem pierwszego dnia. Drugiego dnia rozbudował ją o więcej niesamowitych funkcji, takich jak wsparcie podobne do „Ambilight”, gdzie, gdy odtwarzasz wideo, lampa synchronizuje kolory z nim (demonstracja na końcu artykułu).

      Były pewne problemy z łącznością Bluetooth, a dokładniej, jeden moduł Bluetooth łączył się z iOS, ale nie z Androidem, a inny działał odwrotnie. Na chwilę obecną lampa działa tylko z iOS, ale na MVP to wystarczy. Moduł Bluetooth można łatwo wymienić w razie potrzeby, ponieważ nie jest przylutowany na stałe.

      Kod Aplikacji iOS

      Mówiąc z mojego doświadczenia, mogę powiedzieć, że aplikacja wygląda imponująco, a szybkość, z jaką Jakub ją dostarczył, jest również niesamowita!

      diy-lamp-13

      Kod Arduino/ATmega

      Cały kod jest open source na GitHub. Możesz go przejrzeć. Nie zamierzam zagłębiać się w szczegóły techniczne dotyczące jego działania. Wojtek, który napisał większość kodu, byłby lepiej przygotowany do tego, więc stworzyłem ogólny przegląd tego, jak wszystko działa. Uproszczony algorytm wygląda następująco:

      Przejście z Arduino na ATmega

      Wojtek napisał pierwszą wersję kodu dla Arduino, a później zaktualizowałem go, aby działał na zwykłym chipie ATmega. Różnice są minimalne, ponieważ wprowadziłem tylko dwie główne zmiany:

      • Usunąłem jedno z połączeń szeregowych — wcześniej mieliśmy jedno połączenie szeregowe, które używaliśmy do debugowania (drukowanie na konsoli w komputerze) i drugie do Bluetooth. Kiedy przeszliśmy na ATmega, nie potrzebowaliśmy już tego do debugowania, co zwolniło dwa piny i uprościło połączenia.
      • Zmieniałem układ pinów — aby lepiej dopasować wszystko do płytki stykowej, zmodyfikowałem fizyczny układ, co wymagało zmiany pinów referencyjnych w kodzie.

      Możesz zobaczyć pull request, który zawiera różnice wszystkich zmian, jeśli jesteś ciekawy.

      Część 4: Elektronika

      Naszym planem było dość ambitne przedsięwzięcie, jak na tak krótki czas, ale na szczęście Wojtek jest dość bystry i wcześniej bawił się elektroniką, więc był „liderem” tej części.

      diy-lamp-12

      Zaczęliśmy od małych kroków, testując różne rozwiązania metodą prób i błędów. Wojtek pracował zarówno nad kodem, jak i nad obwodem jednocześnie i testował, jak wszystko działa. Część elektroniczna lampy składała się z:

      • Microcontroller — mózg
      • Dwa pokrętła z przyciskami do regulacji jasności, odcienia i nasycenia
      • Moduł Bluetooth do bezprzewodowego sterowania
      • Taśma LED do oświetlenia, oczywiście…

      Początkowo użyliśmy Arduino zamiast samodzielnego mikrokontrolera i wszystko umieściliśmy na płytce stykowej, aby uprościć proces rozwoju. Pod koniec drugiego dnia mieliśmy wszystko podłączone na prototypowej płytce. Bluetooth, enkodery obrotowe i Arduino. Tak to wyglądało podczas sesji demonstracyjnej:

      diy-lamp-11

      Część 5: Zróbmy to mniejsze!

      Po hackathonie chciałem poświęcić trochę czasu na zmniejszenie elektroniki, aby zmieściła się w lampie, aby budowa była kompletna. Aby zmniejszyć elektronikę, musiałem:

      1. Wymienić Arduino na ATmega328
      2. Zaplanować połączenia na płytce stykowej
      3. Przylutować gniazdo dla AVR, aby móc je wymienić w razie potrzeby
      4. Przylutować elementy, które nie mogą być usunięte (transistory, gniazdo DC itp.)
      5. Połączyć wszystko razem

      Zacząłem od wymiany Arduino. Aby to zrobić, musiałem zainstalować bootloader na ATmega AVR (to ten sam, który używa Arduino). Obejrzałem kilka samouczków (linki poniżej wpisu na blogu) na temat instalacji bootloadera i jak używać Arduino jako programatora ISP (pozwala nam to na przesyłanie oprogramowania do mikrokontrolera bez dodatkowego sprzętu). Po tym, zaktualizowałem kod, aby używał nieco innych pinów i Voila!

      diy-lamp-10Następnie musiałem wszystko przylutować na małej płytce stykowej.

      To był mój pierwszy raz z płytkami stykowymi i nie mogłem znaleźć prostego oprogramowania, które pomogłoby w projektowaniu fizycznym obwodu, więc poszedłem w starą szkołę i zaplanowałem to ręcznie. Wydrukowałem arkusz papieru w kropki, gdzie kropki reprezentowały otwory płytki stykowej. Następnie narysowałem wszystkie połączenia i sposób, w jaki powinny pasować na podstawie obecnego obwodu na płytce prototypowej.

      diy-lamp-9Aby było to bardziej zrozumiałe i widoczne, stworzyłem grafikę, która przedstawia obwód na płytce stykowej.

      diy-lamp-8Reprezentacja stworzonego obwodu. W rzeczywistej budowie musiałem go nieco dostosować, aby zmieścić wszystkie komponenty, ale wygląda w 90% jak ten powyżej.

      Po około dziesięciu godzinach lutowania (wciąż jestem nowicjuszem) i dwóch poparzonych palcach (nie dotykaj komponentów, jeśli coś dziwnie pachnie) udało mi się to uruchomić! Poszło lepiej niż się spodziewałem.

      diy-lamp-7Zdjęcie w trakcie pracy, aby zbudować napięcie przed wielkim ujawnieniem!

      diy-lamp-6Wszystkie elementy złożone. Białe kable to pokrętła, małe przewody z czarną izolacją to połączenia LED

      diy-lamp-5Widok od spodu. Użyłem cienkiego drutu miedzianego do połączenia styków.

      diy-lamp-4Jeśli przyjrzysz się bliżej, zobaczysz cały klej, którego użyliśmy.

      diy-lamp-3

      Gotowy Produkt!

      Sprawdź pełną demonstrację, w której przechodzę przez wszystkie funkcje, jakie ma ta lampa. Pomimo kilku problemów, np. krzywych pokręteł i czasami nieprawidłowo przedstawionych kolorów, działa!

       

      Dla mnie, a mam nadzieję, że dla reszty zespołu, to był jeden z najbardziej satysfakcjonujących projektów hackathonowych. Zarówno proces, jak i wynik były niesamowite, mieliśmy dużo zabawy i nauczyliśmy się wiele o pracy z drewnem, betonem i elektroniką.

      Jeśli ktokolwiek chce zbudować podobną lampę lub potrzebuje więcej szczegółów, śmiało komentuj i pytaj mnie o cokolwiek!

      diy-lamp-1

      Źródła

      Inspiracja

      Maciej Matuszewski

      Frontend Developer

      Może to początek pięknej przyjaźni?

      Jesteśmy dostępni dla nowych projektów.

      Contact us