Compare commits
1 commit
main
...
repository
Author | SHA1 | Date | |
---|---|---|---|
3d6510ae39 |
34 changed files with 25296 additions and 5 deletions
10
README.md
10
README.md
|
@ -12,13 +12,8 @@
|
|||
- Внутри модуля с помпой есть цифровой барометр (коммуникация с контроллером по i2c-интерфейсу), измеряющий давление. Это обеспечивает обратную связь и позволяет отслеживать состояние захвата.
|
||||
- Для управления помпой и считывания показаний с барометра используется контроллер [Robossembler Servo](https://gitlab.com/robossembler/servo)
|
||||
- Управление осуществляется по интерфейсу CAN.
|
||||
- Захват состоит из двух частей. Модуля с присосками, которая устанавливается на роботе. И модуля с помпой (насосом), который располагается рядом с роботом и подает вакуум по гибкой трубке.
|
||||
- Внутри модуля с помпой есть цифровой барометр (коммуникация с контроллером по i2c-интерфейсу), измеряющий давление. Это обеспечивает обратную связь и позволяет отслеживать состояние захвата.
|
||||
- Для управления помпой и считывания показаний с барометра используется контроллер [Robossembler Servo](https://gitlab.com/robossembler/servo)
|
||||
- Управление осуществляется по интерфейсу CAN.
|
||||
- Основной материал приспособления: печатный пластик PETG любого цвета
|
||||
- Учтена ремонтопригодность захвата. Поддерживается смена присоски в случае износа одной из них или замена насоса.
|
||||
- Учтена ремонтопригодность захвата. Поддерживается смена присоски в случае износа одной из них или замена насоса.
|
||||
- Класс защиты IP20
|
||||
- Калибровка устройства осуществляется посредством ШИМ в навыке захвата в ПО верхнего уровня
|
||||
- Опционально предусмотреть дополнительный способ управления через уставку давления (без ШИМ)
|
||||
|
@ -40,4 +35,9 @@
|
|||
└── src/ # Проекты захвата и модуля помпы в формате Solidworks
|
||||
```
|
||||
|
||||
## Список необходимых комплектующих (BOM)
|
||||
- Для помпы можно найти [здесь](/src/Vacuum_pump/vacuum_pump_bom.csv). (/src/Vacuum_pump/vacuum_pump_bom.csv)
|
||||
- Для захвата можно найти [здесь](/src/Vacuum_gripper/vacuum_gripper_bom.csv). (/src/Vacuum_gripper/vacuum_gripper_bom.csv)
|
||||
- Общий список [здесь](/src/summary_bom.csv). (/src/summary_bom.csv)
|
||||
|
||||
## Краткая инструкция по изготовлению
|
Binary file not shown.
BIN
src/Vacuum_gripper/Gripper_base_vertical.SLDPRT
Normal file
BIN
src/Vacuum_gripper/Gripper_base_vertical.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_gripper/Gripper_base_vertical2.SLDPRT
Normal file
BIN
src/Vacuum_gripper/Gripper_base_vertical2.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_gripper/Vacuum_lifter(cup).SLDPRT
Normal file
BIN
src/Vacuum_gripper/Vacuum_lifter(cup).SLDPRT
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/Vacuum_gripper/asm_vacuum_gripper_vertical.SLDASM
Normal file
BIN
src/Vacuum_gripper/asm_vacuum_gripper_vertical.SLDASM
Normal file
Binary file not shown.
6
src/Vacuum_gripper/vacuum_gripper_bom.csv
Normal file
6
src/Vacuum_gripper/vacuum_gripper_bom.csv
Normal file
|
@ -0,0 +1,6 @@
|
|||
ITEM NO.;PART NUMBER;DESCRIPTION;QTY.
|
||||
3D printed parts;;;;
|
||||
1;Gripper_base;1;;
|
||||
Other parts;;;;
|
||||
2;Brass_tube_5mm;40mm;;
|
||||
3;Vacuum_lifter(cup);2;;
|
|
Binary file not shown.
BIN
src/Vacuum_pump/BMP180/BMP180_holder_Top.SLDPRT
Normal file
BIN
src/Vacuum_pump/BMP180/BMP180_holder_Top.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_pump/BMP180/BMP180_holder_bottom.SLDPRT
Normal file
BIN
src/Vacuum_pump/BMP180/BMP180_holder_bottom.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_pump/BMP180/BMP180_tee_pipe.SLDPRT
Normal file
BIN
src/Vacuum_pump/BMP180/BMP180_tee_pipe.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_pump/BMP180/asm_BMP180_in_holder.SLDASM
Normal file
BIN
src/Vacuum_pump/BMP180/asm_BMP180_in_holder.SLDASM
Normal file
Binary file not shown.
Binary file not shown.
BIN
src/Vacuum_pump/HX710B/HX710B_case_bottom.SLDPRT
Normal file
BIN
src/Vacuum_pump/HX710B/HX710B_case_bottom.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_pump/HX710B/HX710B_case_top.SLDPRT
Normal file
BIN
src/Vacuum_pump/HX710B/HX710B_case_top.SLDPRT
Normal file
Binary file not shown.
BIN
src/Vacuum_pump/HX710B/asm_HX710B_in_case.SLDASM
Normal file
BIN
src/Vacuum_pump/HX710B/asm_HX710B_in_case.SLDASM
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
src/Vacuum_pump/README.md
Normal file
1
src/Vacuum_pump/README.md
Normal file
|
@ -0,0 +1 @@
|
|||
You can find BOM [here](/src/Vacuum_pump/vacuum_pump_bom.csv).
|
21208
src/Vacuum_pump/Tmp/STEP/pressure_sensor_assy_HX710B.STEP
Normal file
21208
src/Vacuum_pump/Tmp/STEP/pressure_sensor_assy_HX710B.STEP
Normal file
File diff suppressed because it is too large
Load diff
3826
src/Vacuum_pump/Tmp/STEP/vacuum pump 2.step
Normal file
3826
src/Vacuum_pump/Tmp/STEP/vacuum pump 2.step
Normal file
File diff suppressed because it is too large
Load diff
BIN
src/Vacuum_pump/XIN5001PM_PUMP_DC24V_10LM_70KPa.SLDPRT
Normal file
BIN
src/Vacuum_pump/XIN5001PM_PUMP_DC24V_10LM_70KPa.SLDPRT
Normal file
Binary file not shown.
Binary file not shown.
85
src/Vacuum_pump/fw/BMP180/BMP180.ino
Normal file
85
src/Vacuum_pump/fw/BMP180/BMP180.ino
Normal file
|
@ -0,0 +1,85 @@
|
|||
#include <Adafruit_BMP085.h>
|
||||
|
||||
/***************************************************
|
||||
This is an example for the BMP085 Barometric Pressure & Temp Sensor
|
||||
|
||||
Designed specifically to work with the Adafruit BMP085 Breakout
|
||||
----> https://www.adafruit.com/products/391
|
||||
|
||||
These pressure and temperature sensors use I2C to communicate, 2 pins
|
||||
are required to interface
|
||||
Adafruit invests time and resources providing this open source code,
|
||||
please support Adafruit and open-source hardware by purchasing
|
||||
products from Adafruit!
|
||||
|
||||
Written by Limor Fried/Ladyada for Adafruit Industries.
|
||||
BSD license, all text above must be included in any redistribution
|
||||
****************************************************/
|
||||
|
||||
// Connect VCC of the BMP085 sensor to 3.3V (NOT 5.0V!)
|
||||
// Connect GND to Ground
|
||||
// Connect SCL to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
|
||||
// Connect SDA to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4
|
||||
// EOC is not used, it signifies an end of conversion
|
||||
// XCLR is a reset pin, also not used here
|
||||
|
||||
Adafruit_BMP085 bmp;
|
||||
|
||||
int32_t currentPressure;
|
||||
int32_t minPressure = 32767;
|
||||
int32_t maxPressure = -1;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
if (!bmp.begin()) {
|
||||
Serial.println("Could not find a valid BMP085 sensor, check wiring!");
|
||||
while (1) {}
|
||||
}
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Serial.print("Temperature = ");
|
||||
Serial.print(bmp.readTemperature());
|
||||
Serial.println(" *C");
|
||||
|
||||
currentPressure=bmp.readPressure();
|
||||
if (currentPressure < minPressure) minPressure=currentPressure;
|
||||
if (currentPressure > maxPressure) maxPressure=currentPressure;
|
||||
|
||||
Serial.print("Pressure= ");
|
||||
Serial.print(currentPressure);
|
||||
Serial.print(" Pa, ");
|
||||
|
||||
Serial.print("minPressure= ");
|
||||
Serial.print(minPressure);
|
||||
Serial.print(" Pa, ");
|
||||
|
||||
Serial.print("maxPressure= ");
|
||||
Serial.print(maxPressure);
|
||||
Serial.print(" Pa, ");
|
||||
|
||||
Serial.print("difference= ");
|
||||
Serial.print(maxPressure-minPressure);
|
||||
Serial.println(" Pa.");
|
||||
|
||||
// Calculate altitude assuming 'standard' barometric
|
||||
// pressure of 1013.25 millibar = 101325 Pascal
|
||||
Serial.print("Altitude = ");
|
||||
Serial.print(bmp.readAltitude());
|
||||
Serial.println(" meters");
|
||||
|
||||
Serial.print("Pressure at sealevel (calculated) = ");
|
||||
Serial.print(bmp.readSealevelPressure());
|
||||
Serial.println(" Pa");
|
||||
|
||||
// you can get a more precise measurement of altitude
|
||||
// if you know the current sea level pressure which will
|
||||
// vary with weather and such. If it is 1015 millibars
|
||||
// that is equal to 101500 Pascals.
|
||||
Serial.print("Real altitude = ");
|
||||
Serial.print(bmp.readAltitude(101500));
|
||||
Serial.println(" meters");
|
||||
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
}
|
46
src/Vacuum_pump/fw/HX710A/HX710A.ino
Normal file
46
src/Vacuum_pump/fw/HX710A/HX710A.ino
Normal file
|
@ -0,0 +1,46 @@
|
|||
//
|
||||
// FILE: HX710A_demo.ino
|
||||
// AUTHOR: Rob Tillaart
|
||||
// PURPOSE: test basic behaviour and performance
|
||||
// URL: https://github.com/RobTillaart/HX710AB
|
||||
|
||||
|
||||
#include "HX710AB.h"
|
||||
|
||||
// adjust pins to your setup
|
||||
uint8_t dataPin = 6;
|
||||
uint8_t clockPin = 7;
|
||||
|
||||
HX710A HX(dataPin, clockPin);
|
||||
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println();
|
||||
Serial.println(__FILE__);
|
||||
Serial.print("HX710AB_LIB_VERSION: ");
|
||||
Serial.println(HX710AB_LIB_VERSION);
|
||||
Serial.println();
|
||||
|
||||
HX.begin();
|
||||
}
|
||||
|
||||
|
||||
void loop()
|
||||
{
|
||||
int32_t value = HX.read(false);
|
||||
Serial.print("VALUE: \t");
|
||||
Serial.print(value);
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
|
||||
value = HX.read(true);
|
||||
Serial.print("TEMP: \t");
|
||||
Serial.println(value);
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
|
||||
// -- END OF FILE --
|
34
src/Vacuum_pump/fw/HX710B/HX710B.ino
Normal file
34
src/Vacuum_pump/fw/HX710B/HX710B.ino
Normal file
|
@ -0,0 +1,34 @@
|
|||
#include "HX710B.h" // Подключаем библиотеку Барометрический датчик давления 0-40 кПа HX710B
|
||||
|
||||
const int DOUT = 2; // Указываем вывод OUT
|
||||
const int SCLK = 3; // Указываем вывод CLK
|
||||
|
||||
HX710B pressure_sensor; // Создаем объект
|
||||
|
||||
void setup() {
|
||||
Serial.begin(115200); // Открываем последовательную связь, на скорости 57600
|
||||
//pressure_sensor.begin(DOUT, SCLK); // Инициализируем датчик
|
||||
pressure_sensor.begin(2, 3, 128); // Инициализируем датчик
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
if (pressure_sensor.is_ready()) {
|
||||
Serial.print("RawData:");
|
||||
//Serial.print(pressure_sensor.read());
|
||||
Serial.print(pressure_sensor.read_average(3));
|
||||
|
||||
Serial.print(". Pascal:");
|
||||
Serial.print(pressure_sensor.pascal());
|
||||
Serial.print(". ATM:");
|
||||
Serial.print(pressure_sensor.atm());
|
||||
Serial.print(". mmHg:");
|
||||
Serial.print(pressure_sensor.mmHg());
|
||||
Serial.print(". PSI:");
|
||||
Serial.println(pressure_sensor.psi());
|
||||
Serial.println();
|
||||
} else {
|
||||
Serial.println("Pressure sensor not found.");
|
||||
}
|
||||
delay(1000);
|
||||
}
|
39
src/Vacuum_pump/fw/HX710_raw/HX710_raw.ino
Normal file
39
src/Vacuum_pump/fw/HX710_raw/HX710_raw.ino
Normal file
|
@ -0,0 +1,39 @@
|
|||
// HX710B Weighing Sensor Example Code for Arduino UNO
|
||||
#define DOUT 2
|
||||
#define PD_SCK 3
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
pinMode(PD_SCK, OUTPUT);
|
||||
pinMode(DOUT, INPUT);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
long weight = readWeight();
|
||||
Serial.print("Weight: ");
|
||||
Serial.println(weight);
|
||||
Serial.println();
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
long readWeight() {
|
||||
long count;
|
||||
unsigned char i;
|
||||
pinMode(DOUT, INPUT);
|
||||
|
||||
while(digitalRead(DOUT));
|
||||
|
||||
count=0;
|
||||
pinMode(PD_SCK, OUTPUT);
|
||||
for(i=0;i<24;i++) {
|
||||
digitalWrite(PD_SCK, HIGH);
|
||||
count=count<<1;
|
||||
digitalWrite(PD_SCK, LOW);
|
||||
if(digitalRead(DOUT))
|
||||
count++;
|
||||
}
|
||||
digitalWrite(PD_SCK, HIGH);
|
||||
count ^= 0x800000;
|
||||
digitalWrite(PD_SCK, LOW);
|
||||
return(count);
|
||||
}
|
BIN
src/Vacuum_pump/fw/lib/hx710B_pressure_sensor-main.zip
Normal file
BIN
src/Vacuum_pump/fw/lib/hx710B_pressure_sensor-main.zip
Normal file
Binary file not shown.
Binary file not shown.
18
src/Vacuum_pump/vacuum_pump_bom.csv
Normal file
18
src/Vacuum_pump/vacuum_pump_bom.csv
Normal file
|
@ -0,0 +1,18 @@
|
|||
3D printed parts;;;;
|
||||
ITEM NO.;PART NUMBER;QTY.;DESCRIPTION;LINK
|
||||
1;Pump_base;1;;
|
||||
2;Pump_case_side_cover;1;;
|
||||
3;Pump_case_top_cover;1;;
|
||||
4;BMP180_holder_bottom;1;;
|
||||
5;BMP180_holder_Top;1;;
|
||||
6;BMP180_tee_pipe;1;;
|
||||
Fasteners;;;;
|
||||
7;DIN 7991 M3x12;8;;
|
||||
8;DIN 7991 M4x16;4;;
|
||||
Other parts;;;;
|
||||
9;XIN5001PM_PUMP_DC24V_10 L/M_70KPa;1;;
|
||||
10;motor_controller;1;;
|
||||
11;Air_filter;1;;
|
||||
12;Brass_tube_6mm;40mm;;
|
||||
13;Plastic_tube_6x8mm;100mm;;
|
||||
14;BMP180 (Barometric Pressure Sensor);1;;
|
|
BIN
src/Vacuum_pump/vacuum_pump_bom.xlsx
Normal file
BIN
src/Vacuum_pump/vacuum_pump_bom.xlsx
Normal file
Binary file not shown.
28
src/summary_bom.csv
Normal file
28
src/summary_bom.csv
Normal file
|
@ -0,0 +1,28 @@
|
|||
ITEM NO.;PART NUMBER;QTY.;DESCRIPTION;LINK
|
||||
3D printed parts;;;;
|
||||
1;Pump_base;1;;
|
||||
2;Pump_case_side_cover;1;;
|
||||
3;Pump_case_top_cover;1;;
|
||||
4;BMP180_holder_bottom;1;;
|
||||
5;BMP180_holder_Top;1;;
|
||||
6;BMP180_tee_pipe;1;;
|
||||
7;Gripper_base;1;;
|
||||
Fasteners;;;;
|
||||
8;DIN 7991 M3x12;8;;
|
||||
9;DIN 7991 M4x16;4;;
|
||||
Other parts;;;;
|
||||
10;XIN5001PM_PUMP_DC24V_10 L/M_70KPa;1;;
|
||||
11;motor_controller;1;;
|
||||
12;Air_filter;1;;
|
||||
13;Brass_tube_5mm;40mm;;
|
||||
14;Brass_tube_6mm;40mm;;
|
||||
15;Plastic_tube_6x8mm;100mm;;
|
||||
16;BMP180 (Barometric Pressure Sensor);1;;
|
||||
17;Vacuum_lifter(cup);2;;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue