Zrób cyfrowy „meow” z zegara analogowego: 7 kroków (ze zdjęciami)

Zrób cyfrowy „meow” z zegara analogowego: 7 kroków (ze zdjęciami)

Spisu treści:

Anonim

Czy twój zegar analogowy nie robi wystarczająco dużo rzeczy? Chcesz robić rzeczy cyfrowe za pomocą zegara analogowego?

Ten samouczek pokaże Ci, jak zrobić zegar Kit Cat odtwarzający klip dźwiękowy „meow”, w precyzyjnych odstępach czasu, przy użyciu Atmega 328P-PU za pośrednictwem płyty rozwojowej Arduino Uno. W moim przykładzie miauczenie nastąpi co godzinę. Nie musi to być także zegar Kit-Cat, ten pomysł może działać z innymi zegarami wykorzystującymi silnik magnetyczny.

Założenia (pomiń, jeśli jesteś już ekspertem we wszystkim)

Projekt obejmuje wiele średnio zaawansowanych i zaawansowanych umiejętności, takich jak wypalanie bootloadera i lutowanie przewodów. Dlatego przed przystąpieniem do dalszych działań potrzebna jest niezbędna wiedza i umiejętności. Zakładam, że wiesz jak, lub przynajmniej będziesz przygotowany do wykonania następujących czynności:

Nagrywanie bootloadera na Atmel328P-PU (chyba że twój już go posiada).

Przesyłanie „szkiców” do Atmel328P-PU za pośrednictwem Arduino

Wprowadzanie poleceń do emulatora terminala lub wiersza poleceń (okna)

Używając lutownicy do wykonania połączeń między elementami.

Możliwe użycie wiertła lub narzędzia Dremel do przycinania / cięcia części z tworzyw sztucznych i wiercenia otworów.

Materiały

Arduino Uno R3 x 1

Deska do krojenia chleba x 1

Jumper Wire (wystarczająca ilość sztuk)

Rezystory:

350 Ohm x 1

150 Ohm x 1

220 Ohm x 1

280 omów x 1

10 K Ohm x 1

330 Ohm x 1 (opcjonalnie, jeśli chcesz LED podczas używania Arduino na Breadboard Setup)

Kondensatory:

100 uF x 1

10 uF x 1

22 pF x 2 (może być opcjonalne)

Oscylator kwarcowy 16 MHz

Mały głośnik o mocy 0,5 W (średnica około 50,8 mm) x 1

Adapter ścienny 7,5 V AC (użyłem marki Vtech w firmie Toys R Us) x 1

7805 Regulator napięcia x 1

Lutownica i lutowanie

Protoboard (lub inna finalna plansza projektu, która będzie wystarczająco mała, aby pasować do obudowy zegara)

Super klej

Termokurczliwy (opcjonalnie)

Pistolet do klejenia na gorąco (opcjonalnie)

Takane Quartz Clock (zakładając, że musisz zastąpić domyślny zegar w Kit Cat, tak jak ja)

Czujnik efektu Halla x 1

Użyłem czujników Halla z rodziny SS41. Czujniki te są wystarczająco czułe, aby wykryć stosunkowo słabe pole magnetyczne silnika z magnesem zegarowym. Ten, który kupiłem, można znaleźć tutaj

Kieszonkowe dzieci:

Krok 1: Ogólny przegląd projektu:

Interesującym aspektem tego projektu jest wykorzystanie urządzeń analogowych (w tym przypadku zegara analogowego) do interakcji ze światem cyfrowym Atmel 328P-PU. Arduino jest prawdopodobnie jednym z najprostszych sposobów osiągnięcia tego celu. Będę używał typowego silnika zegarowego znajdującego się w klasycznych zegarach Kit Cat do generowania impulsu cyfrowego, który będzie zasilał układ Atmel. Powodem tego będzie fakt, że silnik zegara wykorzystuje magnes stały, znajdujący się w pobliżu cewki, aby wytworzyć mechaniczny moment obrotowy niezbędny do zakręcenia wskazówki zegara. Wykorzystam to pole magnetyczne, wykorzystując czujnik Halla do wykrywania strumienia magnetycznego z silnika zegara. Czujnik wyśle ​​cyfrową wartość WYSOKĄ, gdy jeden z biegunów magnesu będzie zwrócony w stronę czujnika, a następnie wyprowadzi LOW, gdy przeciwny biegun znajdzie się w pobliżu czujnika. To przejście biegunowe występuje co sekundę lub ma częstotliwość 1 Hz i jest to powód, dla którego służy jako idealny silnik do napędzania wskazówek zegara.

Uwaga: czujnik w rzeczywistości nie dotyka magnesu, jest bardzo blisko niego. Zdjęcia pokazują, jak blisko musiałem umieścić czujnik, aby uzyskać odczyty.

Zdjęcia tutaj pokazują wnętrze rzeczywistego zegara, a silnik magnesu po prawej stronie. Typ zegara nazywa się „Takane Quartz” i są one dość powszechne w tanich zegarach analogowych.

Gdy mamy stały impuls pochodzący z czujnika, wszystkie rodzaje rzeczy można wykonywać cyfrowo, a tak naprawdę ogranicza się to tylko do wyobraźni na temat tego, co można zrobić. W tym samouczku po prostu wykonam licznik, który zlicza impulsy zegara (z czujnika Halla) i po zakończeniu liczenia odtwarza klip audio „meow”.

Pierwszy krok polega na zamontowaniu czujnika Halla w pobliżu silnika magnesu, aby uzyskać dobry odczyt. Musiałem umieścić czujnik bardzo blisko mojego silnika magnesu, aby uzyskać wyjście. Możesz przetestować czujnik, podłączając coś takiego jak dioda LED do styku wyjściowego czujnika, a następnie włącz zegar. Jeśli to zadziała, dioda LED powinna migać co drugą sekundę. Dzieje się tak dlatego, że wyjście jest tylko WYSOKIE, podczas gdy jeden z biegunów jest zwrócony w stronę czujnika (powiedzmy na przykład biegun północny); gdy przeciwny biegun (na południe) jest zwrócony w stronę czujnika, wyjście jest NISKIE.

Po ustaleniu odpowiedniej lokalizacji i odległości do odczytów powinieneś zacząć myśleć o tym, jak zamontować go tam na stałe. Zdecydowałem się użyć super kleju, aby utrzymać czujnik na miejscu. Rozważałem także lokalizację z powodu miejsca, w którym znajdowałaby się tylna obudowa. Musiałem wyciąć mały prostokątny otwór, aby kołki czujnika były dostępne. Powinieneś określić, co działa najlepiej, ponieważ chociaż te zegary są prawie takie same, czasami układ jest nieco inny wewnątrz, a rozmieszczenie czujnika może się różnić w zależności od konkretnego zegara, który masz.

Krok 2: Drut lutowniczy do kołków wejściowych czujnika

Teraz czas przylutować szpilki do przewodu. Powodem, dla którego to zrobiłem, były dwa powody: po pierwsze, chcesz móc przetestować czujnik w trakcie dalszej pracy, a także dlatego, że będziesz potrzebował tych przewodów, gdy podłączysz je do deski do krojenia chleba i na koniec protoboarda. Uwaga: użycie innego koloru drutu może ułatwić tę operację, gdy trzeba szybko zidentyfikować szpilki. To jest to co zrobiłem.

Konfiguracja pinout znajduje się na tej stronie

Krok 3: Przygotowanie pliku audio

Jeśli już wiesz, jak przekonwertować plik.WAV na plik C, możesz pominąć lub przejrzeć ten krok.

Teraz, gdy czujnik jest przymocowany do odpowiednich kołków na desce do krojenia chleba, musisz załadować szkic audio na Atmel328P. Najpierw jednak należy najpierw dokonać pewnych modyfikacji i „masowania”. Tutaj możesz dokonać własnych modyfikacji i przejdę do niektórych (ale nie wszystkich) szczegółów dotyczących korzystania z programów Audacity i wav2c. Powinieneś iść dalej i otworzyć kod, który dostarczyłem w twoim Arduino IDE. Po otwarciu szkicu w Arduino IDE, pierwsza karta to niewielka zmiana szkicu audio PCM napisanego przez Michaela Smitha, oryginał można znaleźć na stronie Arduino:

playground.arduino.cc/Code/PCMAudio

Audacity to program do edycji audio. Jest bardzo wydajny i pozwala na eksport pliku.wav w postaci 8-bitowego mono, niepodpisanego pliku.wav. Jest to konieczne, aby zmniejszyć rozmiar pliku, a także zwiększyć kompatybilność ze szkicem odtwarzania audio. Możesz pracować nad różnymi szybkościami transmisji bitów i rozmiarami, ale nie eksperymentowałem z tym. Będziemy korzystać tylko z niezbędnych funkcji Audacity, aby wykonać zadanie.

Wav2c, jak sama nazwa wskazuje, może przekonwertować plik.wav na plik C. Jest to również konieczne, ponieważ sam plik.wav jest zbyt duży, aby zmieścić się w pamięci 328P-PU. W trakcie pisania możesz pobrać kod źródłowy bezpośrednio z github. Możesz także uzyskać skompilowane wersje z innych stron internetowych. Tak czy inaczej, powinieneś użyć go lub innego podobnego programu do procesu konwersji.

github.com/olleolleolle/wav2c

Krok 4: Używanie Audacity i Wav2c

Celem konwersji plików dźwiękowych jest pobranie pliku audio (.wav) i przekształcenie go w użyteczny dokument pliku nagłówkowego C. Pozwala to arduino na wykorzystanie informacji z pliku nagłówkowego jako wyjścia dźwięku przez głośnik.

- Najpierw otwórz plik w Audacity.

-Zmień szybkość projektu do 8000 Hz (znajduje się w lewym dolnym rogu).

- Następnie wybierz „utwory” z menu i wybierz „powtórz”.

-Następnie wyeksportuj> inne nieskompresowane pliki.

- Pod opcjami wybierz podpis 8-bitowy.

Spowoduje to przygotowanie pliku do następnego kroku, który jest konwersją do pliku C.

-Następnie otwórz terminal i przejdź do tego samego katalogu co plik.

- Uruchom następujące polecenie (sox), aby przyciąć ogon (zakładając, że jest jeden)

- Następnie uruchom ostatnią komendę, aby faktycznie wykonać konwersję

(zauważ, że kopia oryginalnego pliku jest w rzeczywistości konwertowana)

-Następnie otwórz arduino IDE i dodaj nową pustą kartę (przycisk do dodawania nowej karty znajduje się po prawej stronie IDE Arduino).

- Zmień nazwę karty na tę samą nazwę, co plik nagłówkowy.

-Kopiuj i wklej zawartość do karty

Krok 5: Testowanie dźwięku

Teraz, gdy masz gotowy plik sounddata.h i zweryfikowałeś szkic Arduino, powinieneś teraz przesłać go do swojego chipa. Użyłem płyty Arduino bezpośrednio do wszystkich moich początkowych testów, ale później użyłem konfiguracji „Arduino on Breadboard” do mojego pozostałego testu. Załączam tutaj diagram.

Jeśli wszystko pójdzie dobrze, włącz zegar i przetestuj go, aby upewnić się, że liczy impulsy z zegara, a następnie dostarcza wyjście. Uwaga: kiedy to robiłem, ustawiałem licznik odtwarzania dźwięku na 60 sekund, więc nie musiałem czekać całą godzinę, aby sprawdzić, czy działa, później zmieniłem licznik na 3600 sekund lub 1 godzinę). Aby zmienić przedział czasu, znajdź fragment kodu w pobliżu ostatnich linii i znajdź zmienną clockCount. Zmień go na dowolną wartość.

Krok 6: Lutowanie wszystkiego dla bardziej trwałej, kompaktowej konstrukcji

Teraz zabawna część … lutowanie wszystkich ważnych części z Twojej deski do bardziej zwartej protoboardu. Nie będziesz potrzebował wszystkiego, jak wyjście LED lub przycisk resetowania (zakładając, że masz jeden z obwodu Arduino on Breadboard). Jest na to o wiele lepszy sposób, ale jeśli masz ograniczone zapasy, protoboard jest prawdopodobnie najlepszym rozwiązaniem. Wiele osób robi teraz własne trawienie i przetwarzanie PCB. Jeśli możesz to zrobić, to zrób to, bo jest o wiele lepszy niż protoboard.

Musisz także podłączyć zasilacz prądu przemiennego do dodatnich i ujemnych węzłów protoboarda, gdzie styka się on ze stykami regulatora napięcia. Użyłem modelu Vtech 7,5 V. Są to około 10 dolców w Targecie i 12 w Toys R Us. Albo możesz użyć czegoś podobnego, co leżałeś w domu. Uwaga: Powinieneś jednak starać się utrzymywać różnicę napięcia między regulatorem a adapterem do minimum, ponieważ w przeciwnym razie nagrzeje się. Jeśli różnica jest duża, należy umieścić radiator na regulatorze, aby pomóc rozproszyć ciepło. Różnica napięcia między 7805 a zasilaczem sieciowym Vtech wynosi tylko 2,5 V przy 300 mA, ale nadal należy umieścić na nim mały radiator.

Uwaga: upewnij się, że jesteś zadowolony / zadowolony ze szkicu na chipie Atmega, ponieważ po przylutowaniu na płycie nie będziesz mógł go przeprogramować.

Uwaga: użyłem również dremel, aby zrobić mały otwór w dolnej części obudowy zegara, tak aby przewód zasilacza starannie pasował. Używałem go także do innych różnych rzeczy, modyfikując zegar, np. Do przycinania ostrych krawędzi i do czyszczenia całego wnętrza.

Krok 7: Organizacja wszystkiego i dopasowanie go do wnętrza zegara

Po prawidłowym przylutowaniu wszystkich przewodów i podzespołów nadszedł czas na zorganizowanie okablowania i podjęcie decyzji o odpowiednim umieszczeniu płytki w obudowie Kit Cat. Głównym problemem jest umieszczenie wszystkiego w miejscu, które nie będzie kolidować z ruchem ogona i oczu. Nie zdawałem sobie też sprawy z tego, jak trudne byłoby dopasowanie głośnika, więc musiałem wywiercić kilka otworów, aby pomóc zamontować głośnik w miejscu, które utrudniłoby mocowanie ogona silnika.

Znalezienie miejsca na planszę może być trudne i może wymagać prób i błędów. Usiadłem na miejscu po lewej stronie, w pobliżu obudowy baterii. Następnie użyłem pistoletu do klejenia na krawędziach deski, aby pomóc utrzymać go na miejscu. Krawaty remisów lub krawaty zip mogą być przydatne do porządkowania i grupowania przewodów.

Niezależnie od techniki, którą zdecydujesz się to zrobić, zależy to od ciebie, ponieważ zmieszczenie wszystkiego w obudowie zegara będzie zależało od zegara i ilości materiałów wchodzących w jego skład.

Finalista w

Konkurs Sensors