Jak zrobić but z automatycznym sznurowaniem za pomocą Arduino?

W dzisiejszych czasach naukowcy i inżynierowie starają się wszystko zautomatyzować. Oznacza to, że wszystko będzie działało samo bez żadnego ludzkiego wysiłku. W społeczeństwie zidentyfikowano bardzo częsty problem polegający na tym, że niektórzy ludzie mają problem z samodzielnym zawiązaniem sznurowadeł. Są to osoby niepełnosprawne, cierpiące na bóle pleców, dzieci i do pewnego stopnia niewidomi. Należy więc znaleźć rozwiązanie, aby ci ludzie nie postrzegali tego jako problemu.



Zdjęcie zaczerpnięte z instrukcji

W tym projekcie zamierzamy zrobić pokaz automatycznego sznurowania, który automatycznie zawiązuje sznurówki bez żadnego ludzkiego wysiłku. Zrobi to za pomocą płytki mikrokontrolera, czujnika osłony silnika i serwomotoru, gdy tylko włoży się stopę do buta.



Jak automatycznie zasznurować swój program za pomocą Arduino?

Teraz, gdy znamy streszczenie projektu, zacznijmy zbierać więcej informacji i przejdźmy przez procedurę wykonania tego buta AutoLace za pomocą Arduino.



Krok 1: Zbieranie komponentów

Najlepszym podejściem do rozpoczęcia każdego projektu jest sporządzenie listy komponentów i przejrzenie ich krótkiej analizy, ponieważ nikt nie będzie chciał pozostać w środku projektu tylko z powodu brakującego komponentu. Poniżej znajduje się lista komponentów, których będziemy używać w tym projekcie:



  • Arduino uno
  • Osłona silnika
  • Siłownik
  • Siła
  • DOPROWADZIŁO
  • Rezystor 1k-ohm
  • But
  • Blaszka
  • Plastikowe opaski na zamek
  • 1/8
  • Przewody połączeniowe
  • Bateria

Krok 2: Badanie komponentów

Teraz, gdy znamy streszczenie naszego projektu i mamy również pełną listę wszystkich komponentów, przejdźmy o krok do przodu i przeprowadźmy krótkie badanie komponentów, których będziemy używać.

Seeeduino v4.2 to jedna z najlepszych na świecie płyt kompatybilnych z Arduino, oparta na mikrokontrolerze Atmega 328 MCU. ponieważ jest łatwy w użyciu, stabilniejszy i wygląda lepiej niż wiele innych płyt. Oparty jest o bootloader Arduino. ma ATMEGA16U2 jako konwerter UART-na-USB, ponieważ może być używany jako układ FTDI. jest podłączony do komputera za pomocą kabla micro USB, który jest ogólnie nazywany kablem Android. Do zasilania płyty można również użyć gniazda DC. moc wejściowa musi wynosić od 7 V do 15 V.

Deska Seeeduino



Osłona silnika Arduino umożliwia bezproblemową kontrolę kierunku i prędkości silnika za pomocą Arduino. Umożliwiając po prostu adresowanie pinów Arduino, ułatwia to wprowadzenie dowolnego silnika do Twojego przedsiębiorstwa. Dodatkowo daje możliwość sterowania silnikiem o innym zasilaniu do 12v. A co najważniejsze, tarcza jest bardzo łatwa do znalezienia. Z tych wszystkich powodów Arduino Motor Shield to trochę fajne, które można mieć w swoim arsenale do szybkiego prototypowania i ogólnych eksperymentów.

Osłona silnika

Rezystory czujnika siły (FSR) to bardzo proste i łatwe w użyciu czujniki ciśnienia. Zablokowanie FSR zależy od wagi przyłożonej do wykrywanego obszaru. Im większą wagę przyłożysz, tym mniejszy opór. Zakres przeszkód jest dość duży:> 10 MΩ (bez masy) do ~ 200 Ω (maksymalna waga). Większość FSR może wykryć moc w zakresie od 100 g do 10 kg. FSR składa się z dwóch warstw i kleju dystansowego. Warstwy przewodzące są izolowane cienką szczeliną powietrzną, gdy nie jest przyłożony ciężar. Jeden z filmów zawiera dwa ślady biegnące od ogona do obszaru wykrywania (część okrągła). Te ślady są tkane razem, ale nie stykają się. Drugi film pokryty jest wiodącym atramentem. Kiedy naciskasz na czujnik, tusz zdziera dwa ślady razem z opcją zależną od ciężaru.

Czujnik siły

DO Siłownik to siłownik obrotowy lub liniowy, który można sterować i przesuwać z dokładnym przyrostem. Silniki te różnią się od silników prądu stałego. Silniki te umożliwiają precyzyjną kontrolę ruchu kątowego lub obrotowego. Silnik ten jest połączony z czujnikiem, który przesyła informację zwrotną o jego ruchu.

Servo Moto

Krok 3: Zasada działania

Zasada działania tego projektu jest bardzo prosta. Czujnik siły zostanie użyty do wykrycia, czy stopa jest umieszczona w pokazie, czy nie. Jeśli wykryje stopę, wyśle ​​sygnał do płytki Arduino, która poruszy serwomotor za pomocą osłony silnika Arduino. Ten serwomotor będzie się poruszał w taki sposób, że pociągnie wszystkie sznurówki na raz. Stąd automatyczne wiązanie wszystkich sznurówek buta.

Krok 4: Montaż komponentów

Teraz, gdy znamy główny pomysł i zasadę działania tego projektu, przejdźmy o krok do przodu i zacznijmy składać wszystko, aby stworzyć pokaz, który automatycznie się uruchomi. Aby wykonać produkt końcowy, wykonaj poniższe czynności:

  1. Przede wszystkim przytnij małą metalową płytkę, aby była przymocowana z tyłu programu. Użyj syntetycznego, aby trwale się utrwalił i nie poluzował. Upewnij się, że zostawiłeś przerwę między metalową płytą a pokazem, ponieważ przez tę szczelinę przeciągniemy kilka opasek kablowych.
  2. Teraz weź dwa serwomotory i przymocuj je do metalowej płytki za pomocą gorącego kleju. Teraz, aby je zamocować na stałe, użyj opasek zaciskowych wokół nich, aby te serwomotory nie poruszały się później. Gdy serwomotory zaczną działać, odetnij dodatkowy kabel, który pozostał.
  3. Teraz zamontuj obudowę akumulatora pod silnikami, tak aby wyłącznik zasilania był na zewnątrz.
  4. Teraz podłącz płytkę Arduino do silników. Przed połączeniem osłony silnika z Arduino należy do obwodu dodać kilka rzeczy.
  5. Weź diodę LED i przylutuj rezystor do jej dodatniej nogi i przylutuj krótki odcinek przewodu do ujemnej nogi i drugiej odnogi rezystora. Następnie podłącz ten zespół do Arduino i wepchnij go do jednego z nieużywanych gniazd sznurowadeł.
  6. Teraz weź Czujnik siły i umieść go w butach w miejscu, w którym spoczywa pięta. nie zaleca się lutowania pinów czujnika siły, ponieważ ciepło lutownicy może stopić plastik czujnika. Więc lepiej, jeśli go przykleisz lub zaklejasz taśmą.
  7. Na koniec użyj opaski zaciskowej, aby związać wszystkie sznurowadła z serwomotorem, aby gdy silnik się obrócił, pociągnął wszystkie sznurówki na raz.

Upewnij się, że dodatni przewód diody LED jest podłączony do pinu 2 Arduino. Vcc i pin uziemienia czujnika siły zostaną podłączone do 5 V, a masa Arduino, a pin IN czujnika siły zostanie podłączony do styku A0 płyty Arduino. Na koniec ostrożnie podłącz wtyki serwomotoru do osłony silnika, aby uniknąć niewłaściwego połączenia.

Krok 5: Pierwsze kroki z Arduino

Jeśli wcześniej nie znasz Arduino IDE, nie martw się, ponieważ poniżej możesz zobaczyć wyraźne kroki nagrywania kodu na płycie mikrokontrolera za pomocą Arduino IDE. Możesz pobrać najnowszą wersję Arduino IDE z tutaj i wykonaj kroki wymienione poniżej:

  1. Gdy płytka Arduino jest podłączona do komputera, otwórz „Panel sterowania” i kliknij „Sprzęt i dźwięk”. Następnie kliknij „Urządzenia i drukarki”. Znajdź nazwę portu, do którego jest podłączona płyta Arduino. W moim przypadku jest to „COM14”, ale na Twoim komputerze może wyglądać inaczej.

    Znajdowanie portu

  2. Będziemy musieli dołączyć bibliotekę do korzystania z silnika serwo. Biblioteka jest dołączona poniżej w linku do pobrania wraz z kodem. Iść do Szkic> Dołącz bibliotekę> Dodaj bibliotekę .ZIP.

    Uwzględnij bibliotekę

  3. Teraz otwórz Arduino IDE. W Narzędziach ustaw płytę Arduino na Arduino / Genuino UNO.

    Tablica nastawcza

  4. Z tego samego menu Narzędzia ustaw numer portu, który widziałeś w panelu sterowania.

    Ustawianie portu

  5. Pobierz załączony poniżej kod i skopiuj go do swojego IDE. Aby przesłać kod, kliknij przycisk przesyłania.

    Przekazać plik

Możesz pobrać kod przez klikając tutaj.

Krok 6: Kod

Kod jest dość dobrze skomentowany i nie wymaga objaśnień. Mimo to kod jest pokrótce wyjaśniony poniżej.

1. Na starcie dołączona jest specjalna biblioteka, aby serwomotor mógł być zintegrowany z płytką mikrokontrolera i przez nią programowany. Tworzone są dwa obiekty do użycia z serwomotorem. Inicjalizowane są niektóre piny lub Arduino, które zostaną podłączone do sterownika silnika, a także zadeklarowane są niektóre zmienne, które zapiszą pewne tymczasowe wartości, które zostaną później wykorzystane w głównym programie.

#include // dołącz bibliotekę do interfejsu serwomotoru z płytką mikrokontrolera Servo myservo; // tworzy serwo objec 1 Servo myservo2; // utwórz obiekt serwomechanizmu 2 int forcePin = 0; // analogowy pin 0 podłączony do czujnika siły int ledPin = 2; // cyfrowy pin 2 podłączony do LED int switchPin = 19; // ustawia przełącznik odblokowania na analogowy pin 5 int valF; // wartość czujnika siły int valS; // wartość przełącznika int thresHold = 500; // definiuje próg ciśnienia czujnika siły int servoUnlock = 0; // ustawia serwomechanizm główny w neutralnej pozycji nielasowanej (0 stopni) int servoLock = 180; // ustawia serwomechanizm główny w pozycji sznurowanej (180 stopni) int servoUnlock2 = 180; // ustawia serwomechanizm pomocniczy w neutralnej pozycji nielasowanej (0 stopni) int servoLock2 = 0; // ustawia serwomechanizm pomocniczy w pozycji sznurowanej (180 stopni)

2. void setup () jest funkcją, która działa tylko raz podczas startu, gdy mikrokontroler jest zasilany lub wciśnięty jest przycisk włączania. W tej funkcji piny Arduino są inicjalizowane do użycia jako WEJŚCIE lub WYJŚCIE. Obiekty, które wcześniej zostały utworzone dla serwomotoru, są używane do mocowania serwomotoru do określonego pinu na płycie Arduino, a serwo jest przenoszone do początkowego stanu nieplasowanego. W tej funkcji ustawia się również szybkość transmisji. Szybkość transmisji to prędkość w bitach na sekundę, z jaką mikrokontroler komunikuje się z podłączonymi urządzeniami zewnętrznymi.

void setup () {Serial.begin // ustawianie prędkości transmisji mikrokontrolera pinMode (ledPin, OUTPUT); // cyfrowy pin 2 jest wyprowadzany dla LED pinMode (switchPin, INPUT); // analogowy pin 5 jest wejściem dla przełącznika myservo.attach (9); // dołącza serwa do pinów 9 myservo2.attach (10); // dołącza serwa do pinów 10 myservo.write (servoUnlock); // przenieś serwo 1 na nielasowane pozycje myservo2.write (servoUnlock2); // przesuń serwo 2 do nielasowanych pozycji}

3. void loop () to funkcja, która jest wykonywana wielokrotnie w pętli. Najpierw czujnik siły odczytuje wartość analogową. Następnie czeka, aż wartość czujnika siły przekroczy wartość progową. Poczeka, aż stopa całkowicie się uspokoi i ustawi oba serwomechanizmy w pozycji zablokowanej. Jeśli przełączniki zostaną wciśnięte, serwo zostanie odblokowane i będzie czekało, aż dioda LED zaświeci siedem razy.

void loop () {valF = analogRead (forcePin); // odczyt wartości czujnika siły valS = digitalRead (switchPin); // odczytaj wartość przełącznika if (valF> = thresHold) {// czeka, aż czujnik siły wyrówna lub przekroczy próg ciśnienia, a następnie: delay (1000); // czeka, aż stopa ułoży się na miejscu w bucie myservo2.write (servoLock2); // ustawia pomocnicze serwomechanizm na opóźnienie pozycji zablokowanej (1000); // czeka jedną sekundę myservo.write (servoLock); // ustawia serwomechanizm główny na opóźnienie pozycji zablokowanej (1000); // czeka jedną sekundę digitalWrite (ledPin, HIGH); // włącza diodę LED do odblokowania serwomechanizmu. Usuń tę linię, aby oszczędzać baterię. } if (valS == HIGH) {// czeka na naciśnięcie przełącznika, a następnie: myservo2.write (servoUnlock2); // odblokowuje dodatkowe opóźnienie serwomechanizmu (1000); // czeka dwie sekundy myservo.write (servoUnlock); // odblokowuje główne opóźnienie serwomechanizmu (500); // czekaj, a następnie mrugnij 7 razy dioda LED digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); opóźnienie (200); digitalWrite (ledPin, HIGH); opóźnienie (200); digitalWrite (ledPin, LOW); // wyłącza opóźnienie LED (1000); }}

Tak więc wyglądała cała procedura tworzenia pokazu, który samoczynnie zawiązuje sznurowadła za pomocą serwomotoru, mikrokontrolera i osłony silnika. Teraz, gdy znasz całą procedurę, ciesz się pokazem AutoLacing w swoim domu.