İki kameralı 3D skaner. DIY D Skaneri

Bir daha mağaza nəzərdən keçirmək üçün bir şey götürməyi təklif etdi. Bu şeyi dekorativ 3D çap ehtiyacları üçün istifadə etmək sualı ilə çoxdan maraqlandığım üçün bir skaner seçdim.

Belə ki, skanerin özü İspaniyanın BQ şirkəti tərəfindən hazırlanıb və hazırda onun dəstəyini dayandırıb (guya Çin saxtakarlığına görə, lakin bu şübhəlidir. İndi bu skaner Amerikanın CowTech şirkəti tərəfindən də satılır. Skaner hissələrinin 3D çapı üçün mənbələr pulsuz olaraq mövcuddur (proqram və elektronikaya keçidlər var).

Kitdə bu "boş" var:

Montaj sadədir, lakin bir neçə məqam var:
1. Bütün qoz-fındıqları sıxmaq üçün tələsməyə ehtiyac yoxdur - həndəsi ölçüləri də tənzimləməli olacaqsınız - saytın mərkəzində lazerlərin yaxınlaşması, dönər masaya qədər olan məsafə.
2. Mənim stendimdə kamera millimetrin bir hissəsi ilə bir az “yırğalandı” – lakin bu, şəkli əymək üçün kifayət idi. Köpük materialının əlavə edilməsi ilə aradan qaldırılır.
4. Dönər masa şəffaf idi və örtüyü yox idi (orijinalda olduğu kimi) - plastidiplə boyadım.
5. Kalibrləmə dama taxtası nümunələrini yoxlayın. Mənim dəstimdən olanı necə çap etdiklərini bilmirəm, amma kvadratların nisbətləri pozuldu. İnternetdən götürüb özüm çap etmişəm.
6. Kamera fokusu platformaya olan məsafəyə uyğunlaşdırılmayıb. Qapağı çıxardım və diqqəti yerində tənzimlədim.











Gördüyünüz kimi, skanerin "beyinləri" ZUM Scan qalxanı və A4988 pilləli motor sürücüsü ilə birləşdirilmiş adi Arduino Uno-dur. Ferma BQ-dan yerli Horus proqramı ilə idarə olunur.

Montajdan sonra skaner yerli Horus proqramında kalibrləmə prosedurlarından keçdi.

Bu vaxta qədər skan etmənin keyfiyyətinin işıqlandırma keyfiyyətindən (sabitlik, yayılma, rəng temperaturu) çox asılı olduğunu bildiyim üçün, heç olmasa daha çox və ya daha az müqayisə edilə bilən şərait təmin etmək üçün kiçik bir işıq qutusuna sahib olmaq üçün əvvəlcədən qayğı göstərdim. sınaq üçün.

Dinləmələr üçün “namizədləri” seçərək hazırlaşdım.

Obyekt üçün tələblər aşağıdakılardır:
1. Obyekt 5x5 sm-dən böyük, lakin 20x20sm-dən az olmalıdır
2. Obyekt qeyri-şəffaf və hərəkətsiz olmalıdır
3. Obyektin çəkisi 3 kq-dan çox olmamalıdır

Skan etmək çətindir:
1. Parlaq, işıq saçan əşyalar
2. Obyektlər çox qaranlıqdır
3. Səthi bulanıq olan obyektlər (məsələn, doldurulmuş heyvanlar)

Tarama nəticəsi PLY formatında nöqtələr bulududur (sonra onu səthə çevirmək lazımdır). STL faylını hazırladığınız yer budur.

Skanları oxuduqdan sonra onu sadə silindrik bir obyektlə sınamaq qərarına gəldim.
Bir neçə cəhddən sonra əmin oldum ki, mənim ümumi problemim var - sağ və sol lazerlərdən gələn nöqtə buludları uyğun gəlmir və nisbətlərdə problem var.



Bu məsələdə veb-kamera parametrlərini kalibrləməyə çalışmaqdan başqa faydalı heç nə tapa bilmədik (kalibrləmə sehrbazı işləyərkən onlar kalibrlənmir) (BQ dəstəyindən İsa adlı oğlan uzun müddətdir suallara cavab vermir). Bunu etmək üçün, kalibrləmə cədvəlinin müxtəlif mövqeləri ilə bir neçə şəkil çəkmək lazımdır. etdim. Vəziyyət yaxşılaşdı, amma tamamilə yox.
Buludların uyğunluğuna əmin olmaq üçün kalibrləmə faylını (Horus-a qovluğunda calibration.json) əl ilə redaktə etməli və sınaq və səhv yolu ilə silindrik obyekti skan etməli oldum.
Və hər şey qaydasındadır:



Ancaq yox - mürəkkəb obyektlərdə bulud parçaları bəzən hələ də uyğun gəlmir və bir çox "kor" zonalar əmələ gəlir:





Bundan əlavə, ən azı standart lazerlərlə parlaq qırmızı obyektlərin skan edilməsinin qeyri-mümkün olacağı aydındır.

Siz, əlbəttə ki, ayrı-ayrı lazerlərlə skan etməyə və bütün bunları üçüncü tərəf proqramlarında birləşdirməyə cəhd etməyə davam edə və sonra onu STL üçün uyğun bir forma gətirməyə cəhd edə bilərsiniz.

Bütün bunlar mənə şüşələrdəki gəmilərlə bağlı bir lətifəni xatırladır.

Şüşələrdə qayıqları necə düzəldirsiniz?
-Butulkaya qum, silikat yapışqan, çubuqlar qoyub silkələyirəm.
Hər cür bok, bəzən isə qayıqlar çıxır.


Ümumiyyətlə, başa düşdüm ki, mən bu cür yaradıcılığın tərəfdarı deyiləm və skanerin gücündə olan obyektləri sıfırdan modelləşdirməyin daha asan olduğuna şübhə edirəm.

Və mürəkkəb olanlar - skaner normal rejimdə mürəkkəb olanların öhdəsindən gələ bilmir; bunun üçün iki lazer kifayət deyil - kor ləkələr qalır. Bu problemi aradan qaldırmaq üçün başqa mövqelərdə skan etməli və sonra yenidən buludları birləşdirməklə mübarizə aparmalısınız. Xeyr, təşəkkürlər.

Nəticədə, bu şey yalnız lazer skanının əsaslarını öyrənmək üçün uyğundur, daha çox şey üçün tamamilə faydasızdır. Xeyr, əlbəttə ki, konturda orijinal modelə bənzər bir şey əldə etmək mümkündür, amma hamısı budur (və bu, bulud emalı ilə bütün dəfləri nəzərə alır). İspanların bu məsələdən əl çəkməsi əbəs deyil.
Mağaza təhlükəsiz oynadı - təsvirdə dürüstcə nəticə planetlərin mövqeyindən və üçüncü mərtəbədən Sonya xalanın əhval-ruhiyyəsindən asılı olduğunu bildirir. Açıq mənbə və bütün bunlar, gəlin birlikdə rəqs edək. Xeyr, təşəkkürlər.

Nəticə ondan ibarətdir ki, onu götürmək deyil, amma həddindən artıq ov etmək istəyirsinizsə, zarafatdakı dostun qayıq düzəltdiyi eyni şeydən özünüz yığın.

Məhsul mağaza tərəfindən rəy yazmaq üçün verilmişdir. Rəy Sayt Qaydalarının 18-ci bəndinə uyğun olaraq dərc edilmişdir.

+9 almağı planlaşdırıram Seçilmişlərə əlavə et Rəyi bəyəndim +101 +156

FabScan açıq mənbəli, öz əlinizlə lazer 3D skanerdir. MDF təbəqələrindən və müxtəlif mövcud materiallardan mina yığdım və nümunə olaraq sizin üçün yaradılış prosesini təqdim etmək qərarına gəldim.

Addım 1: Nə lazımdır




Rəsmi FabScan skaneri üçün sizə lazımdır:

  • Arduino UNO
  • Step motor A4988
  • Arduino üçün FabScan-Shield 3D lazer skaner modulu
  • 5 mVt qırmızı lazer modulu
  • Enerji təchizatı 12V - 1A
  • Logitech C270 veb kamerası

Bir qutu yaratmaq üçün sizə 600*300*5 mm ölçülü 4 vərəq MDF lazımdır.

Layihəmdə istifadə etdim:

  • Arduino UNO
  • Bipolyar Step Motor - NEMA 17 (200 addım)
  • Step motor A4988
  • 5 mVt qırmızı lazer modulu
  • Enerji təchizatı 12V - 2A
  • Logitech C270 veb kamerası

FabScan proqram təminatından istifadə edəcəyimiz üçün mən onların hissələri siyahısına sadiq qalmağı məsləhət görürəm; FabScan istinad 3D skanerinin bütün sənədlərini İnternetdə asanlıqla tapa bilərsiniz.

Addım 2: 3D skaner üçün qalereya qutusunun yığılması




Daha 4 şəkil göstərin





Skaner qutusunu yığmaq üçün Dremel və təxəyyülümdən istifadə etdim. Bu o qədər də sadə deyil, çünki düzgün 3D təsviri əldə etmək üçün kamera, lazer və pilləli mühərrik düzgün mövqelərdə olmalıdır. Narahat olmaq istəmirsinizsə, sadəcə hazır hissələri ala bilərsiniz, lakin ucuz olmayacaq.

Addım 3: Modulları birləşdirin


Avadanlığın yığılması olduqca sadədir:
FabScan modulunu Arduino-ya qoşun və A4988 motorunu ilk addım mövqeyinə qoyun. Mühərriki çıxış pinlərinə və lazer modulunu A4 analoq pininə qoşun. Nəhayət, enerji təchizatı və USB kabelini birləşdirin.

Skaneri mənim hissələrim siyahısına uyğun yığmaq qərarına gəlsəniz:
Sonra A4988 motorunu Arduino-da 10, 11, 9, 8 pinlərinə qoşmalısınız (arzu edilərsə, sancaqlar dəyişdirilə bilər) və lazer modulunu A4 pininə birləşdirməlisiniz. Sonda, həmçinin enerji təchizatı və USB kabelini birləşdirin.

Addım 4: Arduino üçün kod

Biz FabScan-ın rəsmi kodundan istifadə edəcəyik. Onu Arduino-ya yükləyin və işiniz bitdi.

Codebender plagininiz quraşdırılıbsa, bu linkə daxil olaraq kodu Arduino-ya yükləyə bilərsiniz.

Əgər siz skaneri mənim hissələrim siyahısına uyğun yığırsınızsa, Redaktə et düyməsini klikləyin və aşağıdakıları edin:

  • Sətirlər əlavə edin #include const int stepPerRevolution = 200;//mühərrikinizin addımlarının sayını dəyişdirin Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • step() funksiyasını aşağıdakılarla əvəz edin: void step() ( myStepper.setSpeed(1); myStepper.step(1); )

Addım 5: Kompüter Proqramı






Biz "FabScan Ubuntu Live DVD" şəklini istifadə edəcəyik. Siz onu yükləyə bilərsiniz. Bu şəkildə FabScan proqramı artıq əvvəlcədən quraşdırılıb. Şəkil bir flash sürücüyə yazıla bilər, bunun necə ediləcəyini İnternetdə tapa bilərsiniz.

Vacib qeyd: Əgər “Ubuntu sınayın” seçimini seçmisinizsə, kompüterinizi söndürməzdən əvvəl fayllarınızı yadda saxlayın!

Əlavə edilmiş fotoşəkillərə baxın və addımları izləyin:

  • SerialPort-da portu seçin
  • Kamerada kameranı seçin
  • Fayl - İdarəetmə Paneli
  • Lazeri aşkar et üzərinə klikləyin (bu mərhələdə skanerə heç nə qoymayın) və "aktiv et" seçin.
  • "Fetch Frame" üzərinə klikləyin və mavi üfüqi xəttin dönər masanın yuxarı hissəsinə və sarı üfüqi xəttin aşağıya toxunduğundan əmin olun. Şaquli sarı xətt dönər masanın mərkəzindən keçməlidir. Boş bir kamera təhrif edilmiş skanlara səbəb ola bilər!

Quraşdırdıqdan sonra idarəetmə panelinin pəncərəsini bağlayın, obyekti skanerə yerləşdirin və skan etməyə başlamaq düyməsini basın.

3D şəklin saxlanması:
Skanlama prosesi başa çatdıqda, siz 3D obyekti .pcd və ya .ply formatlarında faylda saxlaya bilərsiniz. Siz onu stl formatında da saxlaya bilərsiniz, lakin o, bütün platformalarda dəstəklənmir. Siz həmçinin Fayl - OpenPointCloud seçərək əvvəllər skan edilmiş elementi aça bilərsiniz.

3D faylları ilə nə etmək lazımdır?
Siz onları MeshLab-da aça və 3D printerdə çap edə bilərsiniz.
MeshLab-da obyektləri çap etmək üçün:

  • Obyekti .ply formatında saxlayın
  • Faylı MeshLab-da açın
  • MeshLab-da normalları hesablayın (Nöqtə dəstləri üçün Filtrlər/Nöqtə Dəsti/Hesablama normaları)
  • Poisson rekonstruksiyasından istifadə edərək səthi yenidən qurun (Filtrlər/Nöqtə dəsti/Səthin yenidən qurulması: Poisson)
  • Hazır

FabScan açıq mənbəli, DIY 3D lazer skaneridir.

Layihə Francis Engelmannın bakalavr layihəsinin inkişafı zamanı başladı. Layihənin rəsmi səhifəsi yerləşir.

Bu layihə əsasında məqalədə müzakirə olunan bir analoq hazırlanmışdır. MDF boks üçün istifadə olunur. Elektron doldurma da bir qədər fərqlidir.

Arduino proqramı orijinal layihədən götürülüb. Beləliklə, əla açıq mənbəli 3D skaner üçün FabScan komandasına təşəkkür edirik!

Beləliklə, başlayaq.

Tələb olunan komponentlər

Orijinal FabScan layihəsi üçün hissələr və komponentlər:

  • A4988 pilləli motor sürücüsü;
  • Shield FabScan;
  • NEMA 17 bipolyar pilləli mühərrik (200 addım);
  • Enerji təchizatı 12 V - 1 A;
  • Logitech C270 veb kamerası.

Korpus üçün 4 vərəq MDF lazımdır. Ölçülər - 600 mm-dən 300 mm-ə qədər. Qalınlığı - 5 mm. Daha ətraflı məlumat.

Bu təlimatda istifadə olunan hissələr və birləşmələr:

  • (200 addım);
  • Step motor sürücüsü L298N;
  • 5 mVt lazer modulu - istehsalçı Qırmızı xətt;
  • Enerji təchizatı 12 V - 2 A;
  • Logiteck C270 veb kamerası.

Yəni, biz sadəcə olaraq FabScan qalxanından istifadə etməyəcəyik və fərqli pilləli motor sürücü modulundan istifadə etməyəcəyik

3D skaner üçün korpusun hazırlanması

3D skanerimizin korpusunun hazırlanması prosesi və nəticəsi fotoşəkillərdə göstərilib. Əsas çətinlik kameranın, lazer modulunun və step motorunun ən dəqiq quraşdırılmasıdır. Əgər həyatınızı asanlaşdırmaq istəyirsinizsə, bu hissələri 35 avroya sifariş edə bilərsiniz.

3D skaner yığılması







1. Qalxanla.

Arduino-da FabScan qalxanını quraşdırın. A4988 pilləli motor sürücüsü verilən relslərə quraşdırılmışdır. Step motoru ad lövhəsindəki müvafiq kontaktlara qoşulur. Lazer modulu A4 analoq pininə qoşulub. Bundan sonra güc və USB kabelini qoşa bilərsiniz. Daha ətraflı təlimatlar mövcuddur.

2. Qalxan olmadan.

Skaneri qalxandan istifadə etmədən qurmaq qərarına gəlsəniz, L298 pilləli motor sürücüsünü Arduino-da 10, 11, 9, 8 sancaqlarına birləşdirin (prinsipcə, bu sancaqlar eskizdə müvafiq redaktələrlə dəyişdirilə bilər). Lazer modulu Arduino-da A4 pininə qoşulub. Hamısı. Güc və USB kabeli qoşa bilərsiniz.


Arduino üçün eskiz

Vacib qeyd! Əgər "Ubuntu cəhd edin" seçimindən istifadə edirsinizsə, şəxsi kompüterinizi söndürməzdən əvvəl fayllarınızı saxladığınızdan əmin olun!

Şəkilləri aşağıda verilmiş təlimatlara əməl edin:

  • SerialPort seçin;
  • Kamera seçin;
  • Fayl - İdarəetmə Paneli;
  • Lazeri aşkar et üzərinə klikləyin (hazırda skanerin qarşısına heç bir obyekt qoymayın) və "aktiv et" seçin;
  • "Fetch Frame" düyməsini klikləyin və mavi üfüqi xəttin dönər masanın yuxarı hissəsinə və sarı üfüqi xəttin dönər masanın altına toxunduğundan əmin olun. Bundan əlavə, sarı şaquli xətt dönər masanın mərkəzi ilə üst-üstə düşməlidir. Kamera düzgün quraşdırılmayıbsa, skanlama nəticəsi aydın olmayacaq!

Quraşdırdıqdan sonra pəncərəni bağlayın, obyekti 3D skanerə yerləşdirin və Skanı Başlat düyməsini basın.

Qeyd: configuration.xml Faylının qurulması ilə bağlı əlavə materiallar bu təlimatda təqdim olunur.

3D şəkillərin saxlanması

3D skan prosesi başa çatdıqda, skan edilmiş 3D obyekti .pcd və ya .ply uzantısı ilə saxlaya bilərsiniz. Siz onu 3D stl faylı kimi də saxlaya bilərsiniz, lakin bu funksiya bütün platformalarda mövcud deyil. Əvvəllər skan edilmiş və saxlanmış obyekti Fayl - OpenPointCloud seçərək aça bilərsiniz.

Sonra nə var?

Siz 3D skan edilmiş obyekti emal etmək və onu 3D printerdə çap etmək üçün MeshLab-dan istifadə edə bilərsiniz!

MeshLab-da faylı emal edərkən:

1. Obyekti .ply faylı kimi saxladığınızdan əmin olun.

2. MeshLab proqramından istifadə edərək faylı açın.

3. MeshLab-da normalları hesablayın (Filtrlər/Nöqtə dəsti/Hesablama normaları).

4. Bundan sonra, Poisson rekonstruksiyasından istifadə edərək səthi yenidən qurun (Filtrlər/Nöqtə Dəsti/Səthin Yenidən qurulması: Poisson)

Son yığılmış quruluş aşağıdakı fotoşəkildə göstərilmişdir.


İşləyən orijinal FabScan 3-D skanerinin videosu:

Arduino-da heyrətamiz açıq mənbəli skaner üçün FabScan komandasına çox təşəkkür edirik!!!

Şərhlərinizi, suallarınızı və paylaşın Şəxsi təcrübə aşağıda. Yeni ideyalar və layihələr tez-tez müzakirələrdə doğulur!

Bu, Francis Engelmann tərəfindən hazırlanmış məşhur FabScan lazer skanerinin analoqudur. Müəllif MDF-dən belə bir skaner üçün qutu kimi istifadə etdi, doldurulmasına gəldikdə, o da orijinaldan bir qədər fərqlidir.

Orijinal proqram Arduino üçündür, orijinal layihədən götürülüb.

Skaner yaratmaq üçün materiallar və alətlər:

4 vərəq MDV 600X300 mm, qalınlığı 5 mm (onlar korpus yaratmaq üçün lazımdır);
- pilləli mühərrik (200 addım üçün NEMA 17);
- pilləli motor L298N üçün sürücü;
- 5 mVt lazer modulu (istehsalçı Red Line-dən istifadə olunur);
- cihazı gücləndirmək üçün 12 V - 2 A mənbəyi lazımdır;
- veb-kamera modeli Logiteck C270.






Orijinal evdə hazırlanmış məhsul A4988 pilləli mühərrik sürücüsündən istifadə edir və pilləli mühərrikə gəldikdə, o, həm də NEMA 17-dir. Əks halda, evdə hazırlanmış məhsulun elementləri orijinal versiyada olduğu kimi tam olaraq eynidir.

Skaner istehsal prosesi:

Birinci addım. Bədənin düzəldilməsi
Skaner üçün korpusun yaradılması prosesini fotoşəkildə görmək olar. Bu məsələdə ən vacib şey dəqiqlikdir. Lazer modulu, pilləli motor və veb-kamera layihəyə uyğun olaraq düzgün yerlərdə aydın şəkildə yerləşdirilməlidir.













İkinci addım. Elektrik avadanlıqlarını bağlayırıq


Avadanlıqları qalxanla və qoruyucu olmadan birləşdirməyin iki yolu var. Bu variantların hər birinə daha yaxından nəzər salaq.

Qalxan olmadan əlaqə
Cihazı bir qalxan istifadə etmədən yığmaq qərarına gəlsəniz, L298 pilləli motorun başlıqları 10, 11, 9, 8 nömrəli Arduino sancaqlarına qoşulur. Prinsipcə, digər kontaktlardan istifadə edə bilərsiniz, lakin bunu etməlisiniz. eskizdə dəyişikliklər.
Lazer moduluna gəlincə, onu Arduino kontrollerindəki A4 pininə qoşmaq lazımdır. Bundan sonra, USB kabeli və gücə qoşula bilərsiniz.

Qalxanla əlaqə
Arduino-da FabScan qalxanını quraşdırmalısınız. Step motor sürücüsünə gəldikdə, bunun üçün nəzərdə tutulmuş relslərə quraşdırılmalıdır. Step motor kontaktları ad lövhəsindəki müvafiq kontaktlara birləşdirilir.
Lazer modulu Arduino-da A4 pininə qoşulmalıdır. Hamısı budur, bundan sonra güc və USB kabelini birləşdirin.

Üçüncü addım. Eskizin quraşdırılması
İndi siz FabScan üçün rəsmi eskizi yükləməli və quraşdırmalısınız. Arduino-nu yandırmaq üçün Codebender plaginini yükləməlisiniz və sonra "Arduino-da işləyin" düyməsini sıxmalısınız. Bu halda, eskiz rəsmi veb saytından brauzer vasitəsilə birbaşa quraşdırıla bilər.


Qalxan istifadə olunmayıbsa, o zaman Redaktə düyməsini sıxmalı və sonra aşağıdakı sətirləri əlavə etməlisiniz:

const int stepPerRevolution = 200; // pilləli motor şaftınızın fırlanması üzrə addımların sayını tənzimləmək üçün bu parametri dəyişdirin

Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
step() funksiyasını dəyişdirin:

myStepper.setSpeed(1);

myStepper.step(1);

Dördüncü addım. Skaner proqramı
Proqramı quraşdırmaq üçün “FabScan Ubuntu Live DVD” şəklini yükləməlisiniz, quraşdırıldıqdan sonra görünəcək proqram təminatı FabScan.

Proqramda bəzi parametrləri etməlisiniz:

Əvvəlcə SerialPort seçməlisiniz;
- sonra Kamera seçin;
- bundan sonra Fayl - İdarəetmə Paneli;
- sonra lazeri aşkar et üzərinə klikləyin və “aktiv et” seçin (lazerin qarşısına heç bir obyekt qoymağa ehtiyac yoxdur);
- yaxşı, indi "Fetch Frame" düyməsini basın, mavi üfüqi xətt fırlanan masanın altına toxunmalıdır. Sarı xətt masanın mərkəzində olmalıdır. Əgər kamera düzgün quraşdırılmayıbsa, görüntü belə olacaq Pis keyfiyyətli.












Hamısı budur, proqram konfiqurasiya edilmişdir. İndi siz skanerə hansısa obyekt qoya bilərsiniz və bundan sonra Skanı Başlat düyməsini basın.

Beşinci addım. Şəkli yadda saxlayın
Obyektin skan edilməsi başa çatdıqdan sonra şəkil .pcd və ya .ply formatında saxlanıla bilər. Siz onu stl formatında da saxlaya bilərsiniz, lakin bu, istifadə etdiyiniz platformadan asılıdır.
Əvvəllər saxlanmış obyekti açmaq üçün Fayl - OpenPointCloud seçməlisiniz.

) biz onu yığmaqda öz gücümüzü sınamaq və mümkünsə dizaynını təkmilləşdirmək qərarına gəldik. Bunun nə olacağını təsəvvür belə edə bilməzdik, hətta onunla bir neçə elmi və mühəndislik sərgisində qalib gələcəyimizi təsəvvür edə bilməzdik. Amma qaydada. Nəticəni bilmək istəyənlər, pişiyə xoş gəldiniz (çoxlu fotoşəkillər).

İlk prototip

Əvvəlcə toplamaq qərarına gəldik lazer məsafəölçən. Bu, həvəskar radio forumunda bir məqalə əsasında hazırlanmışdır. Sadəcə lazer göstərici və kamera. Şəkilləri emal etmək üçün Java-da proqram yazılmışdır. Bir ölçmə üçün iki fotoşəkil çəkildi: lazerlə və lazersiz. Onları müqayisə etdikdən sonra lazer nöqtəsini mütləq tapa bildik. Bu işlədikdən sonra məsafəölçən iki müstəvidə dönə bilən platformaya quraşdırıldı. Nə əldə etdiyimi sizə göstərməzdən əvvəl sizi xəbərdar etməliyəm - yay məktəbində çoxlu material yoxdur, ona görə də bizdə olanlardan bir prototip hazırladıq:

Kamera dərhal görünür və lazer onun üstündəki mis silindrdir. Platformanı fırlatmaq üçün biz iki pilləli mühərrikdən istifadə etdik, onlar da öz növbəsində Atmega32 mikrokontrolöründəki idarəetmə lövhəsinə qoşuldular. Lazer ona qoşulmuşdu. Lövhə özü kompüterə USB->UART adapteri vasitəsilə qoşulmuşdu. Kompüterdəki proqram şəkilləri çəkir, onları emal edir, alınan nöqtələrin koordinatlarını fayla daxil edir və idarəetmə lövhəsinə əmrlər göndərirdi.

Nəticə maraqlı oldu. Bəli, məsafəni tapdıq. Bəli, biz skanerin üstündəki yarımkürənin istənilən nöqtəsini “hədəf” edə bilərik. Və sevincimizin həddi-hüdudu yox idi. Ancaq bu yarımkürənin skan etmə müddətini qiymətləndirdiyimiz zaman bunun 48 saat olduğu ortaya çıxdı. Və bu kamera ilə bağlı deyil. Və hətta Java-da deyil. Problem onda idi ki, quraşdırma o qədər zəif idi ki, hər dönüşdən sonra beş saniyə yellənirdi. Ölçmə aparmalı, arxaya dönüb yırğalanana qədər beş saniyə gözləməli oldum. Bundan əlavə, kamera üçün kitabxana hər çəkilişdən əvvəl onu yandırır və sonra söndürür. Bu 1-2 saniyə çəkdi. Ancaq yay məktəbi başa çatırdı və onu yenidən düzəltməyə vaxt yox idi: artıq layihənin başa çatmasına bir gecə qalmışdı. Daha doğrusu səhər. Ertəsi gün layihəmizi elmi münsiflər heyəti qarşısında müsabiqədə təqdim etdik və gözlənilmədən qalib gəldik. Yəqin ki, bu qələbəyə görə biz bu layihə üzərində işimizi davam etdirmək qərarına gəldik.

Versiya iki

Əslində, yay bitdi, dərs ili başladı. İşləmək istəyi yox oldu. Quraşdırmanın tam bir ay qalmış növbəti müsabiqəyə qədər başa çatdırılması planlaşdırılırdı. ay. Və sonra birdən üç gün. Ancaq bir ay ərzində biz parametrləri dəyişmək qərarına gəldik. Onu sıx şəkildə yığın, lazer göstəricisinə bir lens quraşdırın, bu da lazer xətti yaradacaqdır. Bu, bir anda 720 nöqtəni skan etməyə imkan verəcəkdi (skanerdə HD kamera var idi). Yalnız üç gün öz düzəlişlərini etdi:

İkinci skaner plastik hökmdarlardan, yapışqandan, maskalama lentindən yığılır və yalnız mavi elektrik lenti ilə yerində saxlanılır. Lensin əvəzinə bir sınaq borusu var. Bu sınaq borusu üzərində yaşıl lazer işıq saçır. Yansıtılan şüa ekranda az-çox vahid lazer zolağı yaradır. Məsafəölçən onu üfüqi müstəvidə döndərən yalnız bir mühərrikə qoşulub. İdarəetmə lövhəsi STM32VLDiscovery ilə əvəz olundu. Sadəcə, mən STM32-ni daha yaxşı tanıyıram və bundan əlavə, Atmega yandı və proqramçı çoxdan itirildi. Çox yaxşı görünmür, amma işləyir! Titrəmələr azaldı və sürət buna uyğun olaraq artdı. Amma çox deyil. Burada çox maraqlı bir tutma aşkar edildi - Çin lazer göstəricisi dərhal işə düşmədi, lakin bir saniyə ərzində gücünü tədricən artırdı. Beləliklə, salınmaq üçün bir saniyə, lazeri qızdırmaq üçün bir saniyə, şəkil çəkmək üçün bir saniyə və bunlardan ikisi var. Beləliklə, 4 saniyə alırıq. Ancaq bir ölçmədə 720 nöqtəyə qədər məsafələr tapırıq! Tarama prosesi belə görünürdü:

Və nəticə belədir:

Şəkil çox maraqlı görünmür, amma proqramda kubok həcmli idi. Buna müxtəlif rakurslardan baxa bilərsiniz.

Həqiqi rəqabət nədir? Amma heç nə! Səhər saat 4-də hər şeyi skan etdik və səhər 9-da stenddə lazerin yandığını aşkar etdik. Məlum olub ki, biz onu mehmanxanadan tribunaya aparan zaman içəri yağış yağıb, yandırılanda isə yanıb. İşləməyəndə isə o qədər pis görünür ki, “5 saat əvvəl işlədi” sözlərinə inanmaq çətindir. Biz əsəbləşdik. Davam etmək istəyi lazerin tüstüsü ilə itdi. Amma yenə də yığılmışdı...

Üçüncü versiya

Və müsabiqə üçün yenidən yığıldı. Üstəlik, biz buna uzun və hərtərəfli hazırlaşdıq. Bir həftədən çox. Və nəticə budur:

İlk diqqətinizi çəkən odur ki, biz indi skanerin ətrafındakı ərazini yox, platformada fırlanan obyekti skan edirik. Biz də lazımi linza aldıq, hər şeyi düzgün yığdıq, proqramı yenidən yazdıq, həmçinin sazlama lövhəsini evdə hazırlanmış ilə əvəz etdik. İndi hər ölçmə üçün yalnız bir şəkil çəkirik. Lazer kifayət qədər güclüdür və obyektiv lazeri fotoşəkildə unikal şəkildə tapmaq üçün kifayət qədər yaxşıdır. Bunun sayəsində lazerin istiləşməsini gözləmirik - o, həmişə yanır. İndi biz kameranı yalnız bir dəfə işə salırıq. Yəni, vaxt daha çox platformanın fırlanmasına və təsvirin işlənməsinə sərf olunur. Proqrama dəqiqliyi seçmək üçün menyu əlavə edilmişdir. Tarama müddəti iki ilə on dəqiqə arasındadır. Seçilmiş dəqiqlikdən asılı olaraq. Maksimum dəqiqliklə məlum olur ki, platforma hər addımda 0,5 dərəcə fırlanır və məsafə 0,33 mm dəqiqliklə müəyyən edilir. Platforma sürət qutusu vasitəsilə pilləli mühərriklə idarə olunur. Platformanın özü böyük bir diskdir və motor şaftındakı rezin rulon kiçikdir. Mühərrik və lazer vasitəsilə STM32F050F4 mikro nəzarətçi tərəfindən idarə olunurdu sahə effektli tranzistorlar. Məqalənin əvvəlində bu skanerdən istifadə edərək əldə edilən oyuncağın skanıdır. Skaner .obj formatında nöqtə buludunu istehsal etdiyinə görə, trianqulyasiyadan sonra eyni fotoşəkildə göründüyü kimi skan edilmiş obyekti 3D printerdə çap edə bilərik. Ekranda trianqulyasiyadan sonra modeli görə bilərik. Model üzərində heç bir əl işi görülməyib.

Müsabiqənin qalibi olduq. O, Intel ISEF beynəlxalq müsabiqəsinə qatılıb. Beləliklə, biz növbəti skaner üzərində işləməyə başladıq.

Dördüncü versiya

Aktiv Bu an Bu son versiya yığdığımız skaner. Müqayisə üçün bildirək ki, platformada ikinci versiya var. Biz dördüncü skanerin hazırlanmasına bacardığımız qədər hərtərəfli yanaşmağa çalışdıq. Quraşdırma CAD ilə çəkilib, hissələr lazerlə kəsilib, hər şey rənglənib, kənardan lazımsız heç nə ilişib qalmayıb. Dəyişikliklər: Platforma indi əslində dişlidir. O, pleksiglasdan kəsilib və kənarlarında 652 diş var. Bu, əvvəlki skanerdə skanları ciddi şəkildə zədələyən problemi həll edir: rezin rulon bir az sürüşürdü, buna görə platforma tez-tez 360 dərəcə fırlanmırdı. Skanlar ya "kəsilmiş" və ya üst-üstə düşürdü. Burada biz həmişə platformanın necə fırlandığını dəqiq bilirdik. Lazerin gücü proqram təminatı ilə tənzimlənir. Bunun sayəsində az işıqlı şəraitdə lazımsız hissələrin işıqlandırılmasının qarşısını alaraq lazer gücünü tez bir zamanda dəyişmək mümkün oldu. Bütün elektronikaya nəzarət etmək üçün ayrılmamaq qərarına gəldik yeni lövhə, lakin sadəcə olaraq debug F401RE-Nucleo istifadə edin. O, sazlayıcı və USB->UART adapteri kimi işləyən ST-LinkV2.1 quraşdırılıb.

Dəqiqlik heyrətamiz idi: açısal ayırdetmə 0,14 dərəcə. 0,125 mm məsafədə. Tarama sahəsi hündürlüyü 20 sm və diametri 30 sm olan silindrdir.Bütün hissələrin və lazer kəsmənin qiyməti yaradıldığı zaman (2014-cü ilin may ayında) 4000 rubldan az idi.

İstifadə zamanı biz onu yalnız bir dəfə maksimum dəqiqliyə qoyduq. Tarama 15-20 dəqiqə davam etdi. Demək olar ki, 2 milyon xal aldıq. Noutbuk nöqtə buludundan modeli hesablamaqdan imtina etdi. Təcrübə təkrarlanmadı.

Nəticə

Yaxın gələcəkdə layihə üzərində işi bərpa etməyi planlaşdırırıq və buna görə də həm proqramı, həm də quraşdırmanı yekunlaşdıracağıq. Ümid edirəm ki, bu barədə tezliklə yazacağıq addım-addım montaj, biz çertyojları, proqramları və başqa hər şeyi yerləşdirəcəyik. Bu daha bu məqaləyə uyğun gəlməyəcək.

Sona qədər oxuyan hər kəsə təşəkkürlər!

UPD:
Bir həmkarımız ISEF-də çəkdiyimiz skanerin işləməsi haqqında video tapdı:

Bəli, videonun çox hissəsi maraqlı deyil, amma sonunda noutbukda bir model var.

Və burada skan edilmiş obyektlərin nümunələri var. Lakin onların hamısı skanerin üçüncü versiyasına aiddir.
Dropbox
model.obj faylında bu rezin rulon motorun üzərinə sürüşəndə ​​nə baş verdiyini aydın görə bilərsiniz - itin üç gözü var. Skan dayandırıldı, bu da kəsilməyə səbəb oldu. Bütün fayllar nöqtə buludlarıdır. MeshLab istifadə edərək onu aça bilərsiniz. Modellər əl ilə işlənməyib. Tamamilə xam məlumat. Yuxarıdan "ağ ləkələri" - nöqtəsiz yerləri görə bilərsiniz. Kamera onları görmür. Ağ ləkələri başqa yerlərdə də görmək olar. Onlar ya çox qaranlıq yerlərdə, ya da səthlər üst-üstə düşəndə ​​görünür. Məsələn, stn_10.obj faylında keçinin buynuzları üst-üstə düşür, buna görə də buynuzların daxili səthi skan edilməyib.




Üst