Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Intel Edison — piszemy kod pod Arduino

W Intel Edison tak samo jak w Intel Galileo możemy programować Edisona za pomocą Arduino IDE. W tym celu użyję wersji Standard, która ma już wyprowadzone złącza GPIO podobnie jak w Arduino UNO. W tym wpisie pokażę jak radzi sobie Edison ze sterowaniem wyświetlaczem LCD, sterowaniem silników za pomocą PWM, sterowaniem serwami oraz świeceniem diodami.

Przygotowanie środowiska programistycznego

Arduino IDE w wersji dla Edisona możemy pobrać z działu Download projektu. Dostępne są wersje dla systemów Windows, Linux i Mac OS. Użytkownicy Windowsa powinni jeszcze zainstalować sterowniki.

Po instalacji sterowników i podłączeniu intel Edisona do komputera możemy uruchomić pobrane wcześniej Arduino IDE dedykowane dla płyt Intela.

r   e   k   l   a   m   a

Wybieramy z Narzędzia>Płytka>Intel Edison oraz numer portu Narzędzia>Port szeregowy. Od tej chwili możemy już programować naszego Edisona.

Sterowanie diodami

Zaczniemy od prostego sterowania pinami cyfrowymi za pomocą których będziemy sterować diodami. Wykonam prosty przykład efektu świetlnego z filmu Knight Rider (Nieustraszony) w którym samochód bohatera miał ten efekt na przedniej masce.



int i=0;

void setup()
{
for( i = 2; i <= 6; i++)
{
  pinMode(i, OUTPUT);
}  
}

void loop()
{
for(i = 2; i < 6; i++)
{
 digitalWrite(i, HIGH);
 delay(50);
 digitalWrite(i + 1, HIGH);
 delay(50);
 digitalWrite(i, LOW);
 delay(50);
}
for(i = 6; i > 1 ; i--)
{
 digitalWrite(i, HIGH);
 delay(50);
 digitalWrite(i - 1, HIGH);
 delay(50);
 digitalWrite(i, LOW);
 delay(50);
}

}

Efekt końcowy powyższego kodu.

Sterowanie silnikami

W tym przykładzie użyłem PWM do sterowania obrotami silnika. Silnik podłączony jest do sterownika silników. Za ustawienie prędkości odpowiada potencjometr, którym będę kręcił, aby ustawić prędkość obrotów silnika.


int silnik = 9; 
int potencjometr = A0; 
int i = 0;

void setup()
{
  pinMode(silnik, OUTPUT); 
  pinMode(potencjometr, INPUT); 
}

void loop()
{
  i = analogRead(potencjometr);
  analogWrite(silnik, i / 4);
}

Poniżej prezentuję efekt działania programu.

Sterowanie serwem

Teraz pora na sterowanie serwem. Będę obracać serwem o 180 stopni w obydwu kierunkach.


#include <Servo.h>
 
Servo servoMain;
int i = 0; 
void setup()
{
   servoMain.attach(9); 
}
 
void loop()
{
  for(i = 0; i <= 180; i++)
  {
   servoMain.write(i);  
   delay(2);        
  }
delay(1000);
   for(i = 180; i >= 0; i--)
  {
   servoMain.write(i);   
   delay(2);         
  }
  delay(1000);
}

Po wgraniu powyższego kodu mamy taki oto efekt

Zabawa z wyświetlaczem LCD

Pora na test wyświetlacza LCD, którym będę sterować za pomocą biblioteki LiquidCrystal_I2C. Użyłem modułu I2C dla ekranu aby zmniejszyć ilość potrzebnych kabli połączeniowych.


//Library version:1.1
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2); 

void setup()
{
  lcd.init();
  lcd.backlight();  
}

void loop()
{ 
  
  delay(2000);
  lcd.print("Pozdrowienia");
  lcd.setCursor(0, 1);
  lcd.print("dla czytelnikow");
  delay(4000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("dobreprogramy.pl");
  delay(1000);
  lcd.setCursor(0, 1);
  lcd.print("od Cyryllo");
  delay(1000);
  lcd.print(" ;)");
  delay(6000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Intel Edison");
  delay(2000);
  lcd.setCursor(0, 1);
  lcd.print("i Arduino"); 
  delay(6000);
  lcd.clear();
}

Poniżej wynik działania powyższego kodu

Podsumowanie

Jak widać Intel Edison daje sobie radę przy korzystaniu z Arduino IDE. Jednak nie na tym polu Edison powinien walczyć z innymi mikrokontrolerami czy picoboardami. Porównując cenę Edisona do innych Arduino to nie ma sensu kupować Edisona jeśli chcemy używać go tylko jako Arduino. Moc tego urządzenia jest zapewne w Linuksie i jego modułach wifi i bluetooth więc w kolejnym wpisie sprawdzę co Linux potrafi zdziałać na Intel Edison. 

sprzęt programowanie hobby

Komentarze