wtorek, 1 marca 2016

Przygody z Raspberry Pi #4 - JAK TYM STEROWAĆ !??!?!

Hej ! Jak sterować tym cudem ?
Otóż możemy oczywiście użyć GNU poprzez podłączenie się za pomocą hdmi czy vga ALE , do obsułgi w zupełność wystarczy nam.. Ethernet :) .. no i podstawowa znajomosc linuxowego terminala.. Za pomocą routera , etherentu oraz zabezpieczonego protokołu SSH możemy połączyć się z dowolnego urządzenia wspierającego komunikację via SSH , nie musi być to windows i program putty , działa również pod komendą SSH IP MALINY w Linuxie i OSX oraz za pomocą JuiceSSH pod androidem :) Mobilnie i wszędzie to cenie :)

Przygody z Raspberry Pi #3 - Pinout, Budowa

Hej !
Teraz opowiem trochę o budowie:
Pi posiada hdmi , av , port kamery i ekranu , 4 usb , magistrale gpio i ethernet.





Przygody z Raspberry Pi #2 - Parametry , wydajność , OS

Hej !
 W tym poście omówię budowę malinki oraz omówię soft.
Malinka działa na Raspbianie - jest to autorska dystrybucja linuxa oparta na Linuxie Debianie , została maksymalnie odchudzona , dodano kika programów ułatwiających życię początkującego linuxiarza oraz szereg biblotek obsługujących magistralę malinki i zingerowanie jej z Pythonem.
     



Budowa i pinout:
Malince z czasem dodawano komponetów czy to nowszą magistralę hdmi , czy wiecej ramu czy szybszy procesor.
Obecnie najwydajniejszym i najnowszym produktem fundacji Raspberry jest Raspeberry PI 3 (wydana 1 Marca) -
"W Raspberry Pi 3 znajdziemy 64-bitowy procesor Broadcom BCM2837 oferujący cztery rdzenie Cortex-A53, taktowany zegarem 1,2 GHz. Według producenta, chip oferuje do 60 procent wyższą wydajność w porównaniu do konstrukcji znajdującej się w Raspberry Pi 2 i aż dziesięciokrotnie wyższą względem układu z Raspberry Pi. Użytkownik ma do dyspozycji 1 GB pamięci RAM.Na pokładzie znajdziemy też chip BCM43438 zapewniający łączność bezprzewodową Wi-Fi 802.11n i Bluetooth 4.1. Sprzęt udostępnia szeroką gamę różnego rodzaju złączy, w tym: 4 USB 2.0, micro USB, pełnowymiarowe HDMI, czytnik kart microSD, a także porty CSI i DSI. Rozstaw elementów jest praktycznie identyczny jak w Raspberry Pi 2 Model B – jedyną różnicą jest położenie diody.
Położenie złączy to jednak nie jedyne podobieństwo do starszej konstrukcji. Raspberry Pi 3 został wyceniony na tyle samo co jego poprzednik, a więc 35 dolarów. Producent nie zamierza obniżyć ceny poprzedniego modelu, ani też porzucać produkcji starszych wersji tak długo, jak będzie na nie zapotrzebowanie. "~pclab Tak więc JEST MOC !!!

Przygody z Raspberry Pi #1 - Wprowadzenie

Hej ! 
  Jest to pierwszy post od dłuższego czasu, niestety nie miałem wystarczająco dużo czasu na prowadzenie bloga, teraz jednak jest go na razie sporo więc myślę, że idziemy z pełną parą ! 
 Na chwilę obecną w życię Bloga wprowadzam nową płytę - Rassberry Pi , jest to co prawda jeden z najstarszych i co za tym najmniej wydajnym pcb aczkolwiek to pisania prostych programów w pythonie i podpinania np lcd czy czujników , w zupełności wystarczy. "Malinka" jest i tak kilkuset mocniejsza od Arduino.- Właściwie czym jest samo Raspberry ?
 Według wiki : https://pl.wikipedia.org/wiki/Raspberry_Pi jest to  platforma komputerowa stworzona przez Raspberry Pi Foundation. Urządzenie składa się z pojedynczego obwodu drukowanego i zostało wymyślone, by wspierać naukę podstaw informatyki. Jego premiera miała miejsce 29 lutego 2012 roku.
Urządzenie oparte jest na układzie Broadcom BCM2835 SoC[5], który składa się z procesora ARM1176JZF-S700 MHz, VideoCore IV GPU i 256 lub 512[6][7] megabajtów (MB) pamięci RAM. Urządzenie nie ma dysku twardego, ale w celu załadowania systemu operacyjnego i przechowywania danych[8] oferuje złącze dla kart SD. Raspberry Pi ma również złącze USB do podłączenia dowolnych urządzeń zewnętrznych.
Raspberry Pi działa pod kontrolą systemów operacyjnych opartych na Linuksie[1] oraz RISC OS[9]. Najnowszy model, Raspberry Pi 2 B, działa również pod kontrolą Windowsa 10[10].
Skoro więc mamy do dyspozycji linuxa i to w kilku dystrybucjach , 512 mb Ram(mój przypadek) i miedzy innymi magistrale GPIO , JTAG , SPI , I2C to czego nam hobbystom wiecej potrzeba ? :) Dzięki raspberry nie tylko podepniemy znanem nam moduły z arduino ale również stworzymy o wiele bardziej zawansowane projekty , tu ogranicza nas jedynie nasza wyobraźnia :) - JEDNYM SŁOWEM COŚ WSPANIAŁEGO , po krótce to tyle z wprowadzenia.

środa, 21 października 2015

Radio cz.2 - Wyświetlacz , potenciometr , pamięć !

Hej !
 Dziś krótko, stworzyłem ala radio z wyświetlaczem i pamięcią.


 Kod 1 - Wersja finalna działają buttony , wgrane najpopularniejsze stacje , brak jednoczesnej obsługi potenciometru ;C
//Sample using LiquidCrystal library
#include <LiquidCrystal.h>
#include <Wire.h>
#include <TEA5767Radio.h>
TEA5767Radio radio = TEA5767Radio();

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);


// define some values used by the panel and buttons
int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons
int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // For V1.1 us this threshold
 if (adc_key_in < 50)   return btnRIGHT;
 if (adc_key_in < 250)  return btnUP;
 if (adc_key_in < 450)  return btnDOWN;
 if (adc_key_in < 650)  return btnLEFT;
 if (adc_key_in < 850)  return btnSELECT;
 return btnNONE;  // when all others fail, return this...
}

void setup()
{
  Wire.begin();
 lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("R.Kasprzak 2000"); // print a simple message

}

void loop()
{
 lcd.setCursor(0,1);            // move to the begining of the second line
 lcd_key = read_LCD_buttons();
 switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
     {
     radio.setFrequency(104.4);
     lcd.print("Stacja VOX FM  ");
     break;
     }
   case btnLEFT:
     {
     radio.setFrequency(107.5);
     lcd.print("Stacja RadioZET");
   
     break;
     }
   case btnUP:
     {
     radio.setFrequency(92.4);
     lcd.print("Stacja Pol.1   ");
     break;
     }
   case btnDOWN:
     {
     radio.setFrequency(104.9);
     lcd.print("Stacja Pol.2   ");
     break;
     }
   case btnSELECT:
     {
    radio.setFrequency(104.4);
     lcd.print("VOX FM   ");
     break;
     }
   
 }

}

Kod 2 działa potenciometr ale kłóci się z buttonami.
//Sample using LiquidCrystal library
#include <LiquidCrystal.h>
#include <Wire.h>
#include <TEA5767Radio.h>
TEA5767Radio radio = TEA5767Radio();

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

unsigned char frequencyH = 0;
unsigned char frequencyL = 0;

unsigned int frequencyB;

double frequency = 0;

// define some values used by the panel and buttons

int lcd_key     = 0;
int adc_key_in  = 0;
#define btnRIGHT  0
#define btnUP     1
#define btnDOWN   2
#define btnLEFT   3
#define btnSELECT 4
#define btnNONE   5

// read the buttons

int read_LCD_buttons()
{
 adc_key_in = analogRead(0);      // read the value from the sensor
 // my buttons when read are centered at these valies: 0, 144, 329, 504, 741
 // we add approx 50 to those values and check to see if we are close
 if (adc_key_in > 1000) return btnNONE; // We make this the 1st option for speed reasons since it will be the most likely result
 // For V1.1 us this threshold
 if (adc_key_in < 50)   return btnRIGHT;
 if (adc_key_in < 250)  return btnUP;
 if (adc_key_in < 450)  return btnDOWN;
 if (adc_key_in < 650)  return btnLEFT;
 if (adc_key_in < 850)  return btnSELECT;
 return btnNONE;  // when all others fail, return this...
}

void setup()

{
  Wire.begin();
 lcd.begin(16, 2);              // start the library
 lcd.setCursor(0,0);
 lcd.print("R.Kasprzak 2000"); // print a simple message
  frequency = 93.0; //starting frequency
  setFrequency();
  Serial.begin(9600);

}

void loop()

{
 


 lcd.setCursor(0,1);            // move to the begining of the second line

 lcd_key = read_LCD_buttons();
 switch (lcd_key)               // depending on which button was pushed, we perform an action
 {
   case btnRIGHT:
     {
     radio.setFrequency(104.4);
     lcd.print("Stacja VOX FM  ");
     break;
     }
   case btnLEFT:
     {
     radio.setFrequency(107.5);
     lcd.print("Stacja RadioZET");
   
     break;
     }
   case btnUP:
     {
     radio.setFrequency(92.4);
     lcd.print("Stacja Pol.1   ");
     break;
     }
   case btnDOWN:
     {
     radio.setFrequency(104.9);
     lcd.print("Stacja Pol.2   ");
     break;
     }
   case btnSELECT:
     {
    radio.setFrequency(104.4);
     lcd.print("VOX FM   ");
     break;
     }
     case btnNONE:
     {
       int reading = analogRead(7);
  //frequency = map((float)reading, 0.0, 1024.0, 87.5, 108.0);

  frequency = ((double)reading * (108.0 - 87.5)) / 1024.0 + 87.5;

  frequency = ((int)(frequency * 10)) / 10.0;

  setFrequency();

  Serial.println(frequency);
   
     break;
     }
   
 }

}


void setFrequency()

{
  frequencyB = 4 * (frequency * 1000000 + 225000) / 32768;
  frequencyH = frequencyB >> 8;
  frequencyL = frequencyB & 0XFF;
  delay(100);
  Wire.beginTransmission(0x60);
  Wire.write(frequencyH);
  Wire.write(frequencyL);
  Wire.write(0xB0);
  Wire.write(0x10);
  Wire.write((byte)0x00);
  Wire.endTransmission();
  delay(100);
}


środa, 14 października 2015

Test i podłączenie radia

o/

    Dzisiaj zobaczymy jak zrobić radio z arduino. Będzie nam potrzebny moduł TEA5767. Ten którego ja będę używał nie potrzebuje żadnego dodatkowego lutowania (możecie go znaleźć tutaj http://goo.gl/foim6U), ale można też użyć tańszego modelu, bez wbudowanego jacka czy anteny.

 
Zacznijmy od podłączenia.
  1. Wepnij moduł do płytki prototypowej
  2. Standardowo podłącz GND (masę) do GND na arduino
  3. SLC z SCL na arduino (na mojej płytce MEGA, to port 21)
  4. SDA z SDA (u mnie 20)
  5. VCC z zasilaniem 5V
   Teraz podłącz arduino do komputera, pobierz bibliotekę TEA5767 stąd: http://playground.arduino.cc/Main/TEA5767Radio i wrzuć ją do swojego folderu z bibliotekami arduino. Zaimportuj ją i powinieneś mieć przykład TEA5767 Radio/SimpleFixedFrequency. Jak coś nie wyjdzie to tutaj jest kod:


#include <Wire.h>
#include <TEA5767Radio.h>

TEA5767Radio radio = TEA5767Radio();

void setup()
  Wire.begin();
  radio.setFrequency(107.5); // Wybierz częstotliwość (Hz) stacji radiowej
}

void loop()
{
}

    Następnie wystarczy ustawić częstotliwość stacji radiowej, podłączyć słuchawki pod jacka i posłuchać muzyki.

Do zobaczenia!

sobota, 26 września 2015

Arduino Komunikacja RF cz.2- pierwszy program

Hej !

 Pokaże wam prosty kod, który można zastosować aby sterować wbudowaną diodą (13 pin) za pomocą przycisku na pilocie, kod świetnie nadaje się do rozbudowy, modyfikacji. Najśmieszniejsze jest to , że użyję wbudowanego przykładu - programu "Button"
Do rzeczy:

1. Wpinamy JY do płytki prototypowej.
2. Łączymy kablem pin 5V z 5V w Ardunio.
3. Łączymy kablem pin Gnd z Gnd w Ardunio.
4 .Łączymy kablem pin D0-D4 (dowolnie) z pinem 2 cyfrowym w Ardunino (można z innym, aczkolwiek należy ingerować w kod).
5. Odpalamy IDE, ustawiamy board itp.
6. Klikamy kolejno Plik , przykłady, Digital, Button.
7. Wgrywamy kod , następnie klikamy odpowiedni przycisk na pilocie, dioda powinna się zapalić. Jak widać, bardzo proste, a jak cieszy, sam kod pokazuje jak łatwo konfigurować to urządzenie.



Jeżeli nie masz dostępu do kodu (?) :
const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  }
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

piątek, 25 września 2015

Arduino Komunikacja RF cz.1

Hej!

 W tym poście pokaże w jaki sposób stworzyć bezprzewodowy system oparty o RF uruchomiony na Ardunio :)
  Czego używam: Jest to dość tani i popularny układ, który działa na kości SC2272-M4, model odbiornika to JY-JM5V, zaś nadajnik to bardzo ładny pilot z 4 klawiszami, zasilany baterią 12 V czyli tak jak klasyczne piloty np do samochodu, czy bramy. Zasięg to około 20 m bez dodatkowej przylutowanej anteny do JY-JM5V, dla ciekawostki wiem , że taki układ może ze sobą współpracować nawet na odległości 500 m.



















Piny D0 - D4 służą do komunikacji - tzn. kanały - te najczęściej podpinamy do portów cyfrowych.
Porty 5V i Gnd to odpowiednio napięcie i masa. Pin UT jeszcze mi się nie przydał, jak go rozpracuję to go opiszę w kolejnych częściach :)


Tymczasem jako iż dzisiaj mamy piątek odsyłam do składanki Lady Pank , bardzo fajnie się przy nich pisze i czyta :)    Best Of Lady Pank




piątek, 11 września 2015

Pinout i sterowniki - MEGA 2560 R3

Hej!

   Stwierdziłem , że jako to początek bloga należy zrobić jakiś wstęp do którego zawsze można się odwołać. :)
   Pierwszą rzeczą , która nie jednego usera Arduino doprowadziła do złości to oczywiście sterowniki, o ile na Linuxie najczęściej nie ma tego problemu, bo po prostu sprzęt sam się konfiguruje to w przypadku Windows problem może się pojawić , szczególnie przy braku internetu. Windows XP i starsze nie posiadają wbudowanego oprogramowania do automatycznego pobierania sterowników, dlatego te należy pobrać i ręcznie zainstalować wraz z programem do kompilowania projektów. Nowsze wersje systemu Windows łącznie z 10 posiadają tą bardzo wygodną funkcję :)
















   Drugą bardzo istotną rzeczą jest program do kompilowania kodu, o którym wcześniej wspomniałem.
   Użytkownicy systemu Windows XP i niżej dodatkowo znajdą sterownik do Megi.

   Całość można pobrać z oficialnej strony twórcy:
Getting Started- czyli kompletna instrukcja po Ang.
Oprogramowanie - sterownik i program pod różne OS'y

    PINOUT - czyli CO? JAK? GDZIE? Każdemu nowemu userowi na pewno pomoże ten schemat :)

To już koniec dzisiejszego postu. 
Powodzenia ! :)

Hello World! ;)

Dzień Dobry wszystkim! Od dziś będe się starał pokazywać różnorakie projekty związane z Arduino. :)