Sign in to follow this  
მათე

Arduino R3 UNO

Recommended Posts

მოგესალმებით, დღეს წარმოგიდგენთ ძალიან საინტერესო მოწყობილობას. ეს არის:

Arduino Uno (გამოსახულია ფოტოზე)

7bb8236fcc99.jpg

Arduino uno არის microcontroller board რომელიც დაფუძნებულია ATmega328P (datasheet) ჩიპზე. მას აქვს 14 ციფრული input/output pin-ები (აქედან 6 შესაძლოა გამოიყენოთ PWM output-ებად), 6 ანალოგური output, 16 MHz-იანი quartz crystal, აქვს USB, power jack კვებისთვის, ICSP header და reset ღილაკი. შეგიძლიათ ის მიაერთოდ კომპიუტერს USB-თ, მიაერთოდ კვება AC DC კონვერტერით ან პინებიდან მიაწოდოთ კვება ელემენტებიდან. მასზე პროგრამების ჩასაწერად გამოიყენეთ Arduino Software (IDE). მას შეგიძლიათ მიუერთოდ უამრავი სენსორი და მოდული, მათ შორის სინათლის, თითის ანაბეჭდის, აქსელერომეტრი, გიროსკოპი, IR მიმღები/გადამცემი, GSM-GPRS მოდული SIM კარტის გამოსაყენებლად, Ethernet/Wifi Shield, ლაზერის სენსორი, მოტორების სამართავი მოდული, 250 V/10 A-იანი რელეები და უამრავი სხვა...

ზემოთ სურათზე გამოსახულია ორიგინალი arudino uno R3 რომელიც 15-20$ ფასში მერყეობს ebay-ზე. მაგრამ საბედნიეროდ არსებობს მისი კლონები, რომლებიც გაცილებით იაფია. მათი ფასი მერყეობს 3-5$-მდე ebay-ზე. მე თვითონაც კლონი მაქვს ნაყიდი და ჩვეულებრივად მუშაობს. ფუნქციონალში განსხვავება არ აქვს. ასე რომ შემიძლია თავისუფლად გირჩიოთ კლონის ყიდვა მითუმეტეს თუ დამწყები ხართ, რადგან შესაძლოა შემთხვევით დაწვათ იგი (ამ დროს კი ჯობს მასში 3-5$ გქონდეთ გადახდილი ვიდრე 15-20$ :D )

კლონები ასე გამოიყურება. მონაცემები იგივეა. ერთი განსხვავებით ის იყენებს CH340G ჩიპს, რომელსაც windows-ში დრაივერის დაყენება ჭირდება, Linux-ს ჩაშენებული აქვს ეს დრაივერი ასე რომ შეგიძლიათ პირდაპირ მიუერთოთ :)

4dfc09706b54.jpg

თუ გინდათ სწრაფად გაერკვიოთ რას წარმოადგენს არდუინო და რისი გაკეთება შეგიძლიათ უყურეთ ამ ვიდეოს

ამ თემაში განახებთ რამდენიმე პატარა პროექტს.

მანძილის გასაზომი მოდული:

25fe5d3f4bb1.jpg

მიუერთეთ მისი

VCC - arduino-ს 5 V პინს
Trig - arduino-ს D12 პინს
Echo - arduino-ს D13 პინს
Gnd - arduino-ს Gnd პინს

შემდეგ ეს კოდი ჩაწერეთ arduino-ში Arduino IDE-ს დახმარებით. გაშვების მერე კი გახსენით serial მონიტორი მენიუდან Tools -> Serial Monitor (ან კლავიშების კომბინაციით Ctrl + Shift + M)

Spoiler


int trigPin = 12;
int echoPin = 13;
long duration, cm, inches;
 
void setup() 
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
void loop() 
{
  digitalWrite(trigPin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);
 
  cm = (duration/2) / 29.1;
  inches = (duration/2) / 74; 
  
  Serial.print(inches);
  Serial.print("in, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  
  delay(250);
}

 

 

ეს კი მეორე პროგრამა IR სიგნალის მიმღები და ეს ბიბლიოთეკები: https://github.com/cyborg5/IRLib2

დაგჭIრდებათ IR მიმღები. ეს მოდელია TSOP382 ის თავსებადია თითქმის ყველა IR remote კონტროლერთან.

a04be9cd5cd1.jpg

სურათზე როგორც ხედავთ ისე მიაერთეთ pin_ები:

პირველი pin - arduino-ს ნებისმიერ Digital პინს (ამ შემთხვევაში მეორე პინს)
შუა - arduino-ს Gnd პინს
და მესამე - arduino-ს 5 V პინს

ჩაწერეთ arduino-ში ეს კოდი გახსენით Serial Monitor, შემდეგ რამე პულტით გააგზავნეთ სიგნალები ამ IR მიმღების მიმართულებით და დააკვირდით Serial Monitor-ს.

Spoiler

#include "IRLibAll.h"

IRrecvPCI myReceiver(2); 
IRdecode myDecoder;   

void setup()
{
  Serial.begin(9600);
  delay(2000); while (!Serial);
  myReceiver.enableIRIn();
  Serial.println(F("Receive IR signals"));
}

void loop() 
{
  if (myReceiver.getResults()) 
  {
    myDecoder.decode();
    myDecoder.dumpResults(true);
    myReceiver.enableIRIn();
  }
}

 

ამ მოწყობილობით თქვენ გაერკვევით პროგრამირებაში და ასევე ელექტრონიკაში. გაიგებთ როგორ მუშაობს სხვადასხვა ელექტრონული მოწყობილობები, რაც მთავარია თქვენ უამრავი რამის გაკეთებას შეძლებთ. შეგიძლიათ ჭკვიანი "შტეფცელები" გააკეთოთ, შეგიძლიათ კომპიუტერის fan კონტროლერი გააკეთოთ, რომელიც ფანებს ტემპერატურის სენსორზე დაყრდნობით მართავს, შეგიძლიათ თქვენი კომპი თითის ანაბეჭდით ჩართოთ, CO-ს სენსორი ააწყოთ, რომელიც SMS-ს გამოგზავნის GPS/GPRS მოდულის დახმარებით და ა.შ. შესაძლებლობები უსაზღვროა.

საბოლოოდ კი გირჩევთ აუცილებლად დარეგისტრირდით arduino-ს ფორუმზე. იქ უამრავ ინფორმაციას ნახავთ https://forum.arduino.cc/

  • Thanks 1

Share this post


Link to post
Share on other sites

შესანიშანვი თემაა :) რამოდენიმე გამოსადეგი გაკვეთილი დამწყებებისთვის:

Arduino Pulse Width Modulation 
[Lynda.com / Peggy Fisher] Up and Running with Arduino [2015, ENG]  

მე უფრო Arduino PMicro მაინტერესებს, მაგრამ ესეც საკმაოდ მრავალფუნქციურია და მგონი უნდა გადავხედო :) მადლობა თემისთვის !

  • Upvote 1

Share this post


Link to post
Share on other sites

@STI-228

ძალიან კარგი ვინმეს თუ მოეწონა თემა. :)

მე ეს მაქვს გამოწერილი ბევრ სენსოწრთან და RF გადამცემებთან ერთად.

9ef04bcebe39.jpg

https://www.ebay.com/itm/NEW-Pro-Mini-ATMEGA328P-5V-16M-3-3V-8M-Optional-Arduino-PRO-mini-Compatible/192260205251?ssPageName=STRK%3AMEBIDX%3AIT&var=492190113400&_trksid=p2057872.m2749.l2649

3.3 v 8 MHZ ვერსია. ბატარეაზე მინდა რომ იმუშავოს და ტემპერატურა, ნესტიანობა და წნევის აზომვები გააკეთოს და გადასცეს სერვერს rf-ს დახმარებით. ბევრი ინფო ვნახე როგორ უნდა დააკონფიგო რომ ბატარეაზე ძალიან დიდი ხანი გაძლოს და მაგიტომ ავარჩიე ეგ მოდელი. led ნათურაც უნდა მოხსნა deep sleep-ები გამოიყენო და 2 AA ზომის ბატარეაზე წლები გაძლებს.

მერე დავწერ მაგ სენსორებზეც აქ.

PIR motion სენსორი, 4 X Ultrasound, ADXL345 accelerometer, MP6050(accelerometer + Gyroscope), 8 relay board, 2 X RF transceiver და Nodemcu v2, Arduino UNO და ეს pro mini arduino მაქვს სულ.

ისე შენ დაგაინტერესებს. ასეთი რამის გაკეთებაც შესაძლებელია arduino-თი და რამდენიმე servo motor-თ.

 

  • Upvote 1

Share this post


Link to post
Share on other sites

მე გამოვიწერე 1 თვის წინ, მაგრამ ჯერ არ ჩამომივიდა, რომ ვნახო კარგად: Atmega32U4 Development Board

 რაღაც იდეები მაქვს, მაგრამ ჯერ ვერ შევკრიბე ყველა საჭირო დეტალი ერთად :) 

  • Upvote 1

Share this post


Link to post
Share on other sites
2 hours ago, STI-228 said:

მე გამოვიწერე 1 თვის წინ, მაგრამ ჯერ არ ჩამომივიდა, რომ ვნახო კარგად: Atmega32U4 Development Board

 რაღაც იდეები მაქვს, მაგრამ ჯერ ვერ შევკრიბე ყველა საჭირო დეტალი ერთად :) 

მანდ კაი ძვირი ყოფილა. ebay-ზე ჩაუჯექი ხოლმე. მე სულ ebay_ზე ვეძებ თუმცა ზოგი მოდული კი ვნახე უფრო იაფად მანდ. უბრალოდ სადღაც 20 წუთამდე მაქს ვეძებ ხოლმე და ebay-ზე იჩითება იაფად თან free shipping_თ. ეხლა ის დავუმუღამე რომ წონაზე მაინც 100 გრამისას ვიხდი USA2GEO-ში და იგივე სელერიდან ვეძებ ხოლმე კიდე თუ მინდა რამე. 10 მდე რაღაც გამოვწერე 2 სელერიდან. თუ იაფად აქვს ერთი რამე უფასო shippingთ სხვა მოდულები და რამეებიც აქვთ ხოლმე რაც ვნახე ეგეთ სელერებს. მეც ჩამომივა მალე გამოწერილი რაღაცები და კიდე უნდა გამოვწერო მოგვიანებით დრონის აწყობაც მინდა და ჭკვიანი სახლის რაღაცების გაკეთებაც. პროექტებს ნეტში ვეძებ ხოლმე რამე საკაიფო რომ ვნახო.

  • Upvote 1

Share this post


Link to post
Share on other sites

მათე

ამათ შორის რამე სხვაობა არის ? თუ ერთიდაიგივეა ?

Nano V3.0 ATmega328P Controller Board w/ USB Cable for Arduino
Improved Version Nano 3.0 Atmel Atmega328P Mini USB Board for Arduino
OPEN-SMART Atmega32U4 Development Board Pro Micro for Arduino

კონკრეტულად მაინტერესებს Atmega328P-ს და Atmega32U4-ს შორის თუ არის რაიმე სხვაობა ? Atmega328P უფრო ახალია ?

Share this post


Link to post
Share on other sites
30 minutes ago, STI-228 said:

მათე

ამათ შორის რამე სხვაობა არის ? თუ ერთიდაიგივეა ?

Atmega32U4 ეს ჯობია. ჩაშენებული მხარდაჭერა აქ USB-ს. მაგაზე დაფუძნებულ მინი ვერსიებს როგორც წესი აქვთ USB კაბელის მისაერთებელი და დასაპროგრამებლად არ ჭირდებათ ცალკე USB serial გადამყვანი. ასევე მათ შეუძლიათ USB keyboard ან mouse-სად მიუერთდნენ კომპიუტერს. ანუ HID-ს ემულაცია რა. კონტროლერიც შეგიძლია ააწყო მაგით. Arduino leonardo-ს აქვს ეგ ჩიპი. UNO-ს არ აქვს ეგ. გააჩნია რისთვის გინდა თუ ზემოთ ჩამოთვლილი საქმეებისთვის გინდა რათქმაუნდა ეგ მესამე ვარიატი ჯობია.

ისე მონაცემებსაც გადავხედე და ოდნავ უკეთესია RAM-შიც  როგორც ჩანს. მოკლედ ეგ ჯობია რა.

ჩამომივიდა nRF24L01-ები და arduino pro mini და პატა პროექტსაც დავდებ გამოგადგებათ.

nRF24L01 + arduino UNO - დან ინფორმაციის გადაცემა nRF24L01 + arduino pro mini-ზე.

nRF24L01 არის მოდული რომელსაც შეუძლია სიგნალის გადაცემა და მიღება. მუშაობს 2.4 GHZ_ზე.

მოკლედ მიაერთებთ nRF24L01-ს UNO-სა და pro mini-ზე შემდეგნაერად

d3d0c9be04f8.jpg

  • Pin 9 -----------CE
  • Pin 10 --------- CS(N)
  • Pin 11 ---------- MOSI
  • Pin 12 --------- MISO
  • Pin 13 ---------- SCK
  • 3.3v ------------- VCC
  • GND ------------ GND

გადამცემ მოწყობილობაში ჩაწერთ ამ კოდს

Transmitter

Spoiler

#include <SPI.h>
#include <RF24.h>
#include <nRF24L01.h>

RF24 radio(9,10);
const uint64_t pipe = 0xF0F0F0F0D2L;

void setup(void)
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
  radio.stopListening();  
}

void loop(void)
{
  const char text[] = "Hello World";
  radio.write(&text, sizeof(text));
  Serial.print("message sent");
  Serial.print("\n");
  delay(1000);
 
}

 

მიმღებში ამ კოდს

Receiver

Spoiler

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(9,10);

const uint64_t pipe = 0xF0F0F0F0D2L;

void setup(void)
{
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1, pipe);
  radio.startListening(); 
}

void loop(void)
{
  if (radio.available())
  {
    char text[32] = {0};
    radio.read(&text, sizeof(text)); 
    Serial.println(text);
    delay(1000);
  }
}

 

ორივე ჩართეთ და სერიალ მონიტორით შეძლებთ arduino-ს software-დან დაკვირვებას. გადამცემი დაბეჭდავს "message sent" ხოლო მიმღები "Hello World"

ესეც მარტივი გზა უკაბელოდ ინფორმაციის გადასაცემად. შემდგომში შესაძლოა გაუმჯობესება, იმის გაგება რომ მიმღებმა ნამდვილად მიიღო ჩვენი გაგზავნილი ინფორმაცია და ა.შ. და ამ კავშირის ტემპერატურის ტენიანობის ან რამე სხვა ინფორმაციის გადასაცემად გამოყენება.

  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this