ทดสอบระยะส่ง nRF24L01+ (PA) ครั้งที่สอง

Started by JENG, July 25, 2014, 02:27:38 PM

Previous topic - Next topic

JENG

ทดสอบระยะส่ง nRF24L01+ (PA) ครั้งที่สอง
ขออนุญาตท่านผู้นำนะคับ น่าจะมีประโยชน์กับคนที่อยากลองควบคุมอะไรบางอย่างจากระยะไกลแบบไร้สาย

ธงก้อนโฟมดุ๊กดิ๊ก


ธงก้อนโฟมดุ๊กดิ๊กต่อกับ servo


พร้อมแว้ว .... ^^


ถ้าเป็นตัวไม่มี PA ระยะแค่นี้ก็เดี้ยงแล้ว


มันไกลจุงเบย ยังคุม servo ได้ปรกติ แต่เกือบมองไม่เห็นแล้ว เลยเลิก


ภาครับ



// http://www.bajdi.com
// Nrf24L01 connected to Arduino Uno
// Nrf24L01 connection details http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
// Receives analog value from transmitter and maps it to a PWM range (0-255) to dim a led


#include <SPI.h>
#include <Servo.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

int rate;
int val;


Servo myservo;  // create servo object to control a servo

void setup(){
 
  Mirf.cePin = 9;             //ce pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
  Mirf.csnPin = 10;            //csn pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
  myservo.attach(6);  // attaches the servo on pin 9 to the servo object
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"serv1");
  Mirf.payload = sizeof(rate);
  Mirf.config();
}

void loop(){

  while(!Mirf.dataReady()){
  }
  Mirf.getData((byte *) &rate);
  val = map(rate, 0, 1023, 0, 179);
  myservo.write(val);
  delay(10);
}


ภาคส่ง

// http://www.bajdi.com
// Nrf24L01 connected to Mega 2560
// Nrf24L01 connection details http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
// Transmit analog value from pin A0 to the receiver

#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

int rate;

void setup(){

  Serial.begin(9600);
  Mirf.cePin = 9;             //ce pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
  Mirf.csnPin = 10;            //csn pin on Mega 2560, REMOVE THIS LINE IF YOU ARE USING AN UNO
  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();
  Mirf.setRADDR((byte *)"clie1");
  Mirf.payload = sizeof(rate);
  Mirf.config();
}

void loop(){
  rate = analogRead(A0);

  Mirf.setTADDR((byte *)"serv1");

  Mirf.send((byte *) &rate);

  while(Mirf.isSending()){
  }
}


สรุป

ระยะที่ module ทำได้จริงๆอาจได้ถึง 500 เมตรหรือไกลกว่านั้น ผมยังอึ้งๆอยู่แบบว่าราคากับคุณภาพมัน...ที่เหลืออธิบายด้วยภาพ
รายละเอียดต่างๆหาอ่านเพิ่มเติมได้จาก internet คับ
สามารถติดตาม electoday ได้ที่

Facebook
www.facebook.com/groups/coopmicro

Google+
https://plus.google.com/communities/103482067769375459277

☺☺☺ความรู้ และความฉลาด ไม่ใช่สิ่งเดียวกัน จะมีประโยชน์อะไร ถ้าฉลาดแต่อยู่ในกะลา☺☺☺

yupetch

สุดยอดครับท่าน Jeng
นำแนวคิดใหม่ๆ มานำเสนออีกแล้ว
ขอถามต่อนิดนึงครับ
ว่า ถ้าควบคุมได้ไกลมากๆ แล้วจะทราบได้อย่างไร ว่ามันทำงานได้ถูกต้องทุกคำสั่ง อ่ะครับ

wlasoi

ใช้หลายค่าย สรุปค่าย TI ดีสุด ถ้า  2.4GHz ก็ CC2xxx ดีกว่า ครับ .. อย่าง  CC2530 ที่ใช้ใช้เสาอากาศ Micro-strip ข้ามผนัง 4 ห้อง 20 เมตรที่ 99% คนล่ะเรื่องเลย ติด PA ไปได้ 1.5-3 กิโล กันเบย  ปัญหาของ nRF24xx คือเรื่องของคุณภาพการสื่อสาร ครับ .. เจอเข้า .. ปวดหัวตั้บ!

แต่ เด่นเรื่องราคา ยังกับไล่แจก ..


JENG

Quote from: yupetch on July 25, 2014, 03:55:06 PM
สุดยอดครับท่าน Jeng
นำแนวคิดใหม่ๆ มานำเสนออีกแล้ว
ขอถามต่อนิดนึงครับ
ว่า ถ้าควบคุมได้ไกลมากๆ แล้วจะทราบได้อย่างไร ว่ามันทำงานได้ถูกต้องทุกคำสั่ง อ่ะครับ

ก็คงต้องแล้วแต่เราออกแบบคับ ว่าเราจะมีวิธี error checking แบบไหน เพราะมันรับส่งได้สองทางอยู่แล้ว
สามารถติดตาม electoday ได้ที่

Facebook
www.facebook.com/groups/coopmicro

Google+
https://plus.google.com/communities/103482067769375459277

☺☺☺ความรู้ และความฉลาด ไม่ใช่สิ่งเดียวกัน จะมีประโยชน์อะไร ถ้าฉลาดแต่อยู่ในกะลา☺☺☺

tape_4

Quote from: yupetch on July 25, 2014, 03:55:06 PM
สุดยอดครับท่าน Jeng
นำแนวคิดใหม่ๆ มานำเสนออีกแล้ว
ขอถามต่อนิดนึงครับ
ว่า ถ้าควบคุมได้ไกลมากๆ แล้วจะทราบได้อย่างไร ว่ามันทำงานได้ถูกต้องทุกคำสั่ง อ่ะครับ

ตัว module สามารถทำให้รับส่งได้ 2ทิศทางโดยการกำหนดที่ config ว่าจะต้องการรับหรือส่งครับ
จงเชื่อมั่นในสิ่งที่ทำและมีศรัทธากับสิ่งที่เราเรียนรู้

skytec

ทำเป็น two way remote น่าสนใจน่ะครับ เอามาแทน REMOTE รถยนต์ แบบ One way บ้านเรา ราคา TWO WAY Remote แพงมากๆ  :) :)
"จินตนาการสำคัญกว่าความรู้ ความรู้มีข้อจำกัด จิตนาการไร้ขอบเขต " --อัลเบิร์ต ไอสไตน์

IndigoBlue

PA คืออะไรครับ ?

ขออภัยที่ถาม ข้าพเจ้าไม่รู้จริงๆ และอยากรู้จริงๆ

ขอบคุณครับ
มองในสิ่งที่ไม่มีใครมอง สงสัยในสิ่งที่ไม่มีใครสงสัย คิดในสิ่งที่ไม่มีใครคิด ทำในสิ่งที่ไม่มีใครทำ เห็นในสิ่งที่ไม่มีใครเห็น เป็นในสิ่งที่ไม่มีใครเป็น

wlasoi

เต็มๆมันชื่อ 2.4-GHz RF Front  End ครับ ในตัวมีทั้ง PA (Poweramplifier)  , LNA Low-noise amplifier (LNA)  แต่เรียกง่ายๆ PA ขยายสัญญาน RF
เป็น chip แยกต่างหาก เช่นภ้าของ CC ก็เป็นเบอร์ CC2591