Jump to content
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

გამარჯობა :)

მაინტერესებს დაპროგრამებული არდუინოდან თუ არის შესაძლებებლი იგივე კოდის მოძებნა და ამოღება ? ეს ჩემი თემა: Arduino KY-035 Hall magnetic sensor module - Error

81nOeGRzxPL._SL1500_.jpg

Share this post


Link to post
Share on other sites

@STI-228

კოდის ამოღება მარტივი არ არის. თუ შეძელი ასამბლერში გექნება მხოლოდ. ისიც თუ stop bit აყენია, მეხსიერებიდან ვეღარ ამოიკითხავ ამ შემთხვევაში.

მაგას დაანებე თავი. არ ჩანს ისე რთული მოწყობილობა მხოლოდ ერთი სენსორი აქვს. HID ემულაცია უნდა გააკეთო და მარტივად 0-1023-მდე ან რამე მსგავსი მგრძნობელობის დონეები გაუგზავნო კომპიუტერს სენსორიდან მიღებული ინფორმაციის მიხედვით. მარტივად უნდა გააკეთო წესით შენითაც. კოდი გინახავს თან უკვე https://github.com/AM-STUDIO/Analog-E-Brake

მანდ map ფუნქციას იყენებენ ინტეჯერებში ხდება კალკულაცია ამიტომ დიდი სიზუსტე არ ექნება, თუმცა შენ რაშიც გინდა უნდა გეყოს წესით, თუ უფრო დაგჭირდება სიზუსტე მაშინ უნდა შეცვალო ეგ კოდი map ფუნქცია უნდა ამოიღო. არამგონია დაგჭირდეს. შენი სენსორი მაგნიტურ ველს ზომავს და ანალოგურია, მაგ პროექტში პოტენციომეტრს იყენებდნენ, თუმცა პირდაპირ უნდა იმუშაოს შენ შემთხვევაშიც. ცადე სენსორიც და პრო მიკროც თუ გაქვს.

  • Thanks 1

Share this post


Link to post
Share on other sites
19 hours ago, მათე said:

@STI-228

კოდის ამოღება მარტივი არ არის. თუ შეძელი ასამბლერში გექნება მხოლოდ. ისიც თუ stop bit აყენია, მეხსიერებიდან ვეღარ ამოიკითხავ ამ შემთხვევაში.

მაგას დაანებე თავი. არ ჩანს ისე რთული მოწყობილობა მხოლოდ ერთი სენსორი აქვს. HID ემულაცია უნდა გააკეთო და მარტივად 0-1023-მდე ან რამე მსგავსი მგრძნობელობის დონეები გაუგზავნო კომპიუტერს სენსორიდან მიღებული ინფორმაციის მიხედვით. მარტივად უნდა გააკეთო წესით შენითაც. კოდი გინახავს თან უკვე https://github.com/AM-STUDIO/Analog-E-Brake

მანდ map ფუნქციას იყენებენ ინტეჯერებში ხდება კალკულაცია ამიტომ დიდი სიზუსტე არ ექნება, თუმცა შენ რაშიც გინდა უნდა გეყოს წესით, თუ უფრო დაგჭირდება სიზუსტე მაშინ უნდა შეცვალო ეგ კოდი map ფუნქცია უნდა ამოიღო. არამგონია დაგჭირდეს. შენი სენსორი მაგნიტურ ველს ზომავს და ანალოგურია, მაგ პროექტში პოტენციომეტრს იყენებდნენ, თუმცა პირდაპირ უნდა იმუშაოს შენ შემთხვევაშიც. ცადე სენსორიც და პრო მიკროც თუ გაქვს.

ამის გარდა მგონი ესეც გასაკეთებელია, ისე ვერაფერს ვერ დაინახავს.

Arduino Leonardo/Micro As Game Controller/Joystick 
Arduino Joystick Library - Version 2.0

Share this post


Link to post
Share on other sites
On 6/26/2019 at 11:33 PM, STI-228 said:

ამის გარდა მგონი ესეც გასაკეთებელია, ისე ვერაფერს ვერ დაინახავს.

Arduino Leonardo/Micro As Game Controller/Joystick 
Arduino Joystick Library - Version 2.0

არის უკვე ეგ ბიბლიოთეკა იმ კოდში #include <Joystick.h> HID-ს ემულაციას გააკეთებს. ფაქტობრივად მზადაა ეგ კოდი, უბრალოდ ჩაწერე და დატესტე აბა.

 

  • Upvote 1

Share this post


Link to post
Share on other sites

Arduino Nano-ზე მჭირდება 2 მეტრიანი კაბელის ყიდვა და რომელს მირჩევთ ? თავისი ძალიან მოკლეა და თითქმის არაფერში მადგება... USB 2.0 A Male to Mini USB B 5P Male ესეთი 1.8 მეტრი ან 2 მეტრი წესით მეყოფა. ალტაში არის, მაგრამ არ უწერიათ რამდენი მეტრია: Vention USB to MiniUSB Cable

Share this post


Link to post
Share on other sites

გუშინ ვიყიდე Arduino UNO და კომპიუტერმა ვერ დაინახა პორტი. ეს ვიდეოები გამომადგა პრობლემის მოგვარებაში :)

 

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...