Scratch – proste programowanie niczym Minecraft

Znajomy niedawno był w Krakowie na Nocy Naukowców 2014. Z ciekawostek najbardziej spodobał mu się program Scratch. Służy on do nauki programowania, przez układanie programów z klocków. Mówiąc językiem współczesnych robi się w nim crafting programów.

Ponieważ wiele osób chciałoby wykorzystać swoje kontrolery w prosty sposób, postanowiłem się przyjrzeć jego wersji dla Arduino o nazwie S4A.

Najpierw ściągnąłem program ze strony twórców:

Program jest w wersjach na Windows, Mac, Linux i Raspberry PI.

Następnie trzeba wgrać przez Arduino IDE do Arduino szkic komunikujący się z S4A.

Niestety szkic wykorzystuje sprzętowe sztuczki kontrolerów ATmega168/328 i działa tylko na Arduino UNO lub Duemilanove.

Po podłączeniu Arduino do komputera i uruchomieniu S4A widzisz to:

image

Po prawej znajduje się narysowana płytka Arduino, a obok niej podgląd działania pinów analogowych 0..5 i cyfrowych 2, 3. To chyba ułatwia zrozumienie niektórych rzeczy.

Po lewej stronie jest tabelka zawierająca wszystkie klocki z których możesz craftować program. Klocki pookładane są w kategorie, żeby łatwiej było szukać.

Na środku jest pole do którego zrzucasz klocki i układasz program.

Zacznę od typowego przykładu mrugania wbudowaną w Arduino pomarańczową lampką LED. Ma ona oznaczenie na płytce L lub L13 i jest podłączona do pinu cyfrowego 13.

Program wygląda tak:

image

Ułożyłem go w ten sposób:

  1. W polu kontrola wybrałem klocek “Kiedy kliknięto [zielona flaga]”.
    Ten klocek oznacza uruchomienie programu. Uruchamia się on jak naciśniesz zieloną flagę w prawym górnym rogu okna. Czerwone kółko zatrzymuje program.
  2. Potem podłączyłem do tego klocka – klocek o nazwie “Zawsze”.
    Wszystko co będzie w środku tego klocka będzie się wykonywało bez końca w kółko.
  3. Potem w kategorii “Ruch” wybrałem klocek “digital 10 on” i włożyłem do środka klocka “Zawsze”. Potem przestawiłem mu numer pinu na 13.
    Klocek ten odpowiada za włączenie pinu – będzie z niego wychodziło 5 V i zasilało lampkę L.
  4. Następnie w kategorii wybrałem klocek “czekaj 1 s”. Klocek ten blokuje działanie programu na jakiś czas.
  5. Za nim dołączyłem klocek “digital 13 off” z kategorii “Ruch”.
    Wyłącza on napięcie na pinie 13 i tym samym lampkę L.
  6. Dalej dodałem znowu klocek “czekaj 1 s”.

W te sposób napisałem program, który ciągle zapala i gasi lampkę L co sekunda.

Teraz czas na trudniejszy program. Chciałbym, podłączyć do Arduino przekaźnik sterujący światłem. Po pierwszym wciśnięciu na klawiaturze spacji przekaźnik się włączy a po drugim wciśnięciu spacji się wyłączy.

image

Do pinu cyfrowego 10 podłączyłem przekaźnik Nettigo.

Program wyszedł mi taki:

image

W programie potrzebna jest zmienna, która będzie pamiętała czy wciśniecie ostatnio spacji włączało, czy wyłączało przekaźnik.

Zmienną utworzyłem w sekcji “Zmienne” i nazwałem “czy było włączone”. Jeżeli ma ona wartość 0 to znaczy, że przekaźnik trzeba włączyć i ustawić zmienną na 1. Jeśli ma wartość 1 to przekaźnik trzeba wyłączyć i ustawić zmienną na 0.

Pierwszy klocek w programie to “kiedy klawisz spacja to” z sekcji “Kontrola”. Można w nim ustawić reakcję na różne klawisze.

W klocku “jeżeli” jest zielony klocek “=” z sekcji “Wyrażenia”. Porównuje on wartość zmiennej z liczbą 0.

Nauka takiego programowania jest bardzo prosta. Teraz możesz łatwo stworzyć własne sterowane programem urządzenia oraz łatwo i przyjemnie nauczyć się programować.

Arduino UNO kupisz w sklepie Nettigo.

sprae

Arduino rozszerza analogowy syntezator

Syntezator to instrument dla muzyków majsterkowiczów. To taki zestaw różnych modułów – kilku generatorów, filtrów, efektów i klawiatury muzycznej. Moduły można ze sobą łączyć przewodami by wpływały na siebie. Uzyskując oczekiwane, ciekawe brzmienie.

Dziś syntezatory są emulowane za pomocą programów komputerowych. Jednak tak jak i w innych dziedzinach, istnieją ludzie, którzy wolą prawdziwe analogowe wersje. To dla nich stworzono syntezator Werkstatt-Ø1.

image
Zdjęcie pochodzi ze strony Moogmusic

Syntezator składa się samemu, żeby podkreślić jego analogowy środek.

Producent syntezatora pozwala rozszerzać go na wiele możliwości. Jedną z nich jest podłączenie Arduino jako dodatkowego generatora.

image

Potrzebny jest do tego rezystor 10 kOhm i kondensator elektrolityczny 2,2 uF. W takim połączeniu tworzą filtr dolnoprzepustowy, zamieniający sygnał PWM z pinu 6 Arduino na sygnał analogowy.

Programowanie generatora jest bardo proste. Wystarczy ściągnąć specjalnie przygotowaną bibliotekę i bawić się w modyfikowanie jej przykładów.

/*Werkstatt Arpeggiator 
  Moog Music Inc. 2014
  Written by Chris David Howe

  Circuit consists of one 10kΩ resistor and a 2.2µf capacitor low pass filter.
*/

#include <werkstatt.h>

arpeggiator arpeggiator(6); //initiate and name the arpeggiator class (Output pin)

/* 
notes are assigned in intervals: tonic, minor2nd, major2nd, minor3rd,
major3rd, fourth, tritone, fifth, minor6th, major6th, minor7th,
major7th, octave. 
*/
  int notes[] = {tonic, octave}; // VCO EXP config


// note values: w, h, q, qt, e, et, sx, sxt, th, sxf 
  int note_values[] = {e, e}; //VCO EXP config

  
void setup() {
}      


void loop() {
for (int i = 0; i < ( sizeof(notes)/sizeof(int) ); i++)
  {
   //define a BPM and run the arpeggiator.play function  
   arpeggiator.play(140, notes[i], note_values[i]); 
   }
}


W tablicy “notes” zapisujesz wysokości dźwięków, zaś w tablicy “note_value” zapisujesz czasy trwania dźwięków. Stałe do wypełniania tablic to zapis nutowy angielskich skrótów nazw nut i wysokości dźwięków.

Za tempo grania odpowiada metoda “arpeggiator.play”. Jej pierwszy argument to tempo wyrażone w taktach na minutę.

Program możesz modyfikować w dowolny sposób, tak by reagował na różne czujniki, przełączniki lub nawet zewnętrzny sygnał MIDI.

Bibliotekę możesz pobrać ze strony Werkstatt Workshop, na której są projekty modów do tego syntezatora.

W bibliotece i na stronie Workshop opisane są jeszcze inne modyfikacje związane z Arduino. Np. generator szumu lub LFO – oscylator małych częstotliwości do modulowania dźwięków.

Arduino i niezbędne części kupisz u nas w Nettigo.

sprae

Arduino IDE 1.5.8

Pojawiło się nowe Arduino IDE w gałęzi 1.5 (tej głównie dla Arduino DUE i YUN).

Przetłumaczyłem wprowadzone zmiany ze strony Arduino:

ARDUINO 1.5.8 BETA – 2014.10.01

[środowisko programistyczne]
* Znajdź/Zastąp działa na wielu zakładkach na raz (Erwin Ried, Fulvio Ieva)
* Naprawione złe działanie “Zastąp”, kiedy w polu “Znajdź” jest pusto (Fulvio Ieva)
* Dużo zmian w trybie poleceń tekstowych konsoli (Matthijs Kooijman)
* Kursor się nie przemieszcza gdy włączysz opcję autoformatowania kodu

[biblioteki]
* SPI: dodano transakcyjne API (Paul Stoffregen)
https://github.com/arduino/Arduino/pull/2223
https://groups.google.com/a/arduino.cc/forum/#!msg/developers/TuZLfjeZjDI/6deNjw3Y9m4J
* FileIO bridge: naprawiono złą wartość zwracaną przez File::size() kiedy rozmiar pliku przekraczał 32768
* Zaktualizowano Temboo to najnowszej wersji
* Zaktualizowano/naprawiono przykładowe programy

[rdzeń]
* sam: Operatory “new” i “delete” nie zabierają już 50Kb biblioteki stdclib
* Poprawiono implementacje wewnętrzych funkcji kompilatora gcc (__cxa_guard_*) (Alexey Guseynov)
* Naprawiono problem wgrywania programów do Leonardo (i na innych płytkach zależnych od kontrolera mega32u4)
* Małe udoskonalenia klasy String (Matthijs Kooijman)
* Poprawiono wskazywanie ilości dostępnej pamięci Flash na płytce mega2560 (Leonardo Milani, Arnav Gupta)
* sam: usunięto nieużywane puste makro digitalPinToTimer(..) (Bill Perry)

Poniższe funkcje dodano także w Arduino IDE 1.0.6:

[rdzeń]
* avr: Dodano pustą funkcję atexit() biblioteki cstdlib (Christopher Andrews)

sprae

Arduino – Warsztaty

Chcemy zrobić serię warsztatów dla osób (grupy po 10-15 osób) nie mających dużego (lub wręcz żadnego) doświadczenia z elektroniką. Zarys jest następujący – każdy musi mieć swojego laptopa, my dostarczymy pozostały sprzęt (Arduino, a może RPi?), warsztaty potrwają ok 1.5-2h, planujemy je zrobić raczej w tygodniu (start koło 18:00), miejsce nieznane ale z dobrym dojazdem z centrum Warszawy (albo w centrum).

I teraz mamy pytanie – czy takie warsztaty są dla Was interesujące? Najlepiej jeżeli wypełnicie tą króciutką ankietę: http://goo.gl/forms/FLV2c6unyF

Jeżeli podacie tam email to wyślemy Wam w pierwszej kolejności informację o tym gdzie, kiedy i w jakiej formie będą warsztaty.

Plan jest taki, żeby pierwsza edycja odbyła się jeszcze w październiku.

PS.
Nie mamy zaklepanego miejsca, więc jeżeli znacie przyjazne miejsca, gdzie takie coś się może odbyć, to podrzućcie w komentarzach albo na info@nettigo.pl

WiFi Shield 101 – Nowe WiFi do Arduino

Na targach World Maker Faire firma Atmel zaprezentowała nowy Shield do komunikacji z siecią WiFi dla Arduino UNO i Zero. Będzie obsługiwał standardy IEEE 802.11 b/g/n.

Shield ma sprzętowo obsługiwać protokół TCP/IP oraz zaawansowane funkcje kryptograficzne. Dzięki temu ma być lepiej zabezpieczony przed hackerami. W stanie uśpienia ma pobierać 2 uA. Arduino będzie komunikowało się z nim za pomocą magistrali SPI we wtyczce ICSP.

Urządzenie ma pojawić się w styczniu 2015 w sklepie Arduino.

sprae

Arduino Materia 101

Zespół Arduino wypuścił nowy produkt – drukarkę 3d o nazwie Materia 101.

Drukarka ma powierzchnię roboczą 14x10x10 cm. Dokładność osi x, y na poziomie 0.06 mm, osi z 0,0024 mm. Szerokość nanoszenia materiału drukującego 0,35 mm.
Drukarką steruje płytka sterownika Arduino Mega 2560.

Twórcy mówią, że dzięki łatwej obsłudze jest skierowana dla początkujących i do jednostek edukacji. Cała konstrukcja ma być rozpowszechniana też jako Open Source.

Arduino Materia 101 będzie dostępna w w sklepie Arduino w dwóch wersjach. Do samodzielnego montażu za 600 Euro i zmontowana za 700 Euro.

sprae