Elektrycznie bujane łóżeczko, cz.1, Test pierwszego prototypu z silnikiem krokowym, RPi 3, driver TB6560
Projekt stworzony z myślą o jednej z większych przyjemności każdego człowieka, tym razem coś dla małych ludzi 🙂
Dzieci mają kilka podstawowych potrzeb, Sen jest kluczowy również dla rodziców, stąd wziął się pomysł stworzenia rozwiązania pomocnego dla obu stron.
Miejsce i sposób na sen
Contents
Dzieci zasypiają w różnych miejscach, najczęściej w ramionach rodziców, zwłaszcza gdy są niespokojne i potrzebują bliskości.
Więc nie ma najlepszego rozwiązania dla wszystkich.
Dla opiekunów i rodziców dzieci, które pozwalają usypiać się w łóżeczkach bujanych dedykuję poniższe rozwiązanie!
Bujaj się!
Dzieci bywają wymagające, gdy sen nie przychodzi, rodzice przytłoczeni innymi obowiązkami mogą również być zniecierpliwieni, stąd rozwiązaniem może okazać się elektrycznie bujane łóżeczko, czyli w skrócie: Łóżko elektryczne 😉
Jak działa elektrycznie bujane łóżeczko?
Rozwiązanie jest dość proste technicznie.
Ruch wahadłowy wywołuje silnik zamocowany bezpośrednio do osi kołyski łóżeczka.
Kąt ruchu w obecnej wersji jest niewielki, rzędu 20-30 stopni, dlatego moment obrotowy silnika musi być wystarczający by rozpędzić i utrzymać ruch wachadłowy.
Elementy wchodzące w skład prototypu
- silnik krokowy, moment obrotowy 56N/cm
- Sterownik silnika krokowego
- łożyska do osi kołyski
- elementy metalowe, kątowniki, osie. w prototypowej wersji łóżeczka elektrycznego wykorzystałem kilka elementów z działu budowlanego, a dokładnie metalowego.
Silnik krokowy
59Ncm Nema 17 Stepper Motor
Manufacturer Part Number | 17HS19-2004S1 |
Step Angle | 1.8° |
Step Accuracy | 5% |
Holding Torque | 59Ncm(83.6oz.in) |
Rated Current/phase | 2.0A |
Phase Resistance | 1.4ohms |
Voltage | 2.8V |
Inductance | 3.0mH±20%(1KHz) |
Weight | 400g |
Sterownik silnika krokowego
TB6560 Router 1 Axis 3A Schrittmotor Steuerung Stepper Motor Board DE TE218
Features
● Working voltage DC 10V-35V. Recommended to use a switching power supply DC24V power supply.
● 6N137 high-speed optical coupling, guarantee high speed without losing step.
● Using the TB6560AHQ chip with low voltage shutdown, overheating stop and overcurrent protection circuit to ensure optimal performance.
● Rated maximum output: ± 3A, peak 3.5A.
● For two-phase within 42,57 stepping 3A / four-phase / of line four / six-wire stepper motor, and is not suitable for more than 3A stepper motor.
● Automatic half current function.
● Subdivision: whole step, half-step, step 1/8, 1/16 step, a maximum of 16 subdivisions.
Specification
● Working voltage:DC 10-35V
● Rated maximum output: ± 3A, peak 3.5A.
● Main color:Green
● Size:75 x 50 x 33mm
● Net weight:83g
Łożyska do osi
2 Pcs * KFL08 FL08 flange bearing with pillow block 8mm
Specification
Kolejne kroki wykonania prototypu
Konfigracja Raspberry PI
Wersja RPI lite:
https://www.raspberrypi.org/downloads/raspbian/
https://downloads.raspberrypi.org/raspbian_lite_latest
Konfiguracja
- logowanie
- ssh
- kamera
- localhost
- klawiatura
- kzyl
- lokalizacja
Oprogramowanie, kod źródłowy
Środowisko oprogramowania
Oprogramowanie działa w systemie Linux debian jessie.
Kod programu został stworzony na pythonie
Sterowanie wyjściami portu GPIO
Program sterujący silnik krokowy
Pierwsza wersja prototypu jest wersją ograniczoną do rozpedzenia kolyski i utrzymania ruchu wachadlowego.
Ważne było sprawdzenie możliwości silnika w kontekście ruchu wachadłowego z dzieckiem oraz bez niego.
Okazuje się, że o ile rozpędzenie łóżeczka nie jest problemem to jego utrzymanie z dzieckiem, które się rusza to wyzwanie wychodzące poza ten obecny prototyp.
Dziecko może poruszać się łatwo na lewo i prawo, przez to sprawia opór silnikowi w trakcie jego ruchu.
okazuje się, że w modelowej sytuacji układ sterowania nieuzbrojony w czujniki byłby wystarczający, gdyż łatwo jest wyznaczyć na podstawie ciężaru, bezwładnośći oczekiwany ruch kołyski.
Więc obecna wersja oprogramowania jak i rozwiązanie mechanizmu ruchu nie jest wystarczające i będzie konieczne stworzenie drugiej, ulepszonej wersji łóżeczka elektrycznego.
Kod źródłowy kołyski elektrycznej napisanego w języku Python
Przy wykorzystanym sterowniku silnika krokowego odpada myślenie o każdym kroku silnika, więc pozostaje tylko napisanie programu do zarządzania ruchemsilnika.
Driver oparty o układ scalony TB6560 ma 3 wejścia sterujące:
- clock – częstotliwość ruchu silnika, GPIO 11
- LEFTRIGHT – wejście pozwalajace na wybór kierunku ruchu silnika, GPIO 13
- enable – TRUE = włączenie silnika w obwód elektryczny, w tym stanie silnik nie wykonuje ruchu ale też nie pozwala na obrót osi, gdyż płynący prąd utrzymuje silnik w stanie zablokowania, GPIO 15
Sterowanie ruchem silnika
W programie jest kilka funkcji odpowiedzialnych za sterownanie ruchem silnika w lewo (left) w prawo (right) oraz funkcje odpowidzialne za start silnika (starter) przy obciążeniu ruchem bezwładności kołyski w celu jej rozbujania
oraz do utrzymania ruchu (normal).
Jest jeszcze kilka zmiennych które są istotne z punktu praktycznego: zmienna half jest użyta by na starcie ruchu wachadłowego wykonać tylko połowę zadanych kroków, wykonujac ruch od punktu startowego do lewej/prawej strony, nastepnie wachadlo przemieszcza sie od lewej do prawej strony.
Zakonczenie ruchu silnika rowniez powinny odbywac sie wedle tej zasady, czyli ruch silnika powinien zakonczyc sie tam gdzie sie zaczal: po srodku.
Wynika to z faktu, że ruch zaczyna się od położenia w połowie ruchu wachadlowego, gdy kolyska znajduje sie w stanie spoczynkowym.
Ruch do punktow granicznych powinien tez brac pod uwage stan bezwladnosci stad w programie zmienna pause, ktora ma za zadanie odczekac 1..3 cykle aby kolyska w czasie ‘zawracania’ nie byla poddawana silom.
Byc moze silnik w tym stanie powinien zostac wylaczony, aby nie zaklocac naturalnego ruchu bezwladnosci kolyski
Koniec ruchu
Końcowe ustawienia silnika po wykonaniu programu ustawiają wyjście GPIO 15 w stanie nieaktywnym, dzięki czemu możliwe jest manualne bujanie kołyski.
To bardzo istotne z punktu widzenia użytkownika, by praca w trybie automatycznym nie wykluczała pracy w trybie manualnym, aby możliwe było również wkorzystanie łóżeczka w podstawowej wersji bez napędu elektrycznego kołyski.
Co dalej?
To nie koniec, okazuje się, że jest wiele kwestii, które wymagają stworzenia bardziej zaawansowanego mechanizmu oraz programu wykorzystujących czujniki, synchronizując ruch wachadłowy kołyski oraz ruch silnika.
Druga część artykułu znajduje się tutaj:
Elektrycznie bujane łóżeczko, cz.2, Druga wersja łóżeczka bujanego z czujnikami pozycji
Inne rozwiązanie
Jako ciekawostkę podaję link do filmu na Youtube z wykorzystaniem silnika do wycieraczki