色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用Parallax激光傳感器制作Arduino激光機(jī)器人—第2部分

賈桂林 ? 來(lái)源:DevicePlus ? 作者:DevicePlus ? 2023-02-24 09:43 ? 次閱讀

這篇文章來(lái)源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。

點(diǎn)擊此處閱讀本文的第1部分 >

poYBAGPzFVmAItwMAAD9MWz5I-Y485.jpg

在第1部分中,我們制作了一塊定制的亞克力板底座,把NEMA 17步進(jìn)電機(jī)安裝到了底盤上。然后,我們將Arduino Uno 3和電機(jī)開(kāi)發(fā)板也連到亞克力底座上,并安裝了電機(jī)開(kāi)發(fā)板庫(kù)。在第2部分中,我們將添加機(jī)器人工作所需的其他系統(tǒng)部件,比如伺服器和激光測(cè)距儀(LRF),并編寫(xiě)一個(gè)程序,讓機(jī)器人能夠自主移動(dòng)。

有關(guān)如何利用Arduino UNO R3從零開(kāi)始搭建輪式機(jī)器人的信息,請(qǐng)參考我們?cè)谥暗奈恼隆度绾沃谱髯约旱臋C(jī)器人》 和《如何制作自己的機(jī)器人(第2部分)》。在本文中,我們將進(jìn)一步增加機(jī)器人的功能:讓該機(jī)器人動(dòng)起來(lái)并為其增加激光測(cè)距(LRF)功能,以使該設(shè)備能夠檢測(cè)物體并測(cè)量距離。

該機(jī)器人的設(shè)計(jì)目標(biāo)如下:

向前、向后移動(dòng);向左和向右旋轉(zhuǎn)90度;向左和向右旋轉(zhuǎn)45度。

避開(kāi)障礙物時(shí)根據(jù)最佳可用路徑朝不同的方向移動(dòng)。

測(cè)量各個(gè)方向(前方、左右90度、左右45度)的距離。

根據(jù)可用的最長(zhǎng)距離,確定朝哪個(gè)方向前進(jìn)(向前、向后、向左或向右)。

硬件

制作此機(jī)器人所需的硬件請(qǐng)參見(jiàn)以下硬件明細(xì),這些零部件在許多電商處都可以買到。

Arduino Uno rev 3

適用于Arduino的Adafruit步進(jìn)電機(jī)開(kāi)發(fā)套件

步進(jìn)電機(jī)

底盤、螺絲和尾輪 Parallax.com

車輪、橡膠輪胎和輪轂 Makeblock.com

伺服裝置和安裝套件

Parallax激光測(cè)距儀

OLED顯示屏

紅色包裝紙/盒

鋰聚合物電池3型(11.1V)和連接器

195 x 195 x 3mm亞克力板

軟件

Arduino IDE

Adafruit Motor Shield Library

LCD Display9696 Library.zip

工具

圓銼

Dremel 電動(dòng)工具

電烙鐵

迷你鋼鋸

安裝并測(cè)試伺服器

下一步是安裝用于平移的伺服器。首先,請(qǐng)用螺釘將兩塊小板擰到伺服基座上,然后用螺釘將其固定到亞克力底座上,如圖1和圖2所示。請(qǐng)用2個(gè)螺釘將鋁制安裝架安裝到伺服器的頂部。

poYBAGPzFVuADJUWAADU1fXwmv8185.jpg

圖1.用兩小板將伺服器固定到亞克力底座上

pYYBAGPzFV2AOe3-AACgR7lDtaY496.jpg

圖2.將鋁制安裝架安裝到伺服器上

如圖3所示,將伺服器的接頭連至電機(jī)開(kāi)發(fā)板。電機(jī)開(kāi)發(fā)板上有2個(gè)伺服器接頭,分別標(biāo)記為“servo1”和“servo2”。本次連接請(qǐng)使用servo1接頭(外側(cè)的那個(gè))。請(qǐng)注意,切勿接反。

poYBAGPzFV6AOYCmAAC1vj8Ha7s236.jpg

圖3.伺服與電機(jī)開(kāi)發(fā)板的連接

現(xiàn)在,我們可以運(yùn)行程序了,請(qǐng)將以下代碼上傳到Arduino。無(wú)需安裝新庫(kù),系統(tǒng)所需的庫(kù)(Servo.h)都已包含在Arduino IDE程序中。伺服器應(yīng)使用Digital引腳10(servo 1),或者如果伺服器連接到電機(jī)開(kāi)發(fā)板的servo 2,那么應(yīng)使用引腳11。

//***********************************************************************************************

#include 

Servo panMotor;                      // servo for laser range finder (lrf) scanning

int pos = 0;    // variable to store the servo position

const int a = 1000;

void setup()

{ panMotor.attach(10); }             // Attach Servo for scanning to pin 10

void loop()

{

// *************************** Scan Left ***********************************    

   panMotor.write(180);       // 90 degree

   delay(a);       

   panMotor.write(135);       // 45 degree

   delay(a);

// ************************** Scan Right  **********************************      

   panMotor.write(45);        // 45 degree

   delay(a);     

   panMotor.write(0);         // 90 degree

   delay(a);

// ************************* Neutral position *****************************    

   panMotor.write(90);

   delay(a);  

}

//**************************************************************************************************

代碼很簡(jiǎn)單,它負(fù)責(zé)讓機(jī)器人從左向右進(jìn)行掃描并返回原始位置。

伺服器的工作原理請(qǐng)參見(jiàn)以下視頻

安裝激光測(cè)距儀(LRF)

激光測(cè)距儀產(chǎn)品文檔– Parallax

Parallax激光測(cè)距儀(LRF)模塊是一款利用激光技術(shù)計(jì)算儀器到目標(biāo)物體的距離的測(cè)量?jī)x器。該設(shè)備根據(jù)光學(xué)三角測(cè)量法(激光、攝像頭和物體質(zhì)心之間的簡(jiǎn)單三角函數(shù))來(lái)計(jì)算儀器到目標(biāo)物體的距離。其最佳測(cè)量范圍為6–48英寸(15–122厘米),測(cè)量精度誤差<5%(平均3%)。

硬件安裝很簡(jiǎn)單。只需在亞克力板上鉆兩個(gè)與LRF位置相匹配的孔,然后用塑料墊片和螺釘將LRF固定到鋁底盤上即可(請(qǐng)參見(jiàn)圖5)。

pYYBAGPzFWCAPQ1YAACqc7ISC9c983.jpg

圖4.將LRF電纜連至電機(jī)開(kāi)發(fā)板

poYBAGPzFWSAPjGhAAEMwgPXwIU479.jpg

圖5.安裝在鋁制安裝架上的LRF

由于LRF的最佳測(cè)量值上限為122厘米,我們需要將鋁制安裝架稍微向前彎曲,以使該范圍始終小于120厘米(圖6)。

poYBAGPzFWWAIg4gAABEMQ6vH5g724.jpg

圖6.向前彎曲鋁制安裝架,使激光到地的距離小于120厘米

請(qǐng)完全按照?qǐng)D7將電纜接頭連至LRF。GND接地,VCC接5V,SOUT接引腳8,SIN接引腳9。

pYYBAGPzFWeAKKP2AADaWeq-Sg0544.jpg

圖7. LRF與電機(jī)開(kāi)發(fā)板的連接

我們已經(jīng)完成了LRF的安裝和連接,現(xiàn)在就來(lái)上傳代碼吧!同樣,無(wú)需安裝庫(kù)。我們要用的SoftwareSerial.h已經(jīng)包含在Arduino IDE中。

下面的代碼源自示例代碼,我們只是進(jìn)行了一些修改,將距離數(shù)據(jù)從字符串轉(zhuǎn)換為整數(shù)。其作用是測(cè)量傳感器到前方物體的距離并打印結(jié)果。我們用串行監(jiān)視器顯示結(jié)果。

// **************************************************************************************************************************************************

#include 

#define rxPin     8                   // Serial input (connects to the LRF's SOUT pin)

#define txPin     9                   // Serial output (connects to the LRF's SIN pin)

#define ledPin   13                   // Most Arduino boards have an on-board LED on this pin

#define BUFSIZE  16                   // Size of buffer

int  lrfDataInt;

SoftwareSerial lrfSerial =  SoftwareSerial(rxPin, txPin);

void setup()                          // Set up code called once on start-up

{

 // *************************************** setup for LRF ***********************************************

 pinMode(ledPin, OUTPUT);

 pinMode(rxPin, INPUT);

 pinMode(txPin, OUTPUT);

 digitalWrite(ledPin, LOW);                // turn LED off

 Serial.begin(9600);

 while (!Serial);                          // Wait until ready

 Serial.println("nnParallax Laser Range Finder");

 lrfSerial.begin(9600);

 Serial.print("Waiting for the LRF...");

 delay(2000);                             // Delay to let LRF module start up

 lrfSerial.print('U');                    // Send character

 while (lrfSerial.read() != ':');   

 delay(10);                               // Short delay

 lrfSerial.flush();                       // Flush the receive buffer

 Serial.println("Ready!");

 Serial.flush();                          // Wait for all bytes to be transmitted to the Serial Monitor

}

 // ******************************************  main loop ************************************************

void loop()  // Main code, to run repeatedly

{

 lrf();

}

 // ****************************************** end main loop *********************************************

void lrf()

{

 lrfSerial.print('R');                    // Send command

 digitalWrite(ledPin, HIGH);              // Turn LED on while LRF is taking a measurement

 char lrfData[BUFSIZE];                   // Buffer for incoming data

 int  lrfDataInt1;

 int  lrfDataInt2;

 int  lrfDataInt3;

 int  lrfDataInt4;

 int offset = 0;                          // Offset into buffer

 lrfData[0] = 0;                          // Clear the buffer    

 

 while(1)

 {

   if (lrfSerial.available() > 0)         // If there are any bytes available to read, then the LRF must have responded

   {

     lrfData[offset] = lrfSerial.read();  // Get the byte and store it in our buffer

     if (lrfData[offset] == ':')          // If a ":" character is received, all data has been sent and the LRF is ready to accept the next command

      { lrfData[offset] = 0;              // Null terminate the string of bytes we just received

       break; }                           // Break out of the loop

     offset++;                            // Increment offset into array

     if (offset >= BUFSIZE) offset = 0;   // If the incoming data string is longer than our buffer, wrap around to avoid going out-of-bounds

   }

 }

 lrfDataInt1 = ( lrfData[5] -'0');

 lrfDataInt2 = ( lrfData[6] -'0');

 lrfDataInt3 = ( lrfData[7] -'0');

 lrfDataInt4 = ( lrfData[8] -'0');

 lrfDataInt = (1000*lrfDataInt1)+ (100*lrfDataInt2)+(10*lrfDataInt3) + lrfDataInt4;

 

 Serial.print("Distance = ");             // The lrfData string should now contain the data returned by the LRF, so display it on the Serial Monitor

 Serial.println(lrfDataInt);

 Serial.flush();                          // Wait for all bytes to be transmitted to the Serial Monitor

 digitalWrite(ledPin, LOW);               // Turn LED off

 delay(1000);

}

//*************************************************************************************************************************************************

串行監(jiān)視器顯示的結(jié)果如下所示。所有尺寸的單位均為毫米。

poYBAGPzFWiANowOAABOu-nLiDA485.jpg

安裝OLED顯示屏

首先,我們將OLED塑料盒安裝到亞克力底座中(請(qǐng)參見(jiàn)圖9),然后再將OLED顯示屏附帶的線纜一端連至顯示屏。要將顯示屏連至電機(jī)開(kāi)發(fā)板,請(qǐng)將線纜另外一端jst接頭上的線纜剪下,然后將紅導(dǎo)線焊至5V,將黑導(dǎo)線焊至Ground,將黃導(dǎo)線焊至SDA引腳,將綠導(dǎo)線焊至SCL引腳。請(qǐng)確保OLED顯示屏的背面朝外。

pYYBAGPzFWqAO5-pAADwDy3gN6U769.jpg

圖8 . OLED與電機(jī)開(kāi)發(fā)板之間的連接

將OLED固定在底座上并連接電纜后,我們就可以運(yùn)行部分軟件了。

首先,請(qǐng)確保已經(jīng)安裝了SeeedOLED.h。然后,將以下代碼上傳到Arduino。該代碼使用了名為oled1的函數(shù),稍后的最終編碼也會(huì)使用該函數(shù)。其基本功能就是顯示100到109的數(shù)字。

//*****************************************************************************************************************************************

#include 

#include 

int distanceFwd;

void setup()

{ Wire.begin();}

void loop()

{

 int i = 0;

for (i; (i < 10); i ++)

{ distanceFwd = 100 + i;

oled1();

delay(1000); }

}

  void oled1()

 {

 SeeedOled.clearDisplay();           //clear the screen and set start position to top left corner

 SeeedOled.setNormalDisplay();       //Set display to Normal mode

 SeeedOled.setPageMode();            //Set addressing mode to Page Mode

 SeeedOled.setTextXY(3,3);          

 SeeedOled.putString("Forward :");

 SeeedOled.setTextXY(5,9);

 SeeedOled.putNumber(distanceFwd);

 }  

//*****************************************************************************************************************************************

程序正常運(yùn)行時(shí),顯示屏應(yīng)該會(huì)顯示以下視頻中的內(nèi)容:

安裝最終代碼

現(xiàn)在,我們已經(jīng)完成了所有硬件的安裝并測(cè)試了各個(gè)設(shè)備。讓我們把所有軟硬件結(jié)合起來(lái),構(gòu)建一個(gè)可以自主移動(dòng)的智能激光機(jī)器人吧。最終程序會(huì)執(zhí)行以下功能:

測(cè)量前方距離

如果距離超過(guò)70厘米,機(jī)器人將向前移動(dòng)500步(大約50厘米);

如果距離大于40厘米小于70cm,機(jī)器人將向前移動(dòng)200步(20厘米);

如果距離小于40厘米,機(jī)器人會(huì)向左掃描90度,向左掃描45度,向右掃描45度,向右掃描90度;

測(cè)量每個(gè)方向的距離,然后計(jì)算哪個(gè)方向的測(cè)量距離最長(zhǎng);

轉(zhuǎn)向距離最長(zhǎng)的那個(gè)方向;

返回第一步。

請(qǐng)復(fù)制以下代碼并將其上傳到Arduino:

//*********************************************************************************************************************

#include 

#include 

#include "utility/Adafruit_MS_PWMServoDriver.h"

#include 

#include 

#include 

#define ledPin   13                                         

#define BUFSIZE  16   

#define rxPin    8                                          // Serial input (connects to the LRF's SOUT pin)

#define txPin    9                                          // Serial output(connects to the LRF's SIN pin)

SoftwareSerial lrfSerial =  SoftwareSerial(rxPin, txPin);   // Size of buffer (in bytes) for incoming data

// Create the motor shield object with the default I2C address

  Adafruit_MotorShield AFMS = Adafruit_MotorShield();

// Connect a stepper motor with 200 steps per revolution (1.8 degree)

  Adafruit_StepperMotor *myMotor1 = AFMS.getStepper(200, 1);  // motor port #1 (M1 and M2)

  Adafruit_StepperMotor *myMotor2 = AFMS.getStepper(200, 2);  // motor port #2 (M3 and M4)

  Servo panMotor;                                             // servo for laser range finder (lrf) scanning

  int leftDistance1;

  int leftDistance2;

  int rightDistance1;

  int rightDistance2;

  int maxDistance;

  int angleTurn;

  int directions;

  int distanceFwd;  

  const int a = 30;                  

//*********************************************************************************start set up **************************

void setup() {

 Serial.begin(9600);                                       // set up Serial library at 9600 bps

 panMotor.attach(10);                                      // Attach Servo for scanning to pin 10

 

 AFMS.begin();                                             // create with the default frequency 1.6KHz

 myMotor1->setSpeed(100);                                  // Set stepmotor1 speed at 100 rpm   

 myMotor2->setSpeed(100);                                  // Set stepmotor2 speed at 100 rpm   

 pinMode(ledPin, OUTPUT);

 

 pinMode(rxPin, INPUT);                                    // Input pin for LRF

 pinMode(txPin, OUTPUT);                                   // Output pin for LRF

 digitalWrite(ledPin, LOW);                                // turn LED off

 Serial.begin(9600);

 while (!Serial);                                          // Wait until ready

 lrfSerial.begin(9600);

 Serial.print("Waiting for the LRF...");

 delay(2000);                                              // Delay to let LRF module start up

 lrfSerial.print('U');                                     // Send character

 while (lrfSerial.read() != ':');                        

 delay(10);                                                // Short delay

 lrfSerial.flush();                                        // Flush the receive buffer

 Serial.println("Ready!");

 Serial.flush();                                           // Wait for all bytes to be transmitted to the Serial Monitor

 panMotor.write(90);

 delay(a);

}

//******************************************************************* start Loop *****************************************

void loop()

{

 distanceFwd = lrf();

 maxDistance = distanceFwd;

 oled1();

 if (distanceFwd > 700)

 { Motor(500,1);}

 else

 if (distanceFwd > 400)

 { Motor(200,1);}

 else                                                           // if path is blocked

 { checkTurn();

  turn();}     

}

//***************************************************************** check turn  function ********************************

void checkTurn()

 {

    digitalWrite(ledPin, HIGH);     

// ************************** Scan Left ***********************************   

   panMotor.write(180);

   delay(a);

   leftDistance1 = lrf();       

   

   panMotor.write(135);

   delay(a);

   leftDistance2 = lrf();

   oled();  

    

// *************************** Scan Right  *********************************       

   panMotor.write(45);

   delay(a);

   rightDistance2 = lrf();  

      

   panMotor.write(0);

   delay(a);

   rightDistance1 = lrf();

   oled();

   panMotor.write(90);

    

  digitalWrite(ledPin, LOW);

// ************************************ Turn Left ************************

     maxDistance = leftDistance1;

     angleTurn = 100;

     directions = 0;          

if (maxDistance <= leftDistance2)

    {angleTurn = 50;

     maxDistance = leftDistance2;

     directions = 0;

    }           

//*********************************** Turn Right ***********************            

if (maxDistance <= rightDistance2)

      {angleTurn = 50;

      maxDistance = rightDistance2;

      directions = 1;  

      }

      

if (maxDistance <= rightDistance1)

      {angleTurn = 100;

      maxDistance = rightDistance1;

      directions = 1;

      }                 

// ******************************* Turn Back******************************

 if ((leftDistance1 < 300) && (rightDistance1 <300) && (distanceFwd <300))

   {angleTurn = 200;

   directions = 3;

   }                 

 }

   

//************************************************ turn function *********************************************************

void turn()  

{

   rightDistance1 = 0;

   rightDistance2 = 0;

   leftDistance1  = 0;

   leftDistance2  = 0;

   

   if (directions == 0) // turn left  

    { Motor(angleTurn,3);}

   if (directions == 1) // turn right

    { Motor(angleTurn,4);}

   if (directions == 3) // turn back

    { Motor(angleTurn,4);}

 }

//***************************************  Stepper Motor function    ****************************************************

void Motor(int x,int y)

{

  int i = 0;

 for ( i; (i < x); i ++)

 {

  if (y == 1)   // move forward

 {myMotor1->step(1, FORWARD, SINGLE);

 myMotor2->step(1, BACKWARD, SINGLE);}

 

  if (y == 2)   // move backward

 {myMotor1->step(1, BACKWARD, SINGLE);

 myMotor2->step(1, FORWARD, SINGLE);}

 

 if (y == 3)    // move left

  { myMotor1->step(1, FORWARD, SINGLE);

 myMotor2->step(1, FORWARD, SINGLE);}

 

 if (y == 4)    // move right

  { myMotor1->step(1, BACKWARD, SINGLE);

 myMotor2->step(1, BACKWARD, SINGLE);}

 }

}

//***********************************************************************  LRF function *******************************

long lrf()

{

 lrfSerial.print('R');         // Send command

 digitalWrite(ledPin, HIGH);   // Turn LED on while LRF is taking a measurement

 char lrfData[BUFSIZE];        // Buffer for incoming data

 int  lrfDataInt1;

 int  lrfDataInt2;

 int  lrfDataInt3;

 int  lrfDataInt4;

 int  lrfDataInt;

 int offset = 0;              // Offset into buffer

 lrfData[0] = 0;              // Clear the buffer    

 

 while(1)

 {

   if (lrfSerial.available() > 0)

   {

     lrfData[offset] = lrfSerial.read();  

     if (lrfData[offset] == ':')        

      { lrfData[offset] = 0;

        break;}               

     offset++;

     if (offset >= BUFSIZE) offset = 0;

   }

 }

 lrfDataInt1 = ( lrfData[5] -'0');

 lrfDataInt2 = ( lrfData[6] -'0');

 lrfDataInt3 = ( lrfData[7] -'0');

 lrfDataInt4 = ( lrfData[8] -'0');

 lrfDataInt = (1000*lrfDataInt1)+ (100*lrfDataInt2)+(10*lrfDataInt3) + lrfDataInt4;     

 Serial.flush();            

 digitalWrite(ledPin, LOW);  

 return lrfDataInt;

}

//********************************************************* Oled function ************************************************

 void oled()

 {

 SeeedOled.clearDisplay();           //clear the screen and set start position to top left corner

 SeeedOled.setNormalDisplay();       //Set display to Normal mode

 SeeedOled.setPageMode();            //Set addressing mode to Page Mode

 SeeedOled.setTextXY(0,0);          

 SeeedOled.putString("Left 1:");

 SeeedOled.setTextXY(0,12);

 SeeedOled.putNumber(leftDistance1);   

 SeeedOled.setTextXY(2,0);          

 SeeedOled.putString("Left 2:");

 SeeedOled.setTextXY(2,12);

 SeeedOled.putNumber(leftDistance2);   

 SeeedOled.setTextXY(4,0);          

 SeeedOled.putString("Right 1:");

 SeeedOled.setTextXY(4,12);

 SeeedOled.putNumber(rightDistance1);

 SeeedOled.setTextXY(6,0);          

 SeeedOled.putString("Right 2:");

 SeeedOled.setTextXY(6,12);

 SeeedOled.putNumber(rightDistance2);       

 }

   void oled1()

 {

 SeeedOled.clearDisplay();           //clear the screen and set start position to top left corner

 SeeedOled.setNormalDisplay();       //Set display to Normal mode

 SeeedOled.setPageMode();            //Set addressing mode to Page Mode

 SeeedOled.setTextXY(3,3);          

 SeeedOled.putString("Forward :");

 SeeedOled.setTextXY(5,9);

 SeeedOled.putNumber(distanceFwd);

 }  

//***********************************************************************************************************************************

poYBAGPzFVmAItwMAAD9MWz5I-Y485.jpg

圖9. OLED顯示屏安裝在亞克力底座上的最終效果

結(jié)論

在之前的文章《如何制作自己的機(jī)器人》和《如何制作自己的機(jī)器人(第2部分)》中,我們用步進(jìn)電機(jī)制作了一款簡(jiǎn)單的輪式機(jī)器人。這次,我們對(duì)其進(jìn)行了功能改進(jìn):為機(jī)器人增加了激光測(cè)距儀(LRF)功能,并且安裝了輪子,讓機(jī)器人能夠自由移動(dòng)。我一直想制作一款能夠進(jìn)行測(cè)量的設(shè)備。在本例中,憑借激光傳感器,我們的機(jī)器人不僅能夠檢測(cè)并避開(kāi)物體,同時(shí)還能獲取更準(zhǔn)確的距離數(shù)據(jù)。激光機(jī)器人還有許多其他應(yīng)用場(chǎng)景。您也可以利用該激光傳感器設(shè)計(jì)自己喜歡的有趣項(xiàng)目。

接下來(lái),我們會(huì)做一些更炫酷的事情,敬請(qǐng)期待!

pYYBAGPzFWyADVB1AAAGS83r-qY435.jpg

Purnomo Nuhalim

來(lái)自墨爾本的Purnomo是一名退休人員,也是電子發(fā)燒友。目前,他正使用Arduino和Raspberry Pi從事各種開(kāi)放式硬件項(xiàng)目的研發(fā)。除了電子學(xué),他還對(duì)航空建模和天文學(xué)充滿熱情。

審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29556

    瀏覽量

    211906
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6273

    瀏覽量

    227380
  • 激光傳感器
    +關(guān)注

    關(guān)注

    2

    文章

    159

    瀏覽量

    21786
  • Arduino
    +關(guān)注

    關(guān)注

    189

    文章

    6493

    瀏覽量

    190283
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)》——低成本DIY機(jī)器人,一本機(jī)器人制作的經(jīng)典入門書(shū)

    基礎(chǔ)、機(jī)器人本體、電子控制設(shè)備、傳感器與導(dǎo)航和機(jī)器人電源系統(tǒng)等。《機(jī)器人設(shè)計(jì)與實(shí)現(xiàn)》是按照搭積木的方法指導(dǎo)機(jī)器人愛(ài)好者如何設(shè)計(jì)、
    發(fā)表于 08-01 18:21

    智能機(jī)器人對(duì)于傳感器的需求

    `  智能機(jī)器人的外部傳感器大致可分為力學(xué)傳感器,觸覺(jué)傳感器,接近傳感器,視覺(jué)傳感器,滑覺(jué)
    發(fā)表于 01-20 14:56

    自律型機(jī)器人制作入門.基于Arduino

    [size=0.83em]自律型機(jī)器人制作入門.基于Arduino.jpg(101.91 KB, 下載次數(shù): 0)下載附件[color=rgb(153, 153, 153) !important
    發(fā)表于 06-23 11:18

    用于機(jī)器人或無(wú)人機(jī)的低成本激光導(dǎo)航傳感器設(shè)計(jì)

    摘要——許多室內(nèi)機(jī)器人或無(wú)人機(jī)系統(tǒng),使用激光測(cè)距傳感器作為他們的主要導(dǎo)航傳感器,用來(lái)畫(huà)圖、定位和避障。這種系統(tǒng)的成本和耗電都是個(gè)問(wèn)題,這對(duì)于低成本高效率的場(chǎng)合而言,是個(gè)障礙。本文,描述
    發(fā)表于 06-21 10:08

    機(jī)器人產(chǎn)品傳感器越多,就越能有效避障?

      激光雷達(dá)作為自動(dòng)駕駛和機(jī)器人等領(lǐng)域中的重要傳感器,一直扮演著“眼睛”的角色,360°掃描周圍環(huán)境,構(gòu)建厘米級(jí)別高精度地圖,為后續(xù)避障導(dǎo)航做輔助。  但如果僅使用激光雷達(dá)作為唯一的避
    發(fā)表于 08-27 15:44

    機(jī)器人傳感器的類別和應(yīng)用原理

    一般機(jī)器人系統(tǒng)由機(jī)械手、環(huán)境、任務(wù)和控制四個(gè)互相作用的部分組成。我們稱一般安裝在機(jī)器人機(jī)械手上的傳感器為內(nèi)
    發(fā)表于 11-08 15:55

    博智慧達(dá)激光焊縫跟蹤成功與金紅鷹機(jī)器人完成通訊

    相機(jī)和激光焊縫跟蹤傳感器及其控制裝置等。博智慧達(dá)的智能激光焊縫跟蹤系統(tǒng)可以和各種焊接機(jī)器人通訊,從而提高焊接質(zhì)量。焊縫跟蹤:激光焊縫跟蹤系統(tǒng)
    發(fā)表于 04-13 10:30

    激光焊縫跟蹤傳感器協(xié)助川崎機(jī)器人對(duì)汽車車架焊接尋位引導(dǎo)糾偏

    激光焊縫跟蹤傳感器協(xié)助川崎機(jī)器人對(duì)汽車車架焊接尋位引導(dǎo)糾偏機(jī)器人在焊接車架過(guò)程中由于工裝夾具及來(lái)料位置不準(zhǔn)會(huì)出現(xiàn)與原先機(jī)器人的示教位置產(chǎn)生偏
    發(fā)表于 12-02 09:37

    LDS激光測(cè)距傳感器

    比較全的傳感器產(chǎn)品介紹 激光測(cè)距傳感器獲取距離信息。當(dāng)激光投射到障礙物上時(shí),會(huì)在傳感器里形成光斑。同時(shí),圖像
    發(fā)表于 09-14 07:44

    機(jī)器人傳感器分類方法

    一般機(jī)器人系統(tǒng)由機(jī)械手、環(huán)境、任務(wù)和控制四個(gè)互相作用的部分組成。我們稱一般安裝在機(jī)器人機(jī)械手上的傳感器為內(nèi)
    發(fā)表于 09-16 08:45

    使用Arduino和PAJ7620手勢(shì)傳感器制作手勢(shì)控制機(jī)器人

    使用Arduino和PAJ7620手勢(shì)傳感器制作手勢(shì)控制機(jī)器人,簡(jiǎn)單程序即可實(shí)現(xiàn)。小小的傳感器可以識(shí)別各種手勢(shì)。它采用內(nèi)置的空間
    發(fā)表于 09-27 06:17

    光纖激光機(jī)器人切割焊接技術(shù)

    光纖激光機(jī)器人切割焊接技術(shù) 1 系統(tǒng)的特點(diǎn)   激光機(jī)器人切割焊接系統(tǒng)是在上海團(tuán)結(jié)普瑞瑪激光設(shè)備有限公司承接的國(guó)家863重點(diǎn)研究
    發(fā)表于 04-30 10:35 ?2841次閱讀

    利用Parallax激光傳感器制作Arduino激光機(jī)器人1部分

    在本文中,我們將進(jìn)一步增加機(jī)器人的功能:讓它能夠動(dòng)起來(lái)并且添加激光測(cè)距(LRF)功能,以使該設(shè)備能夠檢測(cè)物體并測(cè)量距離。激光傳感器會(huì)幫我們獲得更準(zhǔn)確、更可靠的數(shù)據(jù)。該
    的頭像 發(fā)表于 02-24 15:24 ?1449次閱讀
    <b class='flag-5'>利用</b><b class='flag-5'>Parallax</b><b class='flag-5'>激光</b><b class='flag-5'>傳感器</b><b class='flag-5'>制作</b><b class='flag-5'>Arduino</b><b class='flag-5'>激光機(jī)器人</b>—<b class='flag-5'>第</b>1<b class='flag-5'>部分</b>

    最酷的Kickstarter機(jī)器人 2部分 – 以往成果

    本文是最酷Kickstarter資助的機(jī)器人項(xiàng)目系列文章的2部分
    的頭像 發(fā)表于 02-28 15:20 ?1236次閱讀
    最酷的Kickstarter<b class='flag-5'>機(jī)器人</b> <b class='flag-5'>第</b><b class='flag-5'>2</b><b class='flag-5'>部分</b> – 以往成果

    什么是激光機(jī)器人激光機(jī)器人具有哪些特點(diǎn)?

    激光機(jī)器人是指搭載激光器機(jī)器人利用激光器所輸出的高能量激光束進(jìn)行各種加工或處理操作。
    發(fā)表于 06-05 09:08 ?959次閱讀
    主站蜘蛛池模板: 美女的隐私蜜桃传媒免费看 | 国产无遮挡色视频免费观看性色 | 亚洲国产精品热久久 | 做你的爱人BD日本 | 亚洲欧美一区二区久久 | 午夜伦伦电影理论片大片 | 日韩亚洲欧美中文在线 | 被老头下药玩好爽 | 欧美506070 | 青柠在线观看视频在线高清 | 伊人久久艹| 91久久线看在观草草青青 | WWW久久只有这里有精品 | 久久免费看少妇级毛片蜜臀 | 亚洲VA欧美VA天堂V国产综合 | 99久久国产露脸精品竹菊传煤 | 国模精品一区二区三区视频 | 久久久久亚洲日日精品 | 亚洲 日韩 在线 国产 精品 | 日韩免费视频一区 | 老阿姨才是最有味的一区二区 | 波野结衣qvod | 久久久97人妻无码精品蜜桃 | 久久久中日AB精品综合 | 久久精品九九亚洲精品天堂 | 伊人久久中文大香线蕉综合 | 久久www99re在线播放 | 成人午夜精品久久久久久久秋霞 | 拔萝卜电视剧高清免费 | 97久久无码精品AV | babesvideos性欧美| 国产精品高潮呻吟AV久久96 | 久久亚洲电影www电影网 | 亚洲欧洲日产国码中学 | 一级做a爰片久久毛片苍井优 | 小小水蜜桃3视频在线观看 小向美奈子厨房magnet | 九九热视频这里只有精 | 蕾丝边娱乐网 | 亚洲精品久久久久AV无码林星阑 | 亚洲精品色情APP在线下载观看 | 91传媒蜜桃香蕉在线观看 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品