Miles de millones: 3 dólares contra 8 millones de rublos

Así es como se ve el ojo que todo lo ve en la vida real:


por cierto, un escáner es más caro que un automóvil. Tesla S. Con envío aéreo a la entrada de Moscú, en

esta publicación se describirá el escáner 3D más caro (probablemente) del mundo y el más barato del mundo.


No me dieron para desmontar (ver) el dispositivo al precio de un teslamobile, así que miré las instrucciones. Un par de fotos del interior desde allí.
Cuando se les preguntó si un escáner 3D puede tomar una selfie (si pones un espejo frente a él), me respondieron que estos dispositivos tienen problemas con las superficies reflectantes. Así que tomé el cráneo de un estante cercano e intenté escanearlo.



Tales cosas hermosas se crean usando un escáner.


Escáner 3D Surphaser 25HSX


Escáner 3D Surphaser 25HSX es un escáner láser tridimensional con un sistema de desviación de haz esférico, diseñado para formar modelos tridimensionales de objetos reales para su uso posterior en diversos campos:

- hacer dibujos de piezas diseñadas de acuerdo con prototipos;
- creación de copias de seguridad de exhibiciones e interiores de museos;
- desarrollo de juegos de computadora y animación publicitaria;

El escáner se basa en el uso de un "Cabezal de escaneo" (escáner de hardware) y una computadora de control en la que está instalado el "software" del escáner, con el cual la computadora inicia el proceso de escaneo, recibe un flujo de datos de medición del cabezal de escaneo y lo procesa después del escaneo estos datos, traduciéndolos a la forma de una nube de puntos de un objeto.



TTX
3d , , , .

3d Surphaser 25HSX :

  • – 1.5 – 60 ;
  • — 240180 ;
  • – 200 000 -1 000 000 ;
  • -17-100
  • ~ 2 ( 17 200 000 );
  • – 1 ; 20-60 .
  • 18-22 , 3,3 .


-. 200 /.

: USB-2.



Partes del cabezal de escaneo para un escáner 3D esférico
descifrado
1- ( )
1.1- ( )
1.1.1-
1.1.2- ѐ
1.1.3- .
1.1.4-
1.1.5-
1.1.6-
1.2. –
1.2.1-
1.2.1.1-
1.2.2-
1.3-
2.- «»
2.1-
2.2-
3-
4-

, ( ) . (0,05-0,2 /), — (4-40 /). 200 ( 1 ) ( ). , –
.




Módulo de escaneo óptico para un escáner 3D esférico con un sistema de desviación con rotación solo alrededor del eje horizontal, preparado para el transporte.


Diseño óptico del módulo de escaneo óptico
Descripción del Artículo


:

3 – 47464
4 – 690.0 IF 40 U
7 – 46377
8 – 18.105
11 – 18.106
14 – 18.101.
15 – 18.102.
16 – 47911 48692
17 – 38 02 27 032

1 –
2 –
5 –
6 –
9 –
10 –
12 –
13 –



El paquete de circuitos del módulo láser BL está diseñado para controlar el diodo láser semiconductor HL6750MG. En el modo operativo, la placa proporciona la formación de radiación óptica continua con una potencia óptica media constante y modulación de amplitud.La


placa BP del módulo fotodetector está diseñada para recibir radiación láser de intensidad modulada utilizando un fotodiodo de avalancha. En el modo operativo, la placa proporciona la selección de la señal de modulación de luz y su amplificación.


La placa BR del módulo de ingeniería de radio, que forma parte del módulo del escáner óptico del escáner 3D, está diseñada para generar una señal combinada que modula la intensidad del haz de luz, convierte (traduce a una baja frecuencia de 1 MHz y amplifica) la señal de RF reflejada recibida y la señal de RF de referencia, extrae y amplifica la baja frecuencia reflejada señal


La placa BS, que forma parte del módulo del escáner óptico del escáner 3D, está diseñada para generar una señal sobre la presencia de un haz en la salida del módulo láser. Solo se usa radiación dispersa para generar la señal. En modo de operación, el voltaje de salida excede 0.1 V con una potencia de haz de más de 3 mW.

Exploración



Así es como el escáner 3D ve la sala en modo preliminar (puede seleccionar el área deseada que el escáner explorará) El


mundo a través de los ojos de un escáner 3D. ¿Quién puede distinguir a una persona?


La misma habitación en el editor 3D.


Así es como una persona común ve el cráneo.


Esta vez no se necesita toda la habitación, por lo que seleccionamos solo esa área con el cráneo en el modo de exploración previa. Luego, durante unos 5-10 minutos, el escáner gira con su ojo, buscando hobbits . Lo principal es no interponerse en su camino, de lo contrario se quemará un defecto. El escáner captura no solo el cráneo en sí, sino también las áreas que están muy por detrás. Esto se edita fácilmente en el editor.


Un hombre pasó, cayó en el área del rayo láser. ¿Ves la tira? No se interponga en el camino de la luz coherente. Todo está en orden con la persona, pero en el escaneo se reflejó como un "píxel roto"

Surphaser`a


































3d- 3





  • Arduino Arduino IDE
  • Processing IDE
  • LEGO
  • ( )
  • -
  • Meshlab


image
OKI . 48 (7,5 ),
3,7V, 200-250mA

image
,



image



image
CD, , , LEGO

image
— Creative Webcam Vista. (640x480), (plastic lenses). . .

image
(~1$) , . ( ). 30

image
code
#include <Stepper.h>
Stepper oki(48,8,9); //see stepper tutorial in arduino.cc for info about that
const int ledPin = 13; // the pin that the LED is attached to
int incomingByte; // a variable to read incoming serial data into

void setup() {
// initialize serial communication:
Serial.begin(9600);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
oki.setSpeed(60);
}

void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
// if it's a capital H (ASCII 72), turn on the LED:
if (incomingByte == 'S') {
digitalWrite(ledPin, HIGH);
oki.step(4);
}
// if it's an L (ASCII 76) turn off the LED:
if (incomingByte == 'K') {
digitalWrite(ledPin, LOW);
}
}
}


image

Processing
code:
import codeanticode.gsvideo.*;
import processing.serial.*;

//objects
PFont f;
GSCapture cam;
Serial myPort;
PrintWriter output;

//colors
color black=color(0);
color white=color(255);

//variables
int itr; //iteration
float pixBright;
float maxBright=0;
int maxBrightPos=0;
int prevMaxBrightPos;
int cntr=1;
int row;
int col;

//scanner parameters
float odl = 210; //distance between webcam and turning axle, [milimeter], not used yet
float etap = 120; //number of phases profiling per revolution
float katLaser = 25*PI/180; //angle between laser and camera [radian]
float katOperacji=2*PI/etap; //angle between 2 profiles [radian]

//coordinates
float x, y, z; //cartesian cords., [milimeter]
float ro; //first of polar coordinate, [milimeter]
float fi; //second of polar coordinate, [radian]
float b; //distance between brightest pixel and middle of photo [pixel]
float pxmmpoz = 5; //pixels per milimeter horizontally 1px=0.2mm
float pxmmpion = 5; //pixels per milimeter vertically 1px=0.2mm

//================= CONFIG ===================

void setup() {
size(800, 600);
strokeWeight(1);
smooth();
background(0);

//fonts
f=createFont(«Arial»,16,true);

//camera conf.
String[] avcams=GSCapture.list();
if (avcams.length==0){
println(«There are no cameras available for capture.»);
textFont(f,12);
fill(255,0,0);
text(«Camera not ready»,680,32);
}
else{
println(«Available cameras:»);
for (int i = 0; i < avcams.length; i++) {
println(avcams[i]);
}
textFont(f,12);
fill(0,255,0);
text(«Camera ready»,680,32);
cam=new GSCapture(this, 640, 480,avcams[0]);
cam.start();
}

//Serial (COM) conf.
println(Serial.list());
myPort=new Serial(this, Serial.list()[0], 9600);

//output file
output=createWriter(«skan.asc»); //plik wynikowy *.asc


}

//============== MAIN PROGRAM =================

void draw() {

PImage zdjecie=createImage(cam.width,cam.height,RGB);
cam.read();
delay(2000);
for (itr=0;itr<etap;itr++) {
cam.read();
zdjecie.loadPixels();
cam.loadPixels();
for (int n=0;n<zdjecie.width*zdjecie.height;n++){
zdjecie.pixels[n]=cam.pixels[n];
}
zdjecie.updatePixels();
set(20,20,cam);
String nazwaPliku=«zdjecie-»+nf(itr+1, 3)+".png";
zdjecie.save(nazwaPliku);
obroc();
delay(500);
}
obroc();
licz();
noLoop();

}

void licz(){
for (itr=0; itr<etap; itr++){

String nazwaPliku=«zdjecie-»+nf(itr+1, 3)+".png";
PImage skan=loadImage(nazwaPliku);
String nazwaPliku2=«odzw-»+nf(itr+1, 3)+".png";
PImage odwz=createImage(skan.width, skan.height, RGB);
skan.loadPixels();
odwz.loadPixels();
int currentPos;
fi=itr*katOperacji;
println(fi);

for(row=0; row<skan.height; row++){ //starting row analysis
maxBrightPos=0;
maxBright=0;
for(col=0; col<skan.width; col++){
currentPos = row * skan.width + col;
pixBright=brightness(skan.pixels[currentPos]);
if(pixBright>maxBright){
maxBright=pixBright;
maxBrightPos=currentPos;
}
odwz.pixels[currentPos]=black; //setting all pixels black
}

odwz.pixels[maxBrightPos]=white; //setting brightest pixel white

b=((maxBrightPos+1-row*skan.width)-skan.width/2)/pxmmpoz;
ro=b/sin(katLaser);
//output.println(b + ", " + prevMaxBrightPos + ", " + maxBrightPos); //I used this for debugging

x=ro * cos(fi); //changing polar coords to kartesian
y=ro * sin(fi);
z=row/pxmmpion;

if( (ro>=-30) && (ro<=60) ){ //printing coordinates
output.println(x + "," + y + "," + z);
}

}//end of row analysis

odwz.updatePixels();
odwz.save(nazwaPliku2);

}
output.flush();
output.close();
}

void obroc() { //sending command to turn
myPort.write('S');
delay(50);
myPort.write('K');
}


image


image


image


image


image
MeshLab



otro proyecto
imagen

imagen
hackaday.io/project/2021-3dollar-scanner

Y, sin embargo, tengo una pregunta para expertos: ¿qué representa la mayor parte del costo del dispositivo por 8 millones de rublos?

PD
idea.
Existe la idea de hacer un proyecto de capacitación (para escolares y estudiantes) con acceso a crowdsourcing. Puede sacar un escáner 3D en VDNH y escanear a la “Trabajadora y niña de granja colectiva”, y luego imprimir muchos llaveros y figuras a quienes hicieron una contribución. Y también para filmar un video de entrenamiento y ponerlo en youtube.
Estudiantes - conocimiento, empresas - relaciones públicas, la comunidad 3d - un movimiento útil.
Si alguien tiene amigos de la administración de VDNH o alguien que tenga una plataforma elevadora, escriba.

PPS
El uso de escáneres 3d en juegos



Source: https://habr.com/ru/post/es382939/


All Articles