Logo jest pochodną logo społeczności Arduino na licencji Creative Commons CC-SA-BY-NC 3.0
Aktualizacja: Ogłoszono zwycięzców
Zwycięzcy konkursu zostali ogłoszeni. Szczegółowe informacje można znaleźć w poście Meta .
Z okazji 10-lecia Arduino z dumą ogłaszamy pierwsze wydarzenie w historii Arduino Stack Exchange.
Wyjmij tablice i sprzęt lutowniczy, wykop układy scalone i oporniki. Pierwszy konkurs Arduino Stack Exchange jest tuż za rogiem. Będziemy szukać ciekawych projektów budowanych przy użyciu Arduinos. Konkurs ma na celu dzielenie się, omawianie i przekazywanie informacji zwrotnych na temat projektów, nad którymi pracujesz Ty i inni członkowie. Zobacz ogłoszenie
Detale:
- Nagrodą jest oficjalna koszulka Stack Exchange
- Ogranicz dwa wpisy na osobę. Jeśli podano więcej niż dwa, uwzględnione zostaną tylko dwa pierwsze.
- Klony są dozwolone.
- Projekty do rozpatrzenia zostaną przyjęte do 29 marca 2014 r. O godzinie 4:00 UTC. Pytanie pozostanie otwarte na wypadek, gdyby ktoś chciał pochwalić się swoim projektem zrealizowanym podczas Dnia Arduino 2014.
Odwiedź post Meta, aby omówić to wydarzenie i uzyskać dodatkowe informacje.
Format odpowiedzi
Możesz opublikować maksymalnie dwa projekty (jako dwie osobne odpowiedzi) jako wpisy do konkursu. Wszystkie dodatkowe wpisy zostaną usunięte. Rozważ następujący szablon wpisów:
Tytuł Projektu
Bardzo krótki opis
Opis
Jaki jest twój projekt Co to robi? Jaki problem rozwiązuje?
Projekt
Co należy uwzględnić w tej sekcji:
- Schemat i inna dokumentacja projektowa. Fritzing to dobre narzędzie do rysowania schematów makiet, takie jak pokazane na powyższym logo projektu.
- Komponenty użyte do zbudowania projektu
- Zdjęcia lub wideo
Wniosek
Końcowe przemyślenia. Czego nauczyłeś się z tego projektu? Co zrobiłbyś inaczej, gdybyś musiał zacząć od nowa?
Jeśli chcesz użyć tego szablonu, możesz skopiować / wkleić następujący tekst.
# Project Title
**Very Brief Description**
# Description
What is your project? What does it do? What problem does it solve?
# Design
Things to include in this section:
- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video
# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?
Nagrody
Istnieją dwie nagrody! Zwycięzcą zostanie zgłoszenie, które uzyska maksymalną liczbę głosów pozytywnych (opinie negatywne się nie liczą) i otrzyma koszulkę Stack Exchange *! Będzie też coś dla drugiego miejsca. O drugim miejscu decydują organizatorzy imprezy.
* Mogą obowiązywać pewne ograniczenia. Wysyłka międzynarodowa może potrwać kilka tygodni.
Gdzie mogę przesłać moje projekty?
Opublikuj swoje projekty jako odpowiedzi na ten post.
Odpowiedzi:
Stateful questbox
GPS zasilany pola sprawia, że można odwiedzić kilka miejsc przed otwarciem
Opis
Jest podobny do questboksa , ale przechowuje niewielką ilość informacji w EEPROM , więc musisz otworzyć dwa lub trzy różne miejsca, zanim się otworzy.
Projekt
Potrzebny sprzęt:
Całkowity koszt sprzętu: 137 $ + wysyłka
Dodatkowe materiały:
Instrukcje montażu znajdziesz na stronie zegara (możesz kupić od nich większość materiałów)
Prześlę kod stanowy i opublikuję link tutaj, niestety nie dostanę całego sprzętu na czas, więc to tylko pomysł :)
Kod napisany do tej pory :
Inspiracja:
Wniosek
Nauczyłem się, jak integrować wiele komponentów i bibliotek razem, muszę trochę podróżować, aby to przetestować :)
Budżet można nieco zmniejszyć, zmieniając nieco koncepcję:
źródło
Oszczędzanie energii dla nieobecnego użytkownika komputera
To urządzenie włącza / wyłącza oświetlenie biurka, gdy jest ciemno (ish) i jest zsynchronizowane z wygaszaczem ekranu komputera.
Opis
Projekt to niewiele więcej niż połączenie czujnika światłoczułego, przekaźnika i inteligentnego kodu monitorującego wygaszacz ekranu na moim komputerze. Kiedy jest zmierzch i gdy wygaszacz ekranu nie jest aktywny, włącza światła nad moim biurkiem. Kiedy następnie opuszczę biurko, włącza się wygaszacz ekranu, który z kolei powoduje wyłączenie oświetlenia biurka. Gdy w ciągu dnia jest wystarczająca ilość światła, światła wcale się nie włączają. Rozwiązany problem polega na zmniejszeniu marnotrawstwa energii ze względu na włączenie oświetlenia w moim biurze, kiedy wychodzę z pokoju.
Projekt
Ponieważ moc mikrokontrolerów / Arduino wymaga tylko trochę dodatkowego sprzętu, aby stworzyć użyteczny projekt. To samo dotyczy tego projektu, w którym sprzęt to niewiele więcej niż:
symulacja tego obwodu - Schemat utworzony za pomocą CircuitLab
Wniosek
Nauczyłem się, jak interfejs PC przez łącze szeregowe USB z Arduino i jak odczytać aktualny stan wygaszacza ekranu na moim komputerze. Gdybym zaczął od nowa, użyłbym znacznie mniejszego kontrolera, ponieważ tak naprawdę potrzebuję tylko jednego wyjścia cyfrowego i jednego wejścia analogowego. Prawdopodobnie oprze projekt na V-USB . Arduino jest jednak doskonałe do szybkiego i łatwego potwierdzenia koncepcji (PoC). (PoC jest na moim biurku już od co najmniej dwóch lat).
źródło
Myślę, że ten rodzaj ledwo mieści się w przepisach, ale jest na tyle interesujący, że sądzę, że i tak go opublikuję.
Precyzyjny, synchronizowany GPS generator znaczników czasu do celów akwizycji danych.
Jest to dość interesujący projekt, którego celem jest zapewnienie łatwego sposobu synchronizacji wielu niezależnych systemów akwizycji danych.
Zasadniczo pracuję w laboratorium badawczym i często mamy instrumenty, które mają wiele niezależnych systemów akwizycji danych, które można fizycznie oddzielić nawet o 50 stóp. Musimy być w stanie skorelować czas, w którym pobierano próbki z każdego systemu, co może być trudne, jeśli chcesz rozwiązać czasy próbkowania z dużą dokładnością. Używając czegoś w rodzaju systemu akwizycji danych USB, tylko opóźnienie USB może wprowadzić kilkaset milisekund nieznanego opóźnienia, które może różnić się w zależności od akwizycji.
Poprzednim rozwiązaniem był 24-bitowy licznik równoległy, który był po prostu przewożony wszędzie, wymagający ogromnej wiązki przewodów i stanowił rodzaj bólu w tyłku.
Ten system wykorzystuje wyspecjalizowany moduł pomiaru czasu GPS, który może syntetyzować dowolne zegary częstotliwości, które są fazami i częstotliwościami zablokowanymi na zegarach atomowych w satelitach GPS.
MCU jest odpowiedzialne za wiązanie wiadomości danych GPS (musiałem znacznie rozszerzyć i zoptymalizować istniejący parser protokołów dla danych GPS). GPS jest skonfigurowany do używania zastrzeżonego protokołu binarnego i wszystko jest analizowane przez analizator składni, który napisałem.
Projekt przeszedł szereg zmian (na zdjęciu poniżej).
Projekt
Rewizje!
Rev 1: Nigdy nie działałem, ponieważ początkowo miałem nadzieję, że użyję oprogramowania dPLL ze znacznie tańszego GPS, aby zsyntetyzować zegar o wyższej częstotliwości tylko z wyjścia 1 PPS. Prawdopodobnie jest możliwe, aby działało, ale inwestycja czasu po prostu sprawiła, że nie warto. (a ja jestem zbyt kiepski koderem)
Zastosowano MCU śmigła paralaksy. Ważnym problemem był również brak przyzwoitych języków kompilowanych.
Rev 2: Przeniesiono do ATmega2560. Pracował, miał wiele funky projektowania odziedziczonych po pierwszej wersji. Przede wszystkim dalsze stosowanie rejestrów przesuwnych dla wyjścia 32-bitowego, pomimo wystarczającej liczby IO w ATmega2560.
Pierwsza płyta, na której działał Optiboot, a właściwie została całkowicie zaprogramowana przy użyciu standardowego zestawu narzędzi Arduino, zanim zirytowałem się nim i zacząłem modyfikować zestaw narzędzi, aby lepiej pasował do moich celów.
Rev 3: Działa również. Okablowane okablowanie jest spowodowane tym, że ta płyta zawiera wbudowany koncentrator USB w celu zmniejszenia liczby wymaganych portów USB (interfejs FTDI wymaga 1 USB, a GPS ma również interfejs USB). Niestety GPS nie wyliczył poprawnie, chociaż urządzenie FTDI działało dobrze, a ja korzystałem z tego hubu gdzie indziej bez problemu. Dziwne.
Nie mam odpowiedniego debugera USB, więc po prostu całkowicie upuściłem koncentrator USB, zamiast próbować rozwiązać problem. Usb GPS nie jest tak naprawdę często używany poza konfiguracją.
Rev 4: Półfinałowa wersja ATmega2560. Dodano wyświetlacz LCD z informacją o stanie GPS, skrzypnął diodami LED i tak dalej. Również lepsze ślady dla możliwych superkondensatorów do utrzymywania statusu GPS, gdy nie są zasilane.
To jest ostatnia wersja Optiboot.
MStime
toMSTOW
lub tydzień w milisekundach, czyli nazwa wartości danych GPS, która jest wyprowadzana na wyjściu znacznika czasu. Jest to 32-bitowa zmienna, która zwiększa się raz na milisekundę i przewija się co tydzień. Jest to bardziej niejasna część standardu GPS.ITOW
to kolejna wartość związana z GPS, będąca wartością odpowiadającą sygnałowi 1PPS. Korelacja między tymi dwoma nie jest poprawnie odzwierciedlona na ekranie LCD, ponieważ nie mam czasu procesora na aktualizację wyświetlacza LCD w tempie, które chciałbym. To była właściwie jedna z głównych rzeczy, które poprawiły się w aktualizacji do urządzeń Xmega.Rev 5: Kompletna zmiana architektury. Teraz używa procesora ATxmega128A1U. Nie jest już tak naprawdę „Arduino”, ale możliwość posiadania wielu poziomów przerwań w procesorach xmega pozwoliła mi znacznie poprawić strukturę kodu.
Te dwa druty są ode mnie podczas eksperymentów, bez nich również płyta działała dobrze.
Patrząc w przyszłość:
Rev 6!
Dodaj możliwość korzystania z różnych rozmiarów LCD, większą ochronę przed wyładowaniami elektrostatycznymi w połączeniu z anteną GPS (to był problem), możliwość użycia baterii CR2032 do utrzymywania zegara GPS zamiast superkondensatorów.
Znacznie lepsze oznakowanie diod LED debugowania i statusu.
I bonus Nyan-Cat!
(Te tablice są obecnie w fazie produkcji. Kiedy je zdobędę, dodam zdjęcia prawdziwej planszy.)
Przeprowadziłem kilka długotrwałych testów między dwiema płytami ATmega2560 i przez 72 godziny błąd czasu RMS między dwiema jednostkami wynosił ~ 20 μS. Dotyczyło to również dwóch całkowicie niezależnych anten. Mój cel projektowy to <1 ms, więc jestem z tego bardzo cholernie zadowolony.
Ogólnie rzecz biorąc, myślę, że dobrze to ilustruje, w jaki sposób Arduino może być użytecznym narzędziem do wczesnego prototypowania „prawdziwych” produktów / systemów. Używam go do uruchomienia początkowej wersji testowej przy minimalnym wysiłku, a kiedy jestem pewien, że pomysł zadziała, w rzeczywistości wkładam pracę w migrację do całkowicie niestandardowej, specyficznej dla celu implementacji.
Pliki projektowe:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(w serii katalogów „GPS Timestamp”).
(UWAGA: Pliki są z Altium Designer są. Nie plików orzeł).
Kod źródłowy:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Znowu w serii katalogów „gpsTimeStamp”.
Przepraszam za kiepskie zdjęcia z telefonu komórkowego.
źródło
Sonic Ray Gun
Dwa projekty dzieci
Pracuję z kilkoma wychowanymi w domu dziećmi i świetnie się bawimy z arduino. Ich pierwszym projektem była sztuczna bomba, jak widać na filmach, z odliczającym czas LCD i klasycznym „czy przecinasz czerwony czy niebieski drut?”. problem z typem.
Projekt drugi rozpoczął się od pokazania im przykładu toneMelody i małego głośnika. Szybko okazało się, że jeśli zwiększysz częstotliwość do 15 kHz, byłoby to denerwujące dla nastolatków. Godzinę później udoskonalili projekt za pomocą kubka, rolki papieru toaletowego i przełącznika wykonanego z spinacza biurowego tworzącego kierunkowy pistolet promieniujący dźwięk.
Niestety nie ma zdjęć.
Wniosek
Nie zostawiaj dzieci bez opieki z arduino.
źródło
(fałszywy) Linux na Arduino
Niedawno nabyłem mały kompozytowy ekran LCD, który szybko zacząłem grać przy użyciu biblioteki Arduino TVout. Co potem? Linux!
Opis
Podczas zabawy z ekranem telewizora i biblioteką TVout odkryłem, że jest już przygotowany program obsługi terminala dla telewizora. Wkrótce zacząłem eksperymentować z użyciem go jako terminala telewizyjnego podłączonego do klawiatury PS / 2. Wystąpiły pewne problemy z biblioteką PS / 2, z której korzystałem, więc przeniosłem ją na bibliotekę USB w moim Mega ADK wraz z klawiaturą USB. To działało znacznie lepiej. Teraz do przechowywania.
Moja osłona karty SD nie jest kompatybilna z moją Mega, więc podłączyłem ją nieco przypadkowo do SPI na końcu płytki. Napisałem obsługę poleceń, aby wykonać kilka zadań, takich jak wyświetlanie listy plików i znajdowanie rozmiaru dysku, wolnego miejsca itp. Cały zespół nie jest w żaden sposób ukończony, ale cieszę się z poczynionych postępów.
Kod zostanie ostatecznie przeniesiony do Github, patrz komentarze.
Projekt
Wyzwania
Miałem wiele problemów z połączeniem wprowadzonych znaków z ciągiem przechowującym bieżące polecenie, ponieważ nie rzuciłem poprawnie. Kiedy już to zrozumiałem, musiałem rozwiązać problem polegający na tym, że niektóre klucze drukowały losowe śmieci na ekranie. Było to spowodowane odczytaniem pamięci przed definicjami liter, więc kilka
if
s wyjaśniło.Wniosek
Jestem bardzo zadowolony z kodu. Gdy dodam do niego jeszcze kilka narzędzi, umieszczę go na Githubie, więc uważaj na komentarze. Ogólnie był to bardzo fajny projekt. Nauczyłem się przy tym korzystać ze Stino.
źródło
ShiftLCD
Oparta na AVR, kompatybilna z Arduino płyta, którą można zamontować z tyłu ekranu LCD o wielkości od 8x1 do 20x4 znaków.
Opis
Właśnie zaprojektowałem tę płytkę i niestandardową bibliotekę, aby ułatwić jej obsługę i wyświetlanie na ekranie LCD. Chociaż w tej chwili są dość łatwe w użyciu. Zmniejsza liczbę używanych pinów wyjściowych z 6 do 3. Ma także opcję rozszerzenia I / O poprzez dodanie większej liczby rejestrów przesuwnych do tego, który napędza wyświetlacz. Zastosowany procesor to ATTiny45 lub ATTiny85, który po użyciu rejestru przesuwnego ma dostępne styki cyfrowe 1 (PWM) i 4 oraz styki analogowe 2 (takie same, jak styki cyfrowe 4).
Projekt
Wyzwania
Jednym z nieprzewidzianych wyzwań, jakie napotkałem, było to, że kiedy zaczynałem, używałem cyfrowych pinów 0-2 do uruchomienia rejestru przesuwnego, były to również szpilki programujące (MISO, MOSI, SCK). Za każdym razem, gdy przeprogramowałem urządzenie, na ekranie LCD wysyłano całą masę bełkotliwych wiadomości, w których trzeba będzie wyłączyć zasilanie, aby zresetować wyświetlacz. Rozwiązałem ten problem, przenosząc zapadkę rejestru przesuwnego na pin cyfrowy 3, który nie jest pinem programującym. Rozwiązanie tego problemu rozwiązało również dla mnie inny problem, ponieważ kiedy przesunąłem zatrzask, otworzyłem cyfrowy styk 1, który wykorzystywał PWM, pozwalając na więcej rzeczy do zrobienia na płycie.
Wniosek
To prawda, że nie może to być najfajniejszy produkt lub pomysł, nadal ma swoje zastosowania. Odpowiedz bezpośrednio na pytanie: „Czego nauczyłeś się z tego projektu” Nauczyłem się projektować od początku do końca płytki PCB. Gdybym mógł zrobić coś inaczej, byłoby użyć części do montażu powierzchniowego zamiast otworu przelotowego, to znowu jest to tylko prototypowa, jednorazowa płyta.
źródło
Robot pchający guziki.
Czterokołowy ośmiofuntowy robot do zdalnego strzelania laserowego, który naciska przyciski.
Opis
Zrobiłem ten projekt w ciągu ostatniego roku szkolnego. Byłem w klasie robotyki i postanowiliśmy wziąć udział w konkursie. Każda drużyna stworzyłaby robota, który ma duży przycisk i sposób na naciskanie innych przycisków. Pod koniec roku przeprowadzimy ostatni konkurs, w którym trzy roboty będą próbowały naciskać na siebie nawzajem.
Do końca roku mój robot działał tylko częściowo. Każda część robota w pewnym momencie działała, ale pomiędzy smażonym Arduino, smażonymi sterownikami silników, okropną organizacją kodu, a mną jako jedyną osobą w moim zespole, która pracowała nad robotem przez ponad pięć godzin, ja nie mogłem całkowicie go uruchomić.
Nie dotknąłem mojego robota od prawie roku, więc wiem, że jeśli chciałbym go ponownie uruchomić, musiałbym przeinstalować bota i przepisać kod. Może kiedyś zdecyduję się to zrobić, ale na razie zamierzam pracować nad mniej ambitnymi projektami.
Projekt
Ogólny projekt
Przepływ informacji / energii elektrycznej
składniki
Kod
Nie zorganizowałem mojego kodu zbyt dobrze, więc mam nadzieję, że jest to właściwy kod.
Więcej zdjęć
Okropny film przedstawiający powolną, bezramię, bez przycisków, bez lasera i bez wczesnej wersji robota.
https://www.youtube.com/watch?v=Q7MvE7-Xb0E
Wniosek
Jestem naprawdę dobry w smażeniu elektroniki.
To było moje pierwsze doświadczenie w prawdziwym warsztacie maszynowym. Muszę użyć frezarki CNC, frezarki ręcznej, tokarki i piły taśmowej. Gdybym ponownie zaczął projekt taki jak ten, zrobiłbym znacznie lepszą dokumentację, aby móc dowiedzieć się, co do cholery robiłem rok później.
źródło
4-cyfrowy wyświetlacz LED dla Arduino
Mała płytka z 4 7-segmentowymi cyframi LED, zarządzana przez 3 piny.
Opis
Kiedy zacząłem pracować z Arduino, chciałem wyświetlić wartości zebrane przez różne czujniki, których eksperymentowałem, ale nie chciałem przesyłać tych wartości
Serial
do komputera.Chciałem małą tablicę, którą mogłem łatwo wykorzystać z jednego projektu do drugiego i chciałem oszczędzić płytkę do krojenia.
Ta płytka wraz z małą biblioteką umożliwia obecnie wyświetlanie 4-cyfrowych liczb i nie generuje prądu Arduino podczas wyświetlania (prąd jest pobierany tylko wtedy, gdy komunikuje się z tablicą nową wartość do wyświetlenia od teraz).
Projekt
Konstrukcja jest raczej prosta, ponieważ zdecydowałem się ponownie użyć układu MAX-7219 do napędzania mojego wyświetlacza LED (miałem kilka z nich pod ręką).
Dzięki temu układowi schemat był bardzo prosty, ale ważne było, aby poprawnie zrozumieć, jak go używać; na szczęście jego arkusz danych był dość przejrzysty.
Pierwotny projekt wykonano na desce rozdzielczej i wykorzystano 4 pojedyncze 7-segmentowe cyfry LED ; ale wymagało to zbyt dużego okablowania według mojego gustu (trzeba połączyć segmenty grupami po 4). Ponadto, podczas mojego pierwszego eksperymentu z 7-segmentowymi cyframi LED, usmażyłem jeden: miał 2 styki uziemienia, ale podłączyłem tylko jeden do GND zamiast obu :-(
Potem zdecydowałem się na wyświetlacz 4x7-segmentowy, wspólną katodę , z anodami segmentowymi już podłączonymi do 4 cyfr: to tylko 4 + 8 pinów!
Podczas moich testów znalazłem przydatną bibliotekę Arduino do pracy z MAX-7219, z której postanowiłem ponownie skorzystać. Zbudowałem na nim własną bibliotekę z bardzo prostym API.
Po breadboardingu nadszedł czas, aby projekt był bardziej trwały; ponieważ miałem pod ręką mnóstwo listew, zdecydowałem się na to.
Szukałem i znalazłem łatwego projektanta Stripboard na PC, którego użyłem do zaprojektowania mojej płyty.
Pierwszy projekt listwy nie został zoptymalizowany pod względem miejsca i postanowiłem go nie wdrażać:
Następnie przejrzałem projekt, aby zoptymalizować koszt i rozmiar (tylko jedna mała listwa 50x75 mm); to było łatwe dzięki projektantowi listew, który wcześniej znalazłem:
Gdy płyta była już gotowa, postanowiłem sprawdzić ją za pomocą Arduino UNO i czujnika ultradźwiękowego:
Wydawało się, że działa, ale często miałem dziwne, niespójne wyświetlane wartości; po badaniu stwierdziłem, że jest to spowodowane hałasem wywoływanym przez płytę wyświetlacza , hałasem, który zakłócał czujnik. Musiałem tylko dodać nasadkę odsprzęgającą tak blisko prądowych styków zasilających czujnika, jak to możliwe, i to działało idealnie (zwróć uwagę, że płyta wyświetlacza miała już nasadki odsprzęgające dla układu MAX-7219).
Lista części:
Wniosek
30 lat po moich ostatnich eksperymentach z elektroniką mogłem ponownie zdobyć wirusa dzięki Arduino i dzięki temu pierwszemu projektowi, który, choć dość prosty, nauczył mnie kilku rzeczy:
Gdybym miał dziś rozpocząć ten projekt ponownie:
źródło
Cyfrowy zegar ścienny z pilotem o częstotliwości radiowej (RF)
Duży 7-segmentowy zegar ścienny z wyświetlaczem o przekątnej 40 x 30 cm / 16 x 12 cali z pilotem zdalnego sterowania.
Opis
Ten projekt wyposażony jest w duży, 7-segmentowy cyfrowy zegar ścienny (40 x 30 cm / 16 x 12 ") z pilotem zdalnego sterowania R / F. Posiada następujące funkcje:
Projekt
Kluczowymi aspektami tego projektu były:
Poniżej znajdują się schematy kontrolera i jednej z 7-segmentowych płyt:
Oto kilka zdjęć plansz, które zaprojektowałem, wytrawiłem i zmontowałem oraz pilota:
I na koniec, oto zdjęcie innej wersji zegara. W tym przypadku wykonuję 7-segmentowe wyświetlacze, używając prostokątnych diod LED i dyskretnych elementów.
Wniosek
Ten projekt zajął mi dużo czasu, wysiłku i nauki, aby dojść do tego etapu (jak się dowiedziałem, nigdy się nie zakończył), ale była świetną zabawą. Kilka rzeczy, których się nauczyłem:
Badać wszelkie bibliotekami masz zamiar użyć w swoim projekcie przed przypisać szpilki GPIO w kontrolerze więc uniknąć potencjalnych konfliktów. Nie miałem szczęścia używać tego samego pinu PWM do sterowania jasnością, który jest powiązany z zegarem VirtualWire, więc musiałem załatać płytę, aby uzyskać jasność i RF działające w tym samym czasie.
Zaciskanie złącz Kex molex i modułów zajmuje dużo czasu !!
Cięte laserowo elementy akrylowe to przyszłość. Dodają wiele jakości do urządzenia, nawet jeśli jesteś niezdarny.
źródło
Rotator anten telewizyjnych
Zdalnie sterowany obrót anteny IR
Nie możesz wstać z kanapy, aby wyregulować kierunek anteny telewizyjnej? A nawet jeśli tak, czasami bliskość anteny zmienia odbiór. Byłoby miło móc wyregulować antenę z kanapy. Korzystanie z pilota telewizora.
składniki
Arduino Uno, odbiornik IR, silnik krokowy z płytą sterownika, łożysko ID 1 ", uchwyt mopa Swiffer, pudełko z tworzywa sztucznego,
Opis
Użyj starego uchwytu mopa Swiffer jako słupka anteny. Dostałem 1 "łożysko identyfikacyjne z mojego ulubionego sklepu internetowego, w który uchwyt mopa po prostu się wciska i zatrzymuje. Wywierciłem otwór w plastikowym pudełku wystarczająco dużym, aby zmieścił się uchwyt mopa, ale nie łożysko. Wywierciłem prostokąt otwór w końcówce uchwytu mopa, aby pasował do wału silnika krokowego 28BYJ-48, i wbił urządzenie w pudełko, jak pokazano. Rękojeść mopa faktycznie spoczywa na łożysku, a łożysko jest super przyklejone do górnej części plastikowego pudełka .
Wykorzystano bibliotekę stepper.h, aby obrócić silnik z Uno.
Rozebrałem nieużywany odtwarzacz DVD i uratowałem z niego odbiornik podczerwieni. Możesz rozebrać każde urządzenie konsumenckie, które ma pilota i użyć z niego odbiornika podczerwieni, zadziała. Odbiornik IR korzysta z biblioteki IRremote.h. Za pomocą monitora szeregowego wydrukowałem kod szesnastkowy odpowiadający dwóm przyciskom na pilocie telewizora, których chcę użyć do obsługi silnika anteny. Jeden do obracania w lewo, drugi w prawo.
Aby oszczędzać energię, użyj funkcji small_stepper.motorOff (), aby wyłączyć cewki po każdym ruchu.
Wniosek
To był zabawny projekt, który przydał się także mojej żonie. Nie wdrożyłem żadnego przyspieszenia / opóźnienia w ruchu, co może być przyjemne, zwłaszcza jeśli antena ma większą bezwładność obrotową.
Edycja: przepraszam, że obraz jest bokiem! Na moim komputerze jest skierowana do góry, nie mam pojęcia, dlaczego działa on bokiem w trybie online.
źródło
Lampa pukająca
Lampa, która włącza się / wyłącza, gdy biurko jest zapchane. Obecnie w fazie alfa, wciąż prototypowanie, ale myślę, że to najbardziej użyteczny projekt Arduino. Zawiera generator generatora żartów ... z wcześniej nagranych dowcipów puk-puk. Uwaga: Wiem, że nie mogę wygrać w regulaminie, ale nie ma zasady wchodzenia ... Mogę też pochwalić się swoim projektem.
Opis
Jak dotąd wyjaśniłem większość z nich. Pukacie, a światło włącza się i wyłącza. Obecnie jestem na pokładzie. Używam elementu piezoelektrycznego do wykrywania uderzeń z wibracjami. Równolegle mam rezystor 1 megaomowy do ochrony mojego Arduino Uno SMD.
Myślałem o tym projekcie po prawie strąceniu (haha punny) mojej lampy z biurka, szukając małego przełącznika. Nie jestem dokładnie ... dobrze zręczny . Miło jest po prostu zapukać do biurka, a następnie zapalić światło. Używam również wyłącznika zasilania SSR (przekaźnik półprzewodnikowy: bez szumu), aby kontrolować go za pomocą dwóch pinów mojego Arduino.
Projekt
Zdjęcie zrobione kamerą zawieszoną na monitorze ... eek!
Komponenty użyte do zbudowania projektu:
Koszt dla mnie: 3,30 USD + 0,02 USD (podatek) == Tylko 3,32 USD!
Wniosek
Ogólnie rzecz biorąc, jest to prosty projekt, ale w rzeczywistości jest przydatny. To jest walka z moimi projektami Arduino: czy mogę zbudować coś, czego faktycznie użyłbym ? Miganie diody LED nie pomoże ci w życiu. To zabawne, ale o to chodzi.
Największym problemem, z którym się zetknąłem (i nadal to robię), nie jest wystarczająco silny sygnał. Nauczyłem się wiele o sygnałach elektrycznych: wymyśliłem, jak znaleźć „szczyt” impulsu, a nie tylko odczytywać pin w przypadkowym odstępie czasu i tęsknić za wyższym napięciem. Spróbowałbym zdobyć bardziej wrażliwy element piezo. Większy by pomógł. Próbuję zmodyfikować swój obwód, aby nie ograniczać napięcia tak bardzo, ale chronić Arduino. W tej sytuacji pomógłby jakiś bezpiecznik. Bawię się również wartościami rezystorów. Bardzo pomogłoby mieć pole do tego, ale chyba nie ...: P
Po udoskonaleniu obwodu zamierzam pracować nad umieszczeniem go na płytce drukowanej za pomocą ATtiny ... a może nawet opracować jakieś zestawy. Spróbuję opublikować moje ustalenia, w jaki sposób uczynić ten element bardziej wrażliwym, nie ryzykując przy tym mojej płyty.
Aktualizacja statusu: Ostatnio byłem bardzo zajęty. Zamierzam zamówić tutaj diodę Zenera (4,3 V) za tydzień lub dwa, aby usunąć rezystor megaomowy, aby zapobiec osłabieniu sygnału podczas ochrony układu. W razie potrzeby mogę zbudować prosty wzmacniacz napięcia (obok Zenera), aby zwiększyć czułość czujnika.
źródło
- Dowiedz się, jak tworzyć własne tanie czujniki bezprzewodowe i łączyć je ze światem.
http://www.mysensors.org
Nazywamy to „Internetem Twoich rzeczy”
Opis
Połączyliśmy platformę Arduino z małym transceiverem radiowym w zabawny, elastyczny świat tanich czujników bezprzewodowych.
Wszystkie drobiazgowe szczegóły dotyczące komunikacji z czujnikami zostały umieszczone w wygodnej bibliotece oprogramowania, więc nie musisz się o nie martwić.
To jest tak proste jak 1, 2, 3.
Przeczytaj więcej o tym, jak automatycznie tworzona jest sieć czujników za pomocą naszej biblioteki Arduino na stronie. Zasadniczo tworzy sieć gwiazd i może osiągnąć setki metrów.
Na środku umieszczasz bramę Arduion lub Raspberry, która zbiera informacje z twoich czujników.
Projekt i schematy
Oto jeden z prototypowych czujników ruchu, które stworzyłem do sterowania oświetleniem ogrodowym na zewnątrz mojego domu. Status ruchów jest wysyłany do mojego kontrolera HA, który włącza światło (poprzez falę Z) po wykryciu ruchu. Czujnik światła (nie na zdjęciu) zapewnia, że światła będą włączane tylko w nocy.
Znajdziesz tu wszystkie instrukcje kompilacji: http://www.mysensors.org/build/
Na stronie znajdują się również łatwe do wykonania instrukcje budowania szeregu innych bezprzewodowych czujników i urządzeń wykonawczych. Oto kilka przykładów:
Czujnik odległości, czujnik ruchu, aktuator przekaźnika, wilgotność, światło, ciśnienie, deszcz, temperatura, ...
Wniosek
Projekt jest wciąż w fazie początkowej i mamy nadzieję udostępnić wtyczki do rosnącej listy sterowników automatyki domowej. Pierwszą rzeczą na naszej liście w tej chwili jest zapewnienie kontrolera DIY, który zapewnia bezpłatne przechowywanie w chmurze danych czujnika.
Do zobaczenia @ mysensors.org
/ Henrik Ekblad (twórca biblioteki Arduino Open Source służącej do komunikacji między czujnikami)
źródło
Serial Box
Przenośny monitor szeregowy w pudełku
Opis
Czasami przydaje się urządzenie (Arduino lub inne), aby wysyłać niektóre informacje debugowania przez port szeregowy. To świetnie, jeśli masz pod ręką komputer z odpowiednim wejściem szeregowym. Jednak nie zawsze tak jest z różnych powodów.
Ten projekt to moja próba rozwiązania tego problemu poprzez stworzenie przenośnego monitora szeregowego zasilanego Arduino, który mogę podłączyć do innych urządzeń w terenie.
Domyślnie po prostu wyświetla tekst w formacie przewijania; tzn. tekst pojawia się w dolnym wierszu, a wszystko przewija się w górę, aby zrobić miejsce, gdy pojawi się więcej. Oznacza to, że powinien bardzo dobrze działać z wszystkimi rodzajami urządzeń ogólnych. Możliwe będzie jednak także użycie sekwencji ucieczki w celu dokładniejszego sterowania wyświetlaczem, dzięki czemu można również zaprogramować urządzenia, aby skorzystać z jego możliwości.
Projekt
Projekt składa się z zestawu 4 alfanumerycznych wyświetlaczy LCD (każdy 16 x 2 znaki), ustawionych w ramce mniej więcej tak:
Wyświetlacze to Epson EAX16027AR, które niestety nie są kompatybilne ze standardowym sterownikiem Hitachi HD44780. Jako taki musiałem dla nich napisać własną bibliotekę .
Zdecydowałem się na użycie tych wyświetlaczy (zamiast np. Jednego dużego wyświetlacza) głównie dlatego, że po prostu je leżałem i chciałem z nimi zrobić coś interesującego. Pomyślałem również, że całkiem przydatne byłoby kontrolowanie każdego wyświetlacza niezależnie dla niektórych aplikacji (np. Wyświetlanie różnych informacji na każdym z nich).
Jeśli chodzi o konstrukcję obwodów, wyświetlacze są połączone równolegle, z pinami do wyboru chipów, które w razie potrzeby służą do kierowania danych / poleceń do każdego z nich.
ATMega328 będzie mózgiem jednostki końcowej, z szeregowymi danymi pochodzącymi z linii poziomu TTL (do podłączenia bezpośrednio do TX podobnego MCU) lub opcjonalnie z 9-stykowego gniazda D-sub RS232 (do podłączenia do różne inne systemy). Urządzenie będzie miało również pokrętło kontrastowe, przycisk do czyszczenia wyświetlacza oraz przycisk do inicjowania trybu autotestu. W przyszłości chciałbym dodać przyciski, które pozwolą użytkownikowi poruszać się po historii przewijania.
Poniżej znajduje się bardzo wstępny układ obwodu (z jakiegoś powodu miałem wiele problemów z tym, żeby Fritzing grał ładnie!). Zawiera 8-bitowy rejestr przesuwny SIPO do sterowania liniami danych wyświetlaczy LCD, które są pokazane na zielono. Możesz również zobaczyć linie wyboru żetonów na pomarańczowo.
W tej chwili projekt jest nadal w fazie prototypu, sterowany z płyty Uno (klon). Poniżej możesz zobaczyć jego zdjęcie w akcji, pokazujące tekst, który został przesłany przez komputer szeregowo.
Kod źródłowy
Udostępniam moją bibliotekę LCD na GitHub pod linkiem poniżej. Pamiętaj, że jest na wczesnym etapie rozwoju. W najbliższej przyszłości zamierzam uczynić go bardziej podobnym do podstawowej biblioteki LiquidCrystal, aby łatwiej było przechodzić między nimi.
Podstawowy kod mojego prototypu Serial Box można znaleźć w folderze „Examples”.
Wniosek
Myślę, że projekt idzie bardzo dobrze i bardzo ucieszyłem się z uruchomienia prototypu. Moim głównym wyzwaniem będzie zamontowanie całości w pudełku. Już zacząłem wycinać odpowiednie otwory na wyświetlacze, ale nie mam zbyt dużego doświadczenia w tego typu sprawach i ciężko jest mi wyrównać wszystko.
W końcu się tam dostanę. Zanim skończę, może po prostu nie wyglądać ładnie! :)
źródło
Kontroler ogrzewania
Wiesz, jak to jest - ustawiasz ogrzewanie na określoną godzinę i ile dni pracujesz do późna, a godziny są pełne, lub odchodzisz na kilka dni i zapominasz wyłączyć? A może rzadka okazja, że wrócisz do domu wcześnie i w domu jest zimno? Uznałem, że najprostszym sposobem na obejście tego jest zbudowanie urządzenia, które pozwoli mi włączyć lub wyłączyć ogrzewanie za pomocą wiadomości SMS / SMS. Byłoby to uzupełnieniem istniejącego systemu kontroli, aby nie stracić elastyczności, która może to zapewnić.
Projekt składa się z kilku głównych części: klonu Arduino Uno, tarczy Seeedstudio GSM, czujnika temperatury DHT22 i SSR 25 A.
Jak to działa:
Istniejące elementy sterowania ogrzewaniem są ustawione na „Wył.”, A nowy sterownik jest podłączony, aby je zastąpić. Uno jest zaprogramowane do reagowania na trzy różne komunikaty - Włączone, Wyłączone i Zapytanie. W przypadku tego ostatniego urządzenie odczyta DHT22 i odpowie nadawcy z aktualną temperaturą i statusem urządzenia (włączone lub wyłączone). Jeśli polecenie jest Włączone lub Wyłączone, wówczas odpowie na potwierdzenie przeprowadzonej akcji. Po podjęciu działań wiadomości są usuwane; wszelkie wiadomości, które nie są zgodne z określoną strukturą wiadomości, pozostają w pamięci karty SIM i można je później sprawdzić w razie potrzeby.
Zasilanie urządzenia jest dostarczane przez zasilacz impulsowy o napięciu pięciu woltów i trzech amperach. Ponieważ piny zasilania w Arduino po prostu odsłaniają wewnętrzną magistralę 5 V płyty, postanowiłem zasilić zespół przez te i skonfigurować tarczę, aby pobierać energię z Arduino.
Urządzenie ma trzy diody LED stanu. Jeden zielony oznacza, że jest zasilanie, niebieski oznacza, że karta GSM jest „pod napięciem”, a czerwony wskazuje stan ogrzewania. Stanowią one uzupełnienie diod LED statusu na Arduino i tarczy. Istnieje również przełącznik przyciskowy, który umożliwia ręczne sterowanie ogrzewaniem, z kondensatorem 100nF do obsługi odbicia.
Kolejny:
Znaczna część kodu opiera się na starym dobrym opóźnieniu (), aby dać tarczy wystarczająco dużo czasu na wykonanie swoich działań. Planuję ulepszyć kod, aby czekał na potwierdzenie z tarczy, zamiast zakładać, że zrobił to, co mu kazano w wyznaczonym czasie! Dodam również funkcję „wciąż żywą” - w ustalonych odstępach czasu wyłącz niebieską diodę LED, wyślij polecenie AT do tarczy i po potwierdzeniu ponownie włącz diodę LED. Tarcza jest pod kontrolą oprogramowania, więc jeśli nie zareaguje, wyłącz ją i włącz ponownie.
Cały zespół ma być zamontowany w odpowiedniej obudowie i zamontowany w sąsiedztwie istniejącego kontrolera. Mam wewnętrznie podświetlany przełącznik przyciskowy, którego użyję zamiast osobnego przełącznika i czerwonej diody LED do obsługi obejścia.
W dłuższej perspektywie planuję dodać RTC, 20 x 4 LCD i dodatkowe przyciski, aby umożliwić zaprogramowanie urządzenia i działać również jako wyłącznik czasowy.
Prototypowanie już się rozpoczęło!
Wniosek.
Jest coś nieco dekadenckiego w budzeniu się w chłodny zimowy dzień odpoczynku, wysyłaniu wiadomości tekstowej / sms, aby włączyć ogrzewanie, i przewracaniu się i wracaniu do snu na godzinę! A kiedy zdasz sobie sprawę, że nie wyłączyłeś go w nocy, możesz to zrobić w zaciszu własnego łóżka!
źródło