Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Lutowanie
- Krok 2: Okablowanie
- Krok 3: Kodowanie
- Krok 4: Możliwe rozszerzenia
Wideo: Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD): 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Projekt ten ma na celu ułatwienie badań w obszarze Substytucji i Augmentacji Sensorycznej. Miałem możliwość zbadania różnych sposobów budowania prototypów wibrodotykowych SSAD w ramach mojej pracy magisterskiej. Ponieważ substytucja i augmentacja sensoryczna to temat, który dotyczy nie tylko informatyków, ale także badaczy z innych dziedzin, takich jak kognitywistyka, instrukcja krok po kroku powinna umożliwić niespecjalistom w dziedzinie elektroniki i informatyki samodzielne złożenie tego prototypu. celów badawczych.
Nie zamierzam robić reklamy dokładnie jednego rodzaju marki/produktu. Ten projekt nie był sponsorowany przez żadną firmę. Użyty przeze mnie materiał został wybrany ze względu na specyfikacje techniczne i wygodę (szybkość/koszt dostawy, dostępność itp.). Dla wszystkich produktów wymienionych w tej instrukcji dostępne są równie odpowiednie alternatywy.
Obecny Instructable zawiera instrukcje krok po kroku, jak zbudować podstawowy prototyp SSAD z maksymalnie 4 silnikami i czujnikami analogowymi.
Oprócz tego Instructable stworzyłem trzy rozszerzenia: Po pierwsze opublikowałem instrukcje dotyczące korzystania z więcej niż czterech silników z tym prototypem SSAD (https://www.instructables.com/id/Using-More-Than-4…). Po drugie, stworzyłem dostawę i przykład, jak sprawić, by ten prototyp był nadający się do noszenia (https://www.instructables.com/id/Making-the-SSAD-W…) i jak pokryć silniki ERM bez zamkniętej masy wirującej (https:/ /www.instructables.com/id/Covering-Rotating…). Ponadto opublikowano również przykład integracji czujników innych niż analogowe (w tym przypadku czujników zbliżeniowych) z prototypem (https://www.instructables.com/id/Including-a-Proxi…).
Co to jest „Substytucja i augmentacja sensoryczna”?
Dzięki substytucji sensorycznej informacje zebrane przez jedną modalność sensoryczną (np. wzrok) mogą być odbierane przez inny zmysł (np. dźwięk). Jest to obiecująca nieinwazyjna technika, która pomaga ludziom przezwyciężyć utratę lub upośledzenie czucia.
Jeśli bodziec czuciowy, który podlega translacji, jest normalnie nie dostrzegalny przez człowieka (np. światło UV), podejście to nazywa się wzmocnieniem sensorycznym.
Jakie umiejętności są potrzebne do zbudowania tego prototypu?
Zasadniczo nie są potrzebne żadne zaawansowane umiejętności programistyczne, aby postępować zgodnie z instrukcjami podanymi poniżej. Jeśli jednak jesteś początkującym w lutowaniu, zaplanuj dodatkowy czas na zapoznanie się z tą techniką. Jeśli nigdy wcześniej nie programowałeś, może być potrzebna pomoc kogoś bardziej doświadczonego w programowaniu.
Czy są potrzebne maszyny lub narzędzia, które są drogie lub trudno dostępne?
Z wyjątkiem lutownicy, do zbudowania tego prototypu nie są potrzebne żadne maszyny ani narzędzia, których nie można łatwo kupić w Internecie lub w najbliższym sklepie gospodarstwa domowego. Ten SSAD został zaprojektowany, aby umożliwić szybkie prototypowanie, co oznacza, że powinien być szybko odtwarzalny i umożliwiać niedrogą eksplorację pomysłów.
Kieszonkowe dzieci
Główne komponenty (około 65 £ na 4 silniki, bez sprzętu lutowniczego)
- Arduino Uno (np. https://store.arduino.cc/arduino-uno-rev3, 20 £)
- Adafruit Motorshield v2.3 (np. https://www.adafruit.com/product/1438, 20 £) i męskie nagłówki do stackowania (zwykle dołączane przy zakupie Motorshield)
- Silniki cylindryczne ERM (np. https://www.adafruit.com/product/1438, 5, 50£/silnik)
- Lutownica i drut lutowniczy
- Przewody
Opcjonalne (patrz rozszerzenia)
W przypadku zakupu silnika ERM z nieosłoniętą masą wirującą:
- Rurka winylowa
- Cienka miękka deska
- Drukarka 3D (do obudowy Arduino)
Jeśli chcesz użyć więcej niż 4 silników (na więcej niż 8 takich samych innym razem):
- Adafruit Motorshield v2.3 i męskie nagłówki do układania w stos
- Nagłówki żeńskie do układania w stosy (np.
- Arduino Mega dla ponad 6 silników (np.
Krok 1: Lutowanie
Przylutuj szpilki do osłony silnika
Adafruit oferuje bardzo obszerny samouczek dotyczący lutowania nagłówków do osłony silnika (https://learn.adafruit.com/adafruit-motor-shield-v…):
- Najpierw włóż nagłówki do układania w szpilki w Arduino Uno,
- Następnie umieść tarczę na górze tak, aby wystawał krótszy bok szpilek.
- Następnie przylutuj wszystkie piny do tarczy i upewnij się, że lut opływa pin i tworzy kształt wulkanu (patrz zdjęcie powyżej, które zostało zaadoptowane z https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189…).
Jeśli jesteś początkującym w lutowaniu, pomóż sobie dodatkowymi samouczkami, takimi jak
Przylutuj dłuższe przewody do silnika
Ponieważ większość silników jest dostarczana bez lub bardzo krótkich i cienkich przewodów, sensowne jest ich przedłużenie poprzez przylutowanie ich do dłuższych i mocniejszych przewodów. Oto jak możesz to zrobić:
- Usuń plastik z końców przewodów i umieść je tak, aby stykały się ze sobą wzdłuż odsłoniętych przewodów, jak na zdjęciu.
- Zlutuj je, dotykając gwintów obu przewodów i pozwalając, aby lut spłynął po nich.
Krok 2: Okablowanie
- Ułóż motorshield na Arduino.
- Wkręcić silniki w osłonę silnika.
- Podłącz czujniki analogowe do Arduino (na zdjęciu odbywa się to z czujnikami światła, ale ten sam układ wygląda tak samo dla innych czujników analogowych).
Krok 3: Kodowanie
1. Pobierz
Pobierz folder zip (SSAD_analogeInputs.zip), załączony poniżej. Rozpakuj go.
Pobierz Arduino IDE (https://www.arduino.cc/en/main/software).
Otwórz plik Arduino (SSAD_analogeInputs.ino), który znajduje się w rozpakowanym folderze z Arduino IDE.
2. Zainstaluj biblioteki
Aby uruchomić dostarczony kod, musisz zainstalować kilka bibliotek. Jeśli więc plik Arduino, który jest dołączony na końcu tego artykułu, jest otwarty w środowisku Arduino IDE, wykonaj następujące czynności:
- Kliknij: Narzędzia → Zarządzaj bibliotekami…
- Poszukaj „Biblioteki Adafruit Motor Shield V2” w polu Filtruj swoje wyszukiwanie
- Zainstaluj go, klikając przycisk Instaluj
Po pobraniu tych bibliotek, teraz instrukcje #include w dostarczonych kodach powinny działać. Sprawdź to, klikając przycisk „Weryfikuj” (zaznacz w lewym górnym rogu). Wiesz, że wszystkie biblioteki działają, jeśli na dole programu pojawi się komunikat „Gotowe kompilowanie”. W przeciwnym razie pojawi się czerwony pasek i otrzymasz wiadomość o tym, co poszło nie tak.
3. Zmień kod
Zmień kod zgodnie z przypadkiem użycia, postępując zgodnie z poniższymi instrukcjami:
Inicjowanie silników i ich bodźców zmysłowych
Przede wszystkim zadeklaruj jakich pinów używają silniki, a także w jakim zakresie pracują silniki. Na przykład silnik podłączony do M4 i pracujący w zakresie (prędkości) 25 i 175 jest tak zadeklarowany (pod komentarzem GŁÓWNYM):
Silnik silnik1 = Silnik (4, 25, 175);
Podczas pracy z małymi silnikami wibracyjnymi, które są napędzane w zakresie do 3 V, osłona silnika musi być używana z ostrożnością, ponieważ jest przeznaczona do pracy silników przy napięciu od 4,5 VDC do 13,5 VDC. Aby nie uszkodzić silników 3V, programowo ograniczyłem napięcie wyjściowe tarczy do maksymalnie 3V (dokładnie 2,95V). Zrobiłem to mierząc, ile maksymalna prędkość 255 jest w Voltach i zmierzyłem multimetrem, że to jest 4,3V. Dlatego nigdy nie dopuszczałem do silników wyższych prędkości niż 175, czyli około 3V.
Każdy silnik będzie połączony z jednym SensoryOutput.
Jedno wyjście sensoryczne składa się z jednego lub wielu bodźców sensorycznych. Na przykład silnik może wibrować według jednego czujnika lub według średniej z wielu różnie rozmieszczonych czujników.
Dlatego najpierw dla każdego silnika należy zadeklarować jedno wyjście SensoryOutput. Liczby w nawiasach to minimalna i maksymalna wartość tego, co czujnik (grupa) może dostrzec. Dla czujników analogowych jest to najczęściej 0 i 1023:
Wyjście sensoryczne1 = SensoryOutput (0, 1023);
W funkcji loop() każdy silnik jest przypisywany do jednej wartości wyjściowej. Tutaj piszesz dla każdego silnika następującą instrukcję i zamiast "wyjście1" ma być do niego podłączona dowolna wartość SensoryOutput. Nie zapomnij również zmienić wszystkich nazw "output1" w tej linii, jeśli użyjesz do tego innej nazwy.
motor1.drive(output1.getValue(), output1.getMin(), output1.getMax());
Jeśli chcesz, możesz nadać wielu silnikom (np. silnik1 i silnik2) to samo SensoryOutput (np. output1).
Ponadto można przypisać wartości z wielu czujników do jednego silnika (patrz następny rozdział).
Definiowanie czujników
W funkcji setup() należy zadeklarować, które czujniki będą częścią której wibracji silnika (SensoryOutput). Oto przykład, w jaki sposób definiujesz, że czujnik podłączony do Arduino Pin A0 powinien być tłumaczony na wibracje z silnikiem 1, a w konsekwencji wyjście1:
output1.include(A0);
Jeśli wiele wyjść sensorycznych ma być połączonych w ramach jednej wibracji silnika, możesz po prostu dodać kolejny pin wejścia analogowego do wyjścia 1:
output1.include(A1);
W przeciwnym razie po prostu kontynuuj z następnym wyjściem:
output2.include(A1);
Łączenie wielu czujników
Jak wspomniano powyżej, do jednego silnika można doprowadzić wiele wejść czujników (np. z A0, A1 i A2). Kod, który podaję, oblicza średnią wartości, które są odczytywane przez wszystkie dołączone czujniki. Tak więc, jeśli to wystarczy w twoim przypadku użycia i chcesz po prostu bezpośrednio odwzorować, na przykład, niski poziom bodźców sensorycznych na niskie wibracje, gotowe i nie musisz myśleć o następujących kwestiach:
Jeśli jednak masz inne pomysły na to, co chcesz zrobić z jednym lub wieloma nieprzetworzonymi danymi wejściowymi sensorycznymi, możesz dokonać odpowiednich zmian w funkcji int getValue() w klasie SensoryOutput:
int pobierzWartość(){
końcoweWyjście = 0; // DO ZROBIENIA rób co chcesz z wartościami sensorycznymi // tutaj budowana jest średnia, jeśli połączono wiele wartości for (int i = 0; i < curArrayLength; i++) { finalOutput += analogRead(valueArray); } return finalOutput / curArrayLength; }
4. Prześlij kod do swojego prototypu Arduino
Podłącz Arduino Prototype (z kroku 2) do komputera.
Kliknij Narzędzia → Port → Wybierz port, w którym Arduino/Genuino Uno jest napisane w nawiasach
Kliknij Narzędzia → Płytka → Arduino/Genuino Uno
Teraz silniki powinny pracować zgodnie z wejściami czujników analogowych. Jeśli chcesz, możesz odłączyć Arduino od komputera i podłączyć go do innego źródła zasilania, takiego jak bateria 9V.
Krok 4: Możliwe rozszerzenia
Zbudowany właśnie prototyp umożliwia wyłącznie wejścia analogowe i może napędzać do czterech silników. Co więcej, nie można go jeszcze nosić. Jeśli chcesz rozszerzyć te funkcje, zapoznaj się z poniższymi instrukcjami:
- Obejmuje obracające się masy silników ERM:
- Sprawianie, że SSAD nadaje się do noszenia:
- Korzystanie z więcej niż 4 silników - układanie wielu osłon silnika:
- Korzystanie z ultradźwiękowego czujnika zbliżeniowego jako wejścia SSAD:
Zalecana:
Nie siusiu, urządzenie do regulacji zachowania zwierząt, które powstrzymuje koty przed siusianiem w Twoim domu: 4 kroki
Nie siusiu teraz, urządzenie do regulacji zachowania zwierząt, które powstrzymuje koty przed siusianiem w twoim domu: Tak bardzo przeszkadzała mi moja kotka, że lubi sikać na moje łóżko, sprawdziłem wszystko, czego potrzebuje i zabrałem ją również do weterynarza. Po tym, jak załatwiłem wszystko, co mogłem pomyśleć i wysłuchałem słów lekarza, zdaję sobie sprawę, że po prostu ma złe zachowanie. Więc
Laserowe urządzenie antykradzieżowe: 4 kroki
Laserowe urządzenie antykradzieżowe: Jest tak wielu złodziei, którzy lubią najeżdżać dom innych ludzi i kraść ich rzeczy, co jest bardzo cenne, gdy ludzie śpią, więc tworzę to urządzenie, aby rozwiązać ten problem
Jak zrobić urządzenie dystansujące Arduino za pomocą PIR: 4 kroki?
Jak zrobić Arduino Social Distance Device z PIR: 1
Urządzenie ASS (antyspołeczne urządzenie społecznościowe): 7 kroków
Urządzenie ASS (Anti-Social Social Device): Załóżmy, że jesteś osobą, która lubi przebywać z ludźmi, ale nie lubi, gdy są zbyt blisko. Ty też podobasz się ludziom i trudno ci odmawiać ludziom. Więc nie wiesz, jak powiedzieć im, żeby się wycofali. No cóż, wejdź – Urządzenie ASS! T
Uczynienie SSAD poręcznym: 3 kroki
Uczynienie SSAD Wearable: Instructable Vibrotactile Sensory Substitution and Augmentation Device (https://www.instructables.com/id/Vibrotactile-Sens…) pokazuje, jak zbudować urządzenie, które przekształca bodźce czuciowe na bodźce wibracyjne. Te bodźce wibracyjne są p