Kerbal Space Program i elektronika

Kerbal Space program to jedna z moich ulubionych gier Indie. Opowiada o fikcyjnej planecie Kerbin, którą zamieszkują Kerbale. Fabuła opiera się na tym, że postanowiły stworzyć swój własny program badania kosmosu.

image
Próbuję zadokować do stacji kosmicznej, żeby uratować jej załogę.

W grze wcielamy się w konstruktora rakiet oraz ich pilota. Rakiety buduje się od podstaw samodzielnie wybierając części i budując z nich pojazdy kosmiczne, którymi potem latasz. Można budować, samoloty, łaziki i statki kosmiczne, którymi przeprowadzasz badania kosmosu i innych planet.

image
Obraz pochodzi z komiksu internetowego XKCD

Gra ma bardzo rozbudowaną fizykę, dzięki której łatwiej nauczysz się w praktyce mechaniki orbitalnej.

Ale co robi gra na blogu sklepu dla konstruktorów sprzętu elektronicznego?
Otóż człowiek o nicku zitronen stworzył do niej mod (plugin do gry), który pozwala na komunikację gry z Arduino. Gra przesyła do niego informację przez USB/Serial o parametrach pojazdu, którym sterujesz.

Plugin i format danych jaki przesyła do Arduino są opisane na forum:

Autor zrobił go ponieważ chciał zbudować wyświetlacz parametrów statku kosmicznego. Co mu się wspaniale udało:

image
Zdjęcie pochodzi z forum Kerbal Space Program

Plugin stał się inspiracją dla innych. Gracze stworzyli własne panele rakietowe.

image
Zdjęcie pochodzi z forum Kerbal Space Program

image
Zdjęcie pochodzi z forum Kerbal Space Program

image
Zdjęcie pochodzi z forum Kerbal Space Program

Dokładny opis budowy paneli wraz z kodami źródłowymi znajduje się w linkach pod zdjęciami.


Kerbale przechodzą z uszkodzonej stacji kosmicznej do rakiety-lądownika

Jeśli chcesz zbudować taki panel to Arduino i wyświetlacze kupisz w naszym sklepie Nettigo.

sprae

Kalkulator – Zrób to sam

Kalkulator to też wymarłe urządzenie. Większość gimnazjalistów kojarzy go z aplikacją w telefonie ;-).


Zdjęcie pochodzi ze strony Simpleavr

Na stronie Simpleavr.com pojawił się projekt takiego kalkulatora. Zbudowany jest w oparciu o kontroler MSP430 i ten fajny miniaturowy wyświetlacz bąbelkowy. Nawiasem mówiąc, ten wyświetlacz będzie niedługo dostępny w sklepie Nettigo.

Kalkulator to niby żaden ekscytujący, praktyczny projekt, ale stworzenie do niego programu jest prawdziwą przygoda dla początkujących. Uczy myślenia i zrozumienia pewnych mechanizmów interakcji z użyszkodnikiem.
Bo czy umiesz napisać program tak, by wpisując kolejne cyfry, liczba na wyświetlaczu przesuwała się rosnąc w lewo?

Jeśli nie masz pomysłu na kolejny projekt zwiększający twojego skila – spróbuj projekt kalkulatora.

sprae

RS232 i Arduino – jak połączyć?

Czasem ktoś z naszych przyjaciół pyta jak połączyć Arduino z RS232. Oto odpowiedź.

Arduino ma cały niezbędny hardware do obsługi protokołu. Różnice ze standardem polegają tylko na poziomach stanów logicznych. Port szeregowy w Arduino pracuje najczęściej w standardzie TTL czyli ma napięcia 5 V dla stanu wysokiego, lub 0 V dla stanu niskiego.

W standardzie RS232 informacje przesyła się za pomocą stanów logicznych +12 V dla stanu wysokiego i -12 V dla stanu niskiego. Do pogodzenia tych dwóch światów służy adapter konwertera MAX3232.

Jest to mała płytka do której podłącza się z jednej strony urządzenie szeregowe TTL 5V lub 3.3V, a z drugiej wtyczkę RS232 standardu +/-12V.

Wyprowadzenia płytki są następujące

  • 3V-5.5V – wejście zasilania
  • GND – masa
  • T1OUT – pierwsze wyjście standardu RS232
  • T2OUT – drugie wyjście standardu RS232
  • R1IN – pierwsze wejście standardu RS232
  • R2IN – drugie wejście standardu RS232
  • T1IN – pierwsze wejście standardu TTL
  • T2IN – drugie wejście standardu TTL
  • R1OUT – pierwsze wyjście standardu TTL
  • R2OUT – drugie wyjście standardu TTL

Wejścia i wyjścia różnych standardów połączone są w następujący sposób:

  • T1IN [TTL] -> T1OUT [RS232]
  • T2IN [TTL] -> T2OUT [RS232]
  • R1IN [RS232] -> R1OUT [TTL]
  • R2IN [RS232] -> R2OUT [TTL]

W Arduino występują 2 główne sygnały RS232. Są to:

  • DIGITAL Pin 0 <RX – Odbieranie danych szeregowych
  • DIGITAL Pin 1 >TX – Wysyłanie danych szeregowych

Podłączenie do Arduino jest proste. Użyłem jednego wejścia do wysyłania danych i jednego do odbierania danych.

  • RX <- R1OUT
  • TX -> T1IN

Do wtyczki RS232 podłączam sygnały:

  • T1OUT do TxD
  • R1IN do RxD
  • GND do GND

Do komunikacji w programie poprzez RS232 na Arduino używa się standardowo obiektu Serial.

Należy uważać na to, że w Arduino UNO sygnały RX i TX podłączone są też ze złączem USB. Dlatego nie zalcam używać na raz adapteru i łącza USB. Może dość do kolizji sygnałów i błędnych odczytów.

Jeśli potrzebujesz niezależnego USB i portu szeregowego, kup Arduino Leonardo, albo Arduino Mega. Tam niezależy port szeregowy używa obiektu Serial1.

Małe robociki z ATtiny

Pff, roboty. Dziś są ich miliony. Na każdym Hackerspace znajdzie się choć jedna osoba robiąca robota/drona. Te są trochę inne.

image

Zdjęcie pochodzi ze strony Hackaday.io

Są to samojezdne roboty na bazie kontrolera ATtiny85, oraz dwóch silniczków od wibratorów z telefonu. Każdy z nich ma inaczej skonfigurowane “oczy” czyli zespół diody i fototranzystora. Decyduje to o ich strategii działania.

Pierwszy ma dwa fototranzystory i diodę skierowaną w dół i jest tradycyjnym line-followerem.

Drugi ma fototranzystory skierowane w dół i w przód i pełni rolę robota śledzącego światło.

Ostatni ma LED skierowane pod kątem 45 stopni i fototranzystor skierowany w przód. Ma on wykrywać światło odbite od przeszkód i omijać je.

Oczywiście są małe i fajne, ale pokazuje ci ten projekt bo coś innego mnie w nich zafascynowało. Autor stara się stworzyć między nimi komunikację za pomocą światła i jakiegoś protokołu. Wszystko to po to by wspólnie sobie radziły mimo różnych cech.

Dla mnie jako programisty to bardzo fajny problem do rozwiązywania, dający dużo możliwości.

Autorem projektu jest shlonkin.

Miniaturowy budzik

Wydawało by się, że budziki umarły razem z zegarkami na rękę wraz z upowszechnieniem telefonów komórkowych.
Dla mnie zegarki wcale są niepotrzebne. Jednak jak zwykle urzekł mnie projekt, który jest wyjątkowo mały i zmyślny.

image

Zdjęcie pochodzi z forum DangerousPrototypes

Jest to maleńki budzik zbudowany na płytce uniwersalnej. Jego autorem jest Markus Gritsch, użytkownik forum DangerusPrototypes.com.

Budzik jest zbudowany na bazie 7 segmentowego wyświetlacza bąbelkowego. Takiego jaki został użyty we wcześniej opisanym mierniku wysokości.
Kontroler użyty w zegarku to niedoceniany MSP430 firmy TI. Jego zaletą jest bardzo niski pobór prądu i cena w okolicach $1.
Budzik oczywiście wyposażony jest w głośniczek do budzenia i 2 przyciski.

Zegarek zasilany jest jedną baterią AAA.

sprae

Odbiornik internetowego radia na Raspberry PI

Wielbiciele stacji radiowych mają dziś ciekawe życie. Fale elektromagnetyczne o ograniczonym zakresie zastąpił internet. Można w nim znaleźć nie tylko lokalne stacje, ale też ciekawe stacje z innych miast, a nawet krajów. Dodatkowym atutem jest to, że można słuchać rozgłośni niezależnych występujących tylko w internecie.


Zdjęcie pochodzi z portalu Element14

Fvan – członek portalu element14 stworzył ciekawą wersję własnego radioodbiornika internetowego opartego na Raspberry PI.

Części, które użył do jego budowy to:

Całe oprogramowanie napisał w języku Python, wykorzystując do tego program odtwarzacza MPC. Język jest na tyle prosty, że z pewnością będziesz mógł dostosować go do swoich własnych rozwiązań.

sprae