0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

如何將1個或多個Arduino與樹莓派結合使用

454398 ? 來源:網(wǎng)絡整理 ? 作者:網(wǎng)絡整理 ? 2019-11-19 11:12 ? 次閱讀

步驟1:RaspberryPi電路

如何將1個或多個Arduino與樹莓派結合使用

您將需要一種將RaspberryPi線路連接到面包板的方法。您可以使用公/母跳線,但是本頁上列出的Adafruit的Pi補鞋匠將使其變得更容易:http://www.adafruit.com/search?q=cobbler

對于您還將需要的RaspberryP電路:

RaspberryPi

面包板

跳線

2-LED,我用了一個紅色和綠色。

2-330-560歐姆電阻,用于LED。

1-按鈕開關

1-10K電阻,下拉電阻用于開關。

使用這些部件復制上圖中的電路。

除了http://www.adafruit上Adafruit的電阻器外,您還可以獲取所需的一切。 .com/

或在Sparkfun上https://www.sparkfun.com/

Sparkfun還提供了一個不錯的電阻器組合,其中包括您需要的每個電阻值中的25個,您可以在這里https://www.sparkfun.com/products/10969。

第2步:Arduino電路

第一個Arduino使用了從RaspberryPi調(diào)用的pinMode(),digitalRead(),digitalWrite(),analogRead()和pwmWrite()函數(shù)。這是我知道將最簡單的方法添加到RaspberryPi的模數(shù)轉(zhuǎn)換器。請注意,connectionPi使用pwmWrite而不是AnalogWrite,它更準確。

第二個Arduino只是在RaspberryPi的控制下,閃爍了13針上的內(nèi)置LED。這只是表明它確實可以控制多個Arduino。它還顯示了connectionPi的多線程功能的很好但簡單的使用。

如果只有一個Arduino,您仍然可以嘗試該程序,第5步是使用一個arduino的程序。

我在原型屏蔽板上構建了Arduino電路,但我展示了

對于Arduino電路,您將需要:

2-Arduinos

2-連接到的USB電纜RaspberryPi

面包板

跳線

2-LED,我使用了一個紅色和一個綠色。

2-330-560歐姆電阻,用于LED。

1-按鈕開關

1-電阻傳感器

2-10K電阻,開關和傳感器的下拉電阻。

使用這些部件復制上圖中的電路。

我在電阻傳感器中使用了力敏電阻,但是光電管或彎曲傳感器也能正常工作。您也可以使用電位計。要為電位器接線,請忘掉10K電阻,將中間引線連接到該引腳,一端引線連接到正極軌,另一端接地。

步驟3:代碼

為您的RaspberryPi下載此程序。

使用以下命令對其進行編譯:

gcc -o DRCtest DRCtest.c -lwiringPi -lpthread

并使用以下命令運行它:

sudo 。/DRCtest

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

* DRCtest.c - Test program for Drogon Remote Control. (DRC)

*

* On the first Arduino:

* LEDs are connected to pins nine and eleven, with 560 Ohm current limiting resistors.

* A push button switch is connected to pin five, with a 10K pull-down resistor.

* A resistive sensor is connected to analog pin zero, with a 10K pull-down resistor.

* The only connection to the RaspberryPi is the USB cable.

* The program in the RaspberryPi is controling the Arduino.

* The DRC.ino program must be installed and running.

*

* Nothing is connected to the second Arduino.

*

* On the RaspberryPi:

* LEDs are connected to pins nine and eleven, with 560 Ohm current limiting resistors.

* A push button switch is connected to pin five, with a 10K pull-down resistor.

* The pin numbers for the RaspberryPi use the wiringPi pin numbering scheme.

*

* The loop() function does a digitalRead of the push button on the Arduino

* and digitalWrites the value to the both red LEDs

* Next it performs an analogRead of the force sensitive resistor, divides

* the value by four, and pwmWrites the value to both green LEDs.

* Then is does a digitalRead of the push button on the RaspberryPi

* and digitalWrites the value to the both red LEDs

*

************************************************************************/#include

#include

#include

#define BASE 100

#define BASE2 200/*****************************************************************************

* The second thread blinks the built in LED on pin 13 of the Second Arduino.

* The code here runs concurrently with the main program in an infinite loop.

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

PI_THREAD(arduino2)

{

for(;;)

{

digitalWrite(BASE2+13, HIGH); // Turn pin 13 on.

delay(500);

digitalWrite(BASE2+13, LOW); // Turn pin 13 off.

delay(500);

}

}/**************************************************************************

* setup() function

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

void setup(void)

{

wiringPiSetup();

drcSetupSerial(BASE, 20, “/dev/ttyACM0”, 115200);

drcSetupSerial(BASE2, 20, “/dev/ttyACM1”, 115200);

int x = piThreadCreate(arduino2); // Start second thread.

if (x != 0) printf(“It didn‘t start. ”);

// Pins on Arduino:

pinMode (BASE+11, PWM_OUTPUT); // Reset pin to maximum value

pwmWrite(BASE+11, 255); // after PWM write.

pinMode (BASE+5, INPUT); // Pin 5 used for digitalRead.

pinMode (BASE+9, PWM_OUTPUT); // Pin 9 used for pwmWrite.

// Pin A0 is used for analogRead.

// Pins on second Arduino:

pinMode (BASE2+13, OUTPUT); // Pin 13 used for digitalWrite.

// Pins on RaspberryPi:

pinMode(0, OUTPUT); // Pin 0 used for digitalWrite.

pinMode(5, INPUT); // Pin 5 used for digitalRead.

pinMode(1, PWM_OUTPUT); // Pin 1 used for pwmWrite.

}/**************************************************************************

* loop() function

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

void loop(void)

{

digitalWrite(BASE+11, digitalRead(BASE+5)); // If Arduino button is pressed

digitalWrite(0, digitalRead(BASE+5)); // turn on both red LEDs.

pwmWrite(BASE+9, (analogRead(BASE)/4)); // Varies the brightness of both green

pwmWrite(1, (analogRead(BASE)/4)); // LEDs according to pressure applied

// to the force sensitive resistor.

digitalWrite(BASE+11, digitalRead(5)); // If RaspberryPi button is pressed

digitalWrite(0, digitalRead(5)); // turn on both red LEDs.

}/**************************************************************************

* main() function

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

int main (void)

{

setup();

for(;;)

{

loop();

}

return 0 ;

}

第4步:將它們放在一起

將第6步中的Arduino草圖上傳到您將要使用的Arduino。

關閉RaspberryPi并連接RaspberryPi電路。插入USB端口之前必須先關閉RaspberryPi,否則RaspberryPi不會將它們注冊為正確的設備。第一個Arduino是/dev/ttyACM0,第二個是/dev/ttyACM1。如果您沒有將Arduinos插入正確的USB端口,則會將命令發(fā)送到錯誤的Arduino。在B +型上,第一個Arduino在與GPIO接頭相同的頂部USB端口中。第二個Arduino在下面的底部USB端口中。如果您使用的是USB集線器,則必須在各個端口之間切換以查看其工作原理。

打開RaspberryPi并使用以下命令運行該程序:

sudo 。/DRCtest

按下RaspberryPi電路上的按鈕應點亮紅色LED。 RaspberryPi電路和第一個Arduino。

按下第一個Arduino上的按鈕也會點亮兩個紅色LED。

改變電阻傳感器會導致綠色LED的亮度發(fā)生變化。

在第二個Arduino上,板載引腳13指示器LED應當閃爍并熄滅。

如果第一次不起作用,請關閉所有設備并反轉(zhuǎn)USB端口。

步驟5:使用一個Arduino運行程序

如果沒有第二個Arduino,您仍然可以嘗試演示。

下載此版本的程序并使用以下命令進行編譯:

gcc- o DRCtest-1 DRCtest-1.c -lwiringPi

并使用以下命令運行程序:

sudo 。/DRCtest-1

僅使用一個Arduino您可以在關閉電源的情況下將Arduino插入任何USB端口,然后它將正常工作。

責任編輯:wv

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

    關注

    187

    文章

    6461

    瀏覽量

    186528
  • 樹莓派
    +關注

    關注

    116

    文章

    1697

    瀏覽量

    105461
收藏 人收藏

    評論

    相關推薦

    樹莓Arduino的區(qū)別是什么

    在當今的科技世界中,樹莓(Raspberry Pi)和Arduino是兩經(jīng)常被提及的名字。它們都是開源硬件平臺,但它們的目標、功能和用途卻大相徑庭。
    的頭像 發(fā)表于 11-11 11:14 ?172次閱讀

    樹莓gpio有什么用,樹莓gpio接口及編程方法

    一、樹莓GPIO的用途 樹莓(Raspberry Pi)是一款小巧、功能強大的單板計算機,廣泛應用于編程教育、物聯(lián)網(wǎng)項目、家庭媒體中心等領域。GPIO(General Purpos
    的頭像 發(fā)表于 10-22 18:09 ?370次閱讀

    什么是樹莓樹莓是什么架構的

    什么是樹莓 樹莓(Raspberry Pi,簡寫為RPi,別名為RasPi/RPI)是由英國“Raspberry Pi 慈善基金會”開發(fā)的一款為學習計算機編程教育而設計的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?334次閱讀

    樹莓和51單片機哪個有優(yōu)勢

    樹莓和51單片機是兩種不同的硬件平臺,它們各自有其特點和優(yōu)勢。在決定使用哪一之前,我們需要了解它們的基本特性、應用場景和開發(fā)難度。 1. 簡介 1.1
    的頭像 發(fā)表于 09-02 09:04 ?612次閱讀

    樹莓的功能用途是什么

    樹莓(Raspberry Pi)是一款由英國樹莓基金會研發(fā)的信用卡大小的單板計算機,自2012年推出以來,已經(jīng)發(fā)展出多個型號和版本。
    的頭像 發(fā)表于 08-30 18:01 ?2099次閱讀

    樹莓4b和什么性能計算機相當

    樹莓4B與何種性能的計算機相當,這個問題涉及到多個方面的比較,包括處理器性能、內(nèi)存大小、接口豐富度以及應用場景等。以下是從這些方面進行的綜合分析: 1. 處理器性能
    的頭像 發(fā)表于 08-30 17:01 ?748次閱讀

    樹莓裝ubuntu和raspbian哪個更好

    樹莓(Raspberry Pi)是一款由英國樹莓基金會開發(fā)的單板計算機,廣泛應用于教育、科研、物聯(lián)網(wǎng)等領域。樹莓
    的頭像 發(fā)表于 08-30 15:41 ?985次閱讀

    樹莓和arm開發(fā)板的區(qū)別

    樹莓(Raspberry Pi)和ARM開發(fā)板都是基于ARM架構的微型計算機,但它們之間存在一些關鍵區(qū)別。 一、歷史背景 樹莓(Raspberry Pi)
    的頭像 發(fā)表于 08-30 15:36 ?727次閱讀

    樹莓5,Raspberry Pi 5 評測

    會觸發(fā)安全關機。這種關機更像是待機模式,樹莓的功耗為1.4瓦。按下電源按鈕啟動樹莓5。你還可以編程操作系統(tǒng),
    發(fā)表于 06-19 14:51

    新手入門如何選擇Arduino樹莓?

    樹莓2的主頻速度和內(nèi)存量兩主要方面都遠高于Arduino。樹莓可以被看作一臺完全獨立的計算
    發(fā)表于 04-28 14:56 ?561次閱讀
    新手入門如何選擇<b class='flag-5'>Arduino</b>與<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>?

    如何將LED連接到Arduino板并使其閃爍

     在本快速入門指南中,您將學習如何將 LED 連接到 Arduino 板并使其閃爍。
    的頭像 發(fā)表于 02-11 10:53 ?1988次閱讀
    <b class='flag-5'>如何將</b>LED連接到<b class='flag-5'>Arduino</b>板并使其閃爍

    如何將按鈕連接到Arduino

    在本快速入門指南中,您將學習如何將按鈕連接到Arduino板,并根據(jù)按鈕是否被按下來讀取HIGHLOW。您將使用電路板上隨附的發(fā)光二極管 (LED)通過按鈕打開和關閉,以便驗證按鈕按下代碼是否正常工作。
    的頭像 發(fā)表于 02-11 10:52 ?3340次閱讀
    <b class='flag-5'>如何將</b>按鈕連接到<b class='flag-5'>Arduino</b>板

    如何將增量旋轉(zhuǎn)編碼器與Arduino連接

    在本教程中,您將學習如何將增量旋轉(zhuǎn)編碼器與Arduino連接,以讀取旋鈕的運動。這對于在機器人和其他應用程序中創(chuàng)建用戶界面讀取機械位置非常有用。
    的頭像 發(fā)表于 02-11 10:00 ?1288次閱讀
    <b class='flag-5'>如何將</b>增量旋轉(zhuǎn)編碼器與<b class='flag-5'>Arduino</b>連接

    樹莓主板如何連接電腦

    連接樹莓派到電腦是一非常有用的功能,它可以讓我們在電腦上進行樹莓的操作和管理。本文詳細介紹如何連接
    的頭像 發(fā)表于 01-07 15:40 ?1735次閱讀

    基于樹莓的環(huán)境監(jiān)測系統(tǒng)

    樹莓(Raspberry Pi)是一種小型而功能強大的計算機,其性能和功能足以支持許多應用領域。在環(huán)境監(jiān)測系統(tǒng)中,樹莓也被廣泛應用。本文
    的頭像 發(fā)表于 01-04 15:15 ?1594次閱讀