Spisu treści:

Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD): 4 kroki
Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD): 4 kroki

Wideo: Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD): 4 kroki

Wideo: Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD): 4 kroki
Wideo: Parkinson's and the Great Outdoors 2024, Lipiec
Anonim
Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD)
Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD)
Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD)
Urządzenie do wibrodotykowej substytucji i augmentacji sensorycznej (SSAD)

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

Lutowanie
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…):

  1. Najpierw włóż nagłówki do układania w szpilki w Arduino Uno,
  2. Następnie umieść tarczę na górze tak, aby wystawał krótszy bok szpilek.
  3. 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ć:

  1. 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.
  2. Zlutuj je, dotykając gwintów obu przewodów i pozwalając, aby lut spłynął po nich.

Krok 2: Okablowanie

Okablowanie
Okablowanie
  1. Ułóż motorshield na Arduino.
  2. Wkręcić silniki w osłonę silnika.
  3. 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

Kodowanie
Kodowanie
Kodowanie
Kodowanie
Kodowanie
Kodowanie
Kodowanie
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:

  1. Kliknij: Narzędzia → Zarządzaj bibliotekami…
  2. Poszukaj „Biblioteki Adafruit Motor Shield V2” w polu Filtruj swoje wyszukiwanie
  3. 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

Możliwe rozszerzenia
Możliwe rozszerzenia
Możliwe rozszerzenia
Możliwe rozszerzenia
Możliwe rozszerzenia
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: