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.

łóżeczko z silnikiem krokowym
Fotografia przedstawia widok łóżeczka od strony osi ruchu z zamocowanym silnikiem krokowym

 

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

Product Name KFL08 Flange Bearing
Block Model    FL08
Bore Diameter 8mm / 0.31″
Color: Gray
Material: Zinc Alloy

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

http://ddi.uni-wuppertal.de/material/materialsammlung/mittelstufe/raspberry/ab_04_gpio_python_direkt.pdf

 

Zasilanie silnika elektrycznego, sterowanik do silnika krokowego oraz płytka sterowania z płytą Rpi v3
Zasilanie silnika elektrycznego, sterowanik do silnika krokowego oraz płytka sterowania z płytą Rpi v3

 

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

Tom Sapletta
Facebooktwitterredditpinterestlinkedinmail

Author: Tom Sapletta

Łączę doświadczenie z nowymi technologiami. Od 10 roku życia jestem pasjonatem komputerów i programowania. Moim pierwszym (mikro)komputerem był ZX-Spectrum a językiem programowania: Basic. Od 2010 roku programuję zawodowo, objektowo i funkcjonalnie w architekturach monolitycznych i mikro-usługowych. Obecnie tworzę architekturę ekosystemów dla liderów rynku w firmie Softreck.