Najłatwiejszy gimbal do kamery jaki widziałem

Gimbal do kamery to urządzenie, które pozwala się nią zdalnie “rozglądać”. Dzięki rozwojowi techniki dziś mamy tanie czujniki położenia. Pozwalają one stabilizować obraz kamery, tak by patrzyła w jeden punkt mimo drgań operatora albo pojazdu na którym jest zamontowana.

Użytkownik o nicku Crezzee zbudował prosty gimbal na bazie 2 serwomechanizmów stabilizujący obraz nagrywany z pokładu jego drona.

O tym jak zbudować gimbal możesz zobaczyć na poście autora na forum Rcgroups.com

Super Simple Gimbal – SSG – KK2.1 & OpenPilot support

Taki stabilizator możesz zbudować sobie sam, gdyż w Nettigo dostępne są odpowiednie czujniki położenia.

Czujniki te zamierzam opisać w przyszłym tygodniu na Akademii. Jeśli macie jakieś pytania i prośby o sprawdzenie w nich konkretnych rzeczy to proszę śmiało w komentarzach. 

sprae

Windows blokowane kluczykiem

Windows blokowane kluczykiem

Jak odczytać liczby z Monitora portu Szeregowego?

Czasami zachodzi potrzeba odczytania liczby z Monitora portu szeregowego, by sterować programem w Arduino.

void setup()
{
  // Ustawianie serial
  while(!Serial);
  Serial.begin(9600);
  
  // Ustawianie pinu 13 jako wyjście
  pinMode(13, OUTPUT);
}

void loop()
{
  // Odczyt liczby z serial
  int number = Serial.parseInt();
  // Sprawdzanie czy liczba jest większa niż 1000
  if (number > 1000)
  {
    digitalWrite(13, HIGH); // Włączenie diody L
  }
  
  // Jak liczba jest mniejsza
  else
  {
    digitalWrite(13, LOW); // wyłączenie diody L
  }
}

Program steruje wbudowaną w Arduino diodą L podłączoną do pinu 13. Gdy wyślesz z Monitora portu szeregowego liczbę większą niż 1000 to dioda się zapala. Gdy wyślesz mniejszą to dioda gaśnie.

Koniec liczby musi być oznaczony jakimś znakiem innym niż cyfra. Ja ustawiłem monitor portu szeregowego by po naciśnięciu enter wysyłał znak nowej linii. Ale może być to spacja, litera, albo tabulator.

Cała tajemnica kryje się w kawałku Serial.parseInt(). Metoda ta odczytuje liczbę całkowitą typu int. W programie zapisuje ją do zmiennej “number”.

Możesz też czytać liczby zmiennoprzecinkowe (ułamkowe) typu float za pomocą metody Serial.parseFloat().

Te metody nie ograniczają się tylko do Serial. Możesz ich używać też przy połączeniach sieciowych i odczytywaniu plików z karty SD.

Warto poczytać też o innych, umożliwiających odczytywanie napisów.

Metody klasy Stream

sprae

Gra w kolory

Gra w kolory

Suszenie ubrań

Znalazłem fajny wpis o sprawdzaniu za pomocą czujnika wilgotności, czy suszarka do ubrań już wysuszyła.

Clothes Dryer arduino moisture alert

W Polsce takie suszarki nie są zbyt popularne. Zaczęliśmy się w Nettigo zastanawiać czy da się zrobić coś podobnego do informowania, że ubranie na wieszaku suszarki wyschło.

Ubrania na wieszaku schną tak, że najpierw górna część jest sucha, a potem dolna. Można to wykorzystać i przypinać na dole ubrania spinkę z elektrodami, które będą badać opór elektryczny materiału. Im więcej w nim wody, tym lepiej przewodzi prąd.

Wątpliwości pojawiły się wtedy, kiedy okazało się, że dolna część nie wysycha równomiernie.

Pomyślałem, że fajnie by było zrobić taką burzę mózgów na blogu z tobą drogi czytelniku. Masz jakiś pomysł? Napisz go w komciu.

Na razie plan jest taki:

  • Badanie spinką z elektrodami przewodności dolej części ubrania na suszarce
  • Podłączenie tego do wejścia analogowego Arduino
  • Informowanie przez sieć internet albo Bluetooth LE o stanie ubrań

Zabawne, że Internet of things może dotrzeć nawet do takiej czynności 😉

Jakbyś jednak miał taką suszarkę, to czujnik wilgotności możesz znaleźć w Nettigo

sprae

Arduino robi drinki

Słyszałem o wielu rzeczach kontrolowanych przez Arduino. Słyszałem nawet, że Arduino kontrolowało produkcję bimbru. Jednak projekt #BarMixvah, którego autorem jest YU JIANG pozytywnie mnie zaskoczył.

image

(zdjęcie pochodzi z bloga YU JIANG THAM)

Jest to urządzenie do robienia drinków. Drinki wybiera się z katalogu przez stronę WWW na tablecie.

To co mnie zaskoczyło to estetyka wykonania. Konstrukcja została wydrukowana na drukarce 3d.

Zasada działania polega na tym, że Arduino Nano steruje pracą pomp perystaltycznych, które pompują alkohole i soki w odpowiednich ilościach z butelek do szklanki.

YU pokazał też jak działają takie pompy:

Mimo, że nie przepadam za alkoholem to zafascynowałem się tym projektem. Pokazuje on jak wiele można osiągnąć mając dzisiejsze narzędzia majsterkowicza czyli Arduino i drukarkę 3D.

sprae

Dwa nowe Starter Kity

Od dziś w Nettigo pojawiły się dwa nowe starter kity. Pierwszy to Starter Kit dla Raspberry Pi. W jego skład oprócz maliny wchodzi zasilacz, Raspbian, obudowa, płytka stykowa oraz kable podłączeniowe. Wszystko to po to, by łatwo rozpocząć swój projekt związany z elektroniką a korzystający z Raspberry.

Drugi starter kit – to dla chętnych rozpocząć modernizację swojego domu, tak by był trochę bardziej inteligentny. Arduino YUN – domowa automatyka to oprócz Arduino YUN, zestaw 4 gniazdek bezprzewodowych, zasilacz nadajnik i odbiornik radiowy – wszystko to by móc przez internet albo ze smartfona przez WiFi sterować urządzeniami elektrycznymi w domu.

Oczywiście, wszystkie elementy już są w naszej ofercie, ale nie ukrywamy – w zestawie taniej!

[w]

Dokładniejsze wejścia analogowe w Arduino UNO

Jeśli używasz Arduino to pewnie wiesz co robi funkcja analogRead(x);. Odczytuje napięcie z wejścia analogowego. Jeśli funkcja zwraca 0, to na wejściu jest 0 V. Jeśli funkcja zwraca 1023 to na wejściu jest maksymalne napięcie, przyjmuje się że wynosi około 5 V.

No właśnie “około”. Czasem przydaje się większa dokładność. Można ją uzyskać małym kosztem. Na stronie Thinkerit znajduje się fajny program:

long readVcc() {
  long result;
  // Read 1.1V reference against AVcc
  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  delay(2); // Wait for Vref to settle
  ADCSRA |= _BV(ADSC); // Convert
  while (bit_is_set(ADCSRA,ADSC));
  result = ADCL;
  result |= ADCH<<8;
  result = 1126400L / result; // Back-calculate AVcc in mV
  return result;
}

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println( readVcc(), DEC );
  delay(1000);
}

Funkcja readVcc(); odczytuje dokładne napięcie zasilania Arduino. Jest to też napięcie, które jest na wejściu analogowym, gdy funkcja analogRead zwraca wartość 1023(*). Napięcie jest zwracane w mili-voltach. Czyli jeśli funkcja zwróci 5123 mV to napięcie zasilania wynosi 5,123 V.
Okazuje się, że napięcie zasilania może być niestabilne, więc warto odczytywać je za każdym razem gdy odczytujesz wejście analogowe i przeliczać jego wartość.

Jeśli masz Arduino Leonardo, to potrzebujesz lekko zmienionej funkcji, będzie ona opublikowana już wkrótce.

Jeśli interesujesz się tym jak działa funkcja readVcc możesz się dowiedzieć z dokumentacji procesora Arduino na stronie 262, lub pytając mnie w komciach:

Dokumentacja kontrolera Atmega 328p

Wpis o funkcji readVcc na stronie Thinkerit

Arduino UNO R3 w sklepie Nettigo

*Tak wiem, że jest analogReference i po nim funkcja zwraca napięcie ARef 😉

sprae

Podłączenie klawiatury od Amigi do PC dzięki Arduino Leonardo

Arduino Leonardo ma sprzętową obsługę portu USB. Dzięki któremu może udawać klawiaturę, pada i inne urządzenia podłączane przez to złącze.

Dziś gratka dla wielbicieli retro komputerów i starych klawiatur mechanicznych. Jeśli nie pasują one do waszych nowoczesnych PC, możecie zrobić do nich przejściówkę na USB wykorzystując Arduino Leonardo.

Forum Arduino to całkiem niezły zasób wiedzy na temat pomysłów i ich realizacji. Jeden z wątków na który natrafiłem opowiada o tym jak podłączyć klawiaturę od Amigi 500, 1000, 2000 do PC. Jest tam kod źródłowy i rozpiska podłączenia złącza klawiatury do Arduino.

AMIGA 500/1000/2000 Keyboard Interface

Na podobnej zasadzie możesz podłączyć starą, wygodną klawiaturę mechaniczną od oryginalnego IBM PC ze złączem DIN i cieszyć się niezapomnianymi klikami klawiszy.

Oczywiście podłączanie do PC to tylko wierzchołek góry lodowej. Ciekawszym pomysłem będzie podłączenie takiego zestawu do Raspberry Pi i schowania wszystkiego w dość przestronnej obudowie Amigi 500.

Klawiatury od innych komputerów podłącza się trochę trudniej. Zwykle mają bezpośrednio wyprowadzone wyjścia matrycy klawiszy. Jeśli znajdziesz schemat takiego komputera i starczy pinów w Arduino to nie powinno być problemów. Możesz mieć np. Rabarbarowe Atari, albo C64.

Podobnie można wykorzystać Arduino Leonardo do podłączania prez USB starych kontrolerów gier do wykorzystania w emulatorach.

AMIGA 500/1000/2000 Keyboard Interface na forum Arduino

Arduino Leonardo w sklepie Nettigo

sprae

Intel – Make it wearable

Intel make it wearable to konkurs firmy Intel na pomysł na ubieralne urządzenie. W konkursie można wygrać nagrodę pieniężną o maksymalnej wysokości $500000, która będzie przeznaczona na realizację pomysłu.

Termin zgłoszeń w konkursie mija 30 czerwca.

Intel make it wearable

sprae