Score:1

ฉันสามารถติดตั้งไลบรารี่เดินสาย pi บนเดสก์ท็อป linux PC ของฉันได้หรือไม่

ธง au
j0h

ฉันมีโครงการที่กำลังทำอยู่ ซึ่งในที่สุดจะเป็น raspberry pi ที่ใช้ Ubuntu ด้วย แต่ตอนนี้ฉันแค่ต้องการเขียนโค้ดที่มีWiringPi.hและWiringSerial.h ฉันลองติดตั้งสายpi sudo apt-get ติดตั้ง wirepiแต่สิ่งนี้ไม่ได้รวมไลบรารี C/C++ สำหรับ wirepi ไว้อย่างชัดเจน

ฉันจะติดตั้งไลบรารี่ wirepi C/C++ บนเดสก์ท็อป Ubuntu ได้อย่างไร ฮาร์ดแวร์เดียวที่ฉันใช้คือพอร์ตอนุกรม ไม่ควรมีปัญหาใด ๆ กับ GPIO ที่มี

ฉันใช้ Ubuntu 20.04 โฟกัส

hr flag
https://packages.ubuntu.com/focal/libwiringpi-dev
Score:1
ธง au
j0h

มันเป็นความคิดเห็นของไดรเวอร์เหล็กที่แก้ไขได้ sudo apt-get install libwiringpi-dev

มีปัญหาบางอย่างกับ libwiringpi-dev คุณไม่ต้องการเรียก wirePiSetup(); คุณอาจจะได้

อ๊ะ: ไม่สามารถระบุการแก้ไขบอร์ดจาก /proc/device-tree/system/linux,revision
หรือจาก /proc/cpuinfo
 -> ไม่มีบรรทัด "ฮาร์ดแวร์"
 -> คุณควร google ข้อผิดพลาดเพื่อหาสาเหตุ

ซึ่งเหตุผลก็คือคุณใช้ CPU ที่ไม่ใช่แบบ arm และไฟล์ที่กำลังดูอยู่นั้นไม่ได้จัดรูปแบบตามที่คาดไว้ โชคดีที่ฉันไม่ต้องการสิ่งนั้น ฉันแค่ต้องการใช้ไลบรารีพอร์ตอนุกรมแบบธรรมดา

ฉันยังมีปัญหาในการส่งข้อมูลผ่าน serialPuts() แต่ฉันไม่จำเป็นต้องจับมือกัน .. ฉันเดา

นี่เป็นโครงการเล็ก ๆ ที่อ่าน Arduino uno ด้วยโพเทนชิออมิเตอร์ 2 ตัวและปุ่ม เป้าหมายคือการใช้หม้อเพื่อวาดภาพบนหน้าจอหรือในรูปภาพ...

#รวมถึง <iostream>
#รวม <stdio.h>
#include <unistd.h> //อ่านฟังก์ชัน
#รวม <string.h>
#include <wiringSerial.h> // ไลบรารีพอร์ตอนุกรมอย่างง่าย

ใช้เนมสเปซ std;
// คอมไพล์ด้วย g++ -Wall -o readSerial readSerial.cpp -lwiringPi

int หลัก (int argc, ถ่าน ** argv)
{
    ถ่าน const *SensorPort = "/dev/ttyACM0"; // ที่อยู่อุปกรณ์ซีเรียล
     
    int levelSensor = serialOpen (เซนเซอร์พอร์ต, 9600);
    //serialPuts(เซ็นเซอร์ระดับ, "1"); // ส่งคำสั่งไปยังอุปกรณ์อนุกรม

    ในขณะที่ (1){
        ถ่านบัฟเฟอร์ [100];
        ssize_t ความยาว = อ่าน (เซ็นเซอร์ระดับ, &บัฟเฟอร์, ขนาดของ (บัฟเฟอร์));
        ถ้า (ความยาว == -1){
            cerr << "ข้อผิดพลาดในการอ่านจากพอร์ตอนุกรม" << endl;
            หยุดพัก;
        }
        อื่นถ้า (ความยาว == 0){
            cerr << "ไม่มีข้อมูลเพิ่มเติม" << endl;
            หยุดพัก;
        }อื่น{
            บัฟเฟอร์ [ความยาว] = '\0';
            ศาล << บัฟเฟอร์; // อ่านข้อมูลอนุกรม
        }
    }

    กลับ 0;
}

ข้อมูลที่ส่งผ่าน Arduino นั้นผ่านรหัสนี้:

    /*EtchaSketch
     * 2 พอท, X,Y, เพิ่มขึ้น
     * 
     * เพิ่มปุ่มเพื่อลบ shtuff นี้
     * โปรแกรมนี้สื่อสารบนพอร์ตอนุกรมไปยังโปรแกรมแยกต่างหากที่จัดการการวาดพิกัดที่ได้รับ (ค่าหม้อ)  
    */
    
    int potX = A0;    
    int potY = A1;    
    int sensorValX = 0;  
    เซ็นเซอร์ intValY = 0;  
    int เดล = 1; // ปุ่มบนพิน 1 สำหรับลบเนื้อหาที่วาด 
    int delbutton = 0;
    การตั้งค่าเป็นโมฆะ () {
        Serial.begin(9600);
        โหมดพิน (เดล, อินพุต);
    }

   โมฆะวน () {
      // อ่านค่าจากหม้อ:
      ถ้า (digitalRead (เดล) == สูง ){
          ปุ่มเดล = 1;
          }อื่น{
              ปุ่มเดล = 0;
          }   
      sensorValX = อะนาล็อกอ่าน (potX);
      sensorValY = อะนาล็อกอ่าน (potY);
      Serial.print (sensorValX);
      Serial.print(",");
      Serial.print(sensorValY);
      Serial.print(",");
      Serial.println (ปุ่มเดล);
      ล่าช้า (1,000);
      }

และที่นี่มันทำงานได้ดีพอที่จะเข้าสู่โปรแกรมแยกวิเคราะห์ / วาด การอ่านอนุกรมด้วยสายการเดินสายpiWiringSerial.h

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา