Skocz do zawartości

Pochwal się nad czym właśnie pracujesz! Wspólny mini-worklog


Pomocna odpowiedź

(edytowany)

Wstęp do automatyki balkonowej 🙂 RPi, Domoticz i skrypt w Pythonie

image.thumb.png.decd6b8812c894938a4b2ad1160a258b.png

image.thumb.png.20c3c963bb534ebe9a5cb3edbb4cc3bc.png

 

Edytowano przez Gieneq
  • Lubię! 1
3 godziny temu, Gieneq napisał:

Wstęp do automatyki balkonowej 🙂 RPi, Domoticz i skrypt w Pythonie

Czy chodzi o sterowanie kolorem paska RGB? 🙂 Przepraszam, że dopytam, ale czy nie boisz się, że ta płytka z tranzystorami może w pewnym momencie "nasunąć się" na RPi i narobić szkód? 😉

(edytowany)

Urządzenie do diagnostyki układów AFS (automatycznego ustawiania świateł względem położenia kół skrętnych w samochodzie) 😉 

image0.thumb.jpg.346b800caa34f14614ffaeb667c093fd.jpgimage1.thumb.jpg.4f7924ecffb6d5763998dfbccad9f680.jpg

Przykładowy AFS oraz sterownik silnika

 

image5.thumb.jpg.7e0c6a4f831203873680e904e38c37c5.jpgimage2.thumb.jpg.c8fabb6cdaf58cd9802b7d8f11bbff67.jpg

A tutaj elementy urządzenia (stara wersja) 😉 
Po lewej sterownik LIN, po prawej płyta główna ver 0.1

Wszystko sterowane z poziomu Raspberry Pi Pico 😉 
Wbudowana obsługa LIN, kontroli nad analogowymi układami (silnik krokowy na A4988 i LEKTOR jako odczyt PWM) oraz CAN* (jeszcze nie zaimplementowane). Wysyłanie komend przez USB CDC.

Dwa pierwsze już działają poprawnie (dla dwóch modeli AFS, na których były testowane, reszta wyjdzie w praniu, ale pewnie stanie na kilku poprawkach w software (na PC)).

Aktualny czas pracy: około 1.5 miesiąca w wolnych chwilach

Do zrobienia: Obsługa CAN (MCP2515) i sterowania transoptorami do włączania świateł (12V@15A), poprawić system komend, by sprawdzał czy długość aktualnej jest prawidłowa (w tym momencie reaguje na \r\n) i wszystko co wyjdzie w praniu... 

Elektronika aktualnie jest na pająku (w zależności od potrzeb) i czekam na płytki z JLC, by już to poskładać do obudowy 😉 

EDIT2:
Transceiver na sterowniku LIN to TLIN2029DRQ1 (tak jakby ktoś kiedyś szukał) 😉 


 

Edytowano przez H1M4W4R1
  • Lubię! 2

@wn2001 To tak leży luzem, bo wyciągnąłem z obudowy. Docelowa obudowa właśnie schnie - jest to jedna ze skrzynek na rośliny, którą zaizolowałem od środka. Te tranzystory służą do sterowania wyświetlaczem 4x7-seg umieszczonym pod ruchomą deską od przodu skrzynki.

W systemie już są 2 czujniki pojemnościowe wilgotności gleby, termometr, czujnik nasłonecznienia. Skrzynka ma wyświetlacz 7-seg do podawania temperatury i zgłaszania uwag. Jeszcze chcę wyciągnąć oświetlenie na diodach WS2812B i umieścić pompę do podlewania sąsiednich skrzynek.

IMG_4095.thumb.jpg.b94eeed511f751b859864686c33892a6.jpgIMG_4097.thumb.jpg.9c15db7cf97fe02db52923bc1cb8f721.jpgIMG_4096.thumb.jpg.a65d9cb6039e5273bf51f30ebdd72740.jpg

IMG_4099.thumb.jpg.0cac6f24799de92079702e5be861dac6.jpg

  • Lubię! 1
Dnia 19.05.2021 o 10:51, ethanak napisał:

A zostało tam jeszcze miejsce na jakieś kwiatki?

O miejsce dla roślin to się nie martwię, bardzie martwi mnie estetyka wykonania, która jest tu najważniejsza. Ciemne kable jeszcze da się ukryć, ale rzucających się w oczy wężyków już nie. Dlatego plan awaryjny to tylko czujniki atmosferyczne + oświetlenie RGB.

  • Lubię! 1
16 minut temu, Gieneq napisał:

Ciemne kable jeszcze da się ukryć, ale rzucających się w oczy wężyków już nie.

E tam - w końcu o ile wiem jakiś talent plastyczny masz. A jak czegoś nie można ukryć to się tego nie ukrywa tylko robi tak, żeby wszyscy myśleli że tak trzeba i to specjalnie zrobione żeby było ładniej 🙂

Jak w teatrze nie mogłem schować dwóch 200W estradowych kolumn które musiały stać na scenie w określonym miejscu - to wkomponowaliśmy je w dekoracje...

Do poczytania: E. A. Poe, Skradziony list

 

  • Lubię! 1
  • 2 miesiące później...

W nawiązaniu do 

Testy z grubsza potwierdzają obliczenia, w prawdzie prototyp padł nieco wcześniej niż zakładałem ALE 😉 był wystawiony na ekstremalne temperatury parapet na stronie południowo -  zachodniej (odczytany rekord temperatury 58°C!), miał już nieco rozładowane baterie wyciągnięte z jakiegoś czegoś -  już nie pamiętam z czego. No i podczas testów niejedno zwarcie itd... Po jednej z burz został zalany. Niemniej trzeba powiedzieć że da się: esp może działać na bateriach, teraz trzeba wszystko pozbierać do kupy i opisać tak żeby wszyscy zainteresowani zrozumieli. No i nowa pcb, postaram się aby pracowała w lepszych warunkach.

1628025403084.thumb.jpg.49c92fdcb90de2e6337127eec2adaacf.jpg1628025539412.thumb.jpg.a97d15d20f7b7dbd88fd1f3a00988c4b.jpg

 

  • Lubię! 1
(edytowany)

Nie jest to projekt ale nauka i eksperymenty z uczeniem maszynowym. W końcu przekonałem się do Google Colab i idei notatników. Takie drobne porównanie uczenia sieci na zbiorze MNIST z różnym sprzętem. 25 epok, sieć oczywiście jest po 5 epoce przeuczona.

  • Desktop i7 9gen CPU: Time:  81.43139457702637 s
  • Desktop RTX2060 GPU: Time:  42.828622341156006 s
  • Colab None: Time:  115.74053525924683 s
  • Colab GPU: Time:  36.39394402503967 s
  • Colab TPU: Time:  142.82041001319885 s

Taka sieć jest dość mała i ciężko o jakieś większe wnioski, ale widać, że Google udostępnia za darmo całkiem dobry sprzęt i dla ciekawskich nawet jest odpowiedź na nasuwające się pytania:

image.thumb.png.e1d6189ce4f8283f29d2ea19162f9c18.png

I tu ciekawa informacja:

The types of GPUs that are available in Colab vary over time. This is necessary for Colab to be able to provide access to these resources for free. The GPUs available in Colab often include Nvidia K80s, T4s, P4s and P100s.

 

Edytowano przez Gieneq

@Gieneq Jeśli masz włączoną akcelerację GPU w colab to warto czasem uruchomić polecenie

!nvidia-smi

Wyświetla ono informacje o używanym sprzęcie, przykładowo:

obraz.thumb.png.f13791aef4d1948dccf683f692b5f03f.png

Teraz wystarczy wpisać w google "Tesla T4" i zobaczyć ile taka zabawka kosztuje. Ten akcelerator jest akurat dość tani, jakieś 12 tys. zł...

Ale można trafić na maszynki za kilka razy więcej - i wszystko za darmo 🙂

A przy okazji, cena tych akceleratorów pewnie jest jakoś powiązana z czasami działania, inaczej nikt by w nie tyle pieniędzy nie inwestował.

@Elvis Nie poszczęściło mi się, ale może kiedyś trafię na lepszy sprzęt 🙂 

image.thumb.png.2ee57c9c7828aba8a00b1182730ca195.png

10$/miesiąc w wersji pro nie jest takim wielkim wydatkiem jeżeli oczywiście często się z tego korzysta i priorytet w kolejce coś znaczy. Na razie zaczynam w tym temacie, przerobiłem połowę książki do Kerasa i chcę choć trochę lepiej zrozumieć temat CNN. 

Ta seria jest genialna, może komuś się przyda, dobrze jest wytłumaczony temat propagacji wstecznej:

 

  • 2 tygodnie później...

Mnie trochę poniosło...

WORD software[] = {
        ARGUMENT, 0x19,
        ARGUMENT, GPIO_OUT,
        CALLOS, GPIO_INIT,
        ARGUMENT, 0x19,
        ARGUMENT, 0x01,
        CALLOS, GPIO_SET_FUNCTION,
        WAIT, 500,
        ARGUMENT, 0x19,
        ARGUMENT, 0x00,
        CALLOS, GPIO_SET_FUNCTION,
        WAIT, 500,
        JUMP, 0x06
    };

Tak trochę bardzo... to jest Blinky napisane na Raspberry Pi Pico w emulatorze Assemblera napisanym w C++... Chyba czas odstawić herbatkę...

A tutaj wersja "mniej przejrzysta" 😄 

    WORD software[] = {
        ARGUMENT | FIRST_IS_ADDRESS, 0x18, // 0, 1
        ARGUMENT, GPIO_OUT, // 2, 3
        CALLOS, GPIO_INIT, // 4, 5
        ARGUMENT | FIRST_IS_ADDRESS, 0x18, // 6, 7
        ARGUMENT, 0x01, // 8, 9
        CALLOS, GPIO_SET_FUNCTION, // 10, 11
        WAIT | FIRST_IS_ADDRESS, 0x19, // 12, 13
        ARGUMENT | FIRST_IS_ADDRESS, 0x18, // 14, 15
        ARGUMENT, 0x00, // 16, 17
        CALLOS, GPIO_SET_FUNCTION, // 18, 19
        WAIT | FIRST_IS_ADDRESS, 0x19, // 20, 21
        JUMP, 0x06, // 22, 23
        0x19, 500, // 24, 25
    };

po prawej stronie decymalne adresy 😉 Jak widać emulator potrafi sobie poradzić ze znalezieniem wartości pod danym adresem (patrz 0x18 = 24 -> 0x19 oraz 0x19 = 25 -> 500), to dokładnie to samo co wyżej.

Ostatecznie ten kod w prekompilatorze będzie wyglądał w tym stylu (ale do tego jeszcze długa droga...)

assign gpio 0x19
assign delay 0d500

arg @gpio
arg 0x01
call GPIO_INIT
label: arg @gpio
arg 0x01
call GPIO_SET
wait @delay
arg @gpio
arg 0x00
call GPIO_SET
wait @delay
jump label

Plany są... gorzej z wykonaniem -,- 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...