Использование HX711 и RPiGPIO в ноутбуке Jupyter - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь управлять моей платой Arduino через ноутбук Jupyter. Я использую тензодатчик, и я хочу иметь возможность регистрировать данные, собранные с python Скрипт импортирует HX711, который зависит от RPi.GPIO. Я установил библиотеки с PIP, но получаю следующее

RuntimeError                              Traceback (most recent call last)
<ipython-input-3-7103b482ccff> in <module>
     1 #!/usr/bin/python3
----> 2 from hx711 import HX711

/usr/lib/python3.8/site-packages/hx711/__init__.py in <module>
     1 # -*- coding: utf-8 -*-
     2 try:
----> 3     import RPi.GPIO as GPIO
     4 except ImportError:
     5     raise ImportError(

/usr/lib/python3.8/site-packages/RPi/GPIO/__init__.py in <module>
    21 """
    22 
---> 23 from RPi._GPIO import *
    24 
    25 VERSION = '0.7.0'

RuntimeError: This module can only be run on a Raspberry Pi!

Что имеет смысл. Как можно перенести следующее в jupyter, чтобы я мог обернуть некоторые вещи вокруг него. ?

/*
 Example using the SparkFun HX711 breakout board with a scale
 By: Nathan Seidle
 SparkFun Electronics
 Date: November 19th, 2014
 License: This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).

 T
 This example code uses bogde's excellent library: https://github.com/bogde/HX711
 bogde's library is released under a GNU GENERAL PUBLIC LICENSE
 Arduino pin 2 -> HX711 CLK
 3 -> DOUT
 5V -> VCC
 GND -> GND

 Most any pin on the Arduino Uno will be compatible with DOUT/CLK.

 The HX711 board can be powered from 2.7V to 5V so the Arduino 5V power should be fine.

*/

#include "HX711.h"

#define DOUT  3
#define CLK  2

HX711 scale;

float calibration_factor =  -3800; //-3800 worked for my 440lb max scale setup

void setup() {
  Serial.begin(9600);
  Serial.println("HX711 calibration sketch");
  Serial.println("Remove all weight from scale");
  Serial.println("After readings begin, place known weight on scale");
  Serial.println("Press + or a to increase calibration factor");
  Serial.println("Press - or z to decrease calibration factor");

  scale.begin(DOUT, CLK);
  scale.set_scale();
  scale.tare(); //Reset the scale to 0

  long zero_factor = scale.read_average(); //Get a baseline reading
  Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects.
  Serial.println(zero_factor);
}

void loop() {

  scale.set_scale(calibration_factor); //Adjust to this calibration factor

  Serial.print("Reading: ");
  Serial.print(scale.get_units()*10, 2);
  Serial.print(" grams"); //Change this to kg and re-adjust the calibration factor if you follow SI units like a sane person
  Serial.print(" calibration_factor: ");
  Serial.print(calibration_factor);
  Serial.println();

  if(Serial.available())
  {
    char temp = Serial.read();
    if(temp == '+' || temp == 'a')
      calibration_factor += 10;
    else if(temp == '-' || temp == 'z')
      calibration_factor -= 10;
  }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...