Mündəricat:

Raspberry Pi Lazer Skaner: 9 addım (şəkillərlə birlikdə)
Raspberry Pi Lazer Skaner: 9 addım (şəkillərlə birlikdə)

Video: Raspberry Pi Lazer Skaner: 9 addım (şəkillərlə birlikdə)

Video: Raspberry Pi Lazer Skaner: 9 addım (şəkillərlə birlikdə)
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Iyul
Anonim
Image
Image
Raspberry Pi Lazer Skaner
Raspberry Pi Lazer Skaner

Lazer Skaner, 3D çapdan istifadə edərək çoxalma üçün obyektləri.obj mesh fayllarına rəqəmsallaşdırmağa qadir olan Raspberry Pi quraşdırılmış sistem cihazıdır. Cihaz, kompüter görmə qabiliyyətini yerinə yetirmək üçün bir xətt lazeri və inteqrasiya olunmuş PiCam istifadə edərək bunu edir. Lazer lazerdən 45 dərəcə aşağıya yerləşdirilir və obyektin bir şaquli diliminə parlaq qırmızı xətt çəkir. Kamera, mesh dilim vermək üçün dilimin mərkəzdən olan məsafəsini algılar. Obyekt fırlanan tepsidə bükülür və tam obyekt taranana qədər proses təkrarlanır. Yaradılan.obj faylı, nəhayət istifadəçiyə e -poçtla göndərilir və sistemi tamamilə bağımsız edir.

Bu Təlimat cihazın necə qurulduğunu, bəzi nəticələr və gələcək addımları keçəcək.

Addım 1: İlham

İlham
İlham
İlham
İlham

Həvəskar bir istehsalçı olaraq artıq bir neçə ildir 3D çap və möhkəm modelləşdirmə ilə məşğulam. CNC yönləndiricilərindən lazer kəsicilərdən 3D printerlərə qədər bir çox fərqli prototip vasitəsi ilə işləmişəm. Yerli istehsal sahəmin hələ almadığı bir cihaz 3D skaner idi və bunun səbəbini sizə deyə bilərəm.

Ucuz olanlar (bir neçə yüz dollar) etibarsız idi, mükəmməl şərtlər tələb edirdi və hələ də olduqca pis nəticələr verirdi. Bahalı olanlar … yaxşı, bahalı idi, bir neçə min dollara qədər dəyişirdi, bu da bir çox hallarda funksiyasını buna dəyər etmirdi. Üstəlik, dəfələrlə ölçmələr aparmağı və bir tarama nəticəsində yaranan səth ağı ilə məşğul olmaqdan daha çox sıfırdan bir model hazırlamağı üstün tuturam.

Bu səbəbdən, rəfdəki komponentlərdən istifadə edərək bir obyekti nə qədər yaxşı skan edə biləcəyimi görmək üçün müstəqil bir büdcə skaneri qurmaq istədim.

Bir az araşdırma apardıqdan sonra gördüm ki, bir çox 3D skanerlər fırlanan bir model qurmaq üçün mərkəzdən məsafəni ölçmək üçün fırlanan bir platforma və sonra müxtəlif sensorlar istifadə edir. Bunların bir çoxu Kinect -ə bənzər ikili kamera istifadə edirdi. Sonda lazerdən istifadə edən aşağı qətnamə skaneri olan Yscanner -ə rast gəldim. Sadəliyə və mümkünlüyə baxdıqda, lazerin mərkəzdən məsafəni ölçmək üçün kameraya nisbətən ofsetlə işıldadığı bu lazer texnikası, irəli doğru aydın bir yola bənzəyirdi.

Addım 2: Alətlər və hissələr

Parçalar:

  • Raspberry Pi $ 35.00
  • Raspberry Pi Kamera V2 30,00 $
  • LEDlər, Rezistorlar və Tellər
  • 3D çap filamenti
  • 12x12x0.125 taxta təbəqələr
  • M3 aparatı
  • Step Motor - 14 dollar
  • Line Lazer - 8 dollar
  • LN298 Stepper Motor Sürücüləri - 2.65 dollar
  • Metal düymə - 5 dollar

Alətlər:

  • Lehimleme dəmir
  • Lazer kəsici
  • 3D printer
  • Tornavida
  • Kəlbətinlər

Addım 3: Yüksək Səviyyəli Dizayn

Yüksək Səviyyə Dizayn
Yüksək Səviyyə Dizayn
Yüksək Səviyyə Dizayn
Yüksək Səviyyə Dizayn

Bu dizaynın əsas komponenti, cisimlərin şaquli bir parçası üzərində çıxan xətt lazeridir. Bu proyeksiya pikameraya çəkilə, perspektivi düzəldilə və sonra görüntü işlənmədən əvvəl süzülə bilər. Şəkil işlənərkən, xəttin hər bir seqmenti arasındakı obyektin mərkəzindən olan məsafə toplana bilər. Radial koordinatlarda bu şəkil həm r, həm də z komponentlərini verərdi. Üçüncü ölçü, Θ, daha sonra obyekti yeni bir parçaya çevirməklə əldə edilir. Bu anlayış birinci şəkildə göstərilmişdir.

Yuxarıda təsvir olunan hərəkətləri yerinə yetirmək üçün mərkəzi hesablama vahidi olaraq bir Raspberry Pi istifadə etdim. Pi -yə xarici 5V təchizatı ilə təchiz edilmiş və Pi -nin GPIO pinləri ilə idarə olunan bir step motoru və bir motor sürücüsü bağladım. Pi üzərində 3.3 V xəttinə bir xətt lazeri qoyuldu və Pi üzərindəki kamera girişinə bir PiCam bağlandı. Nəhayət, aşağı çəkilmiş sadə bir düymə və sistemin hansı vəziyyətdə olduğunu istifadəçiyə bildirmək üçün bir vəziyyət LED -i quraşdırıldı. Tam sistem bir sistem blok diaqramında ümumiləşdirilir.

Əvvəldən elektronikanın T yuvaları və M3 avadanlığı ilə birlikdə tutulan lazer kəsmə qutusuna yerləşdirilməsi planlaşdırılırdı. Elektronika alt bölmədə gözdən gizlədiləcək və bir qapaq, fırlanan tepsidəki obyektlərin yerləşdirilməsinə asanlıqla daxil olacaq. Bu qapaq sistemə sızan işıq miqdarını minimuma endirmək üçün lazımdır, çünki bu xarici işıq son taramada səs -küy yarada bilər.

Addım 4: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Yuxarıda göründüyü kimi, lazer kəsmə və ya 3D çap etməyə başlamazdan əvvəl Autodesk Fusion 360 istifadə edərək dizaynımızın ətraflı 3D modelini hazırladım. Ümumi olaraq, cihaz, lazerlə kəsilmiş menteşələri olan qapağı olan sadə bir qutudur. Cihazın iki əsas təbəqəsi var: elektron yataq və əsas yataq, iki təbəqə arasında tellərin keçməsi üçün deşiklər var.

Qutumuzun böyük bir hissəsi lazer kəsici ilə hazırlanmışdır, dizaynları Fusion 360 -da istehsal olunur və Epilog Zing 40 W lazer kəsici üzərində kəsilir. Dizaynlarımız yuxarıdakı rəqəmlərdə göstərilmişdir. Sol üstdən sağa doğru hərəkət edərkən, parçalar əsas yataq, elektronika yatağı, qapaq üçün iki ədəd, arxa parça, ön parça və iki yan hissədir. Əsas yataqda üç əsas kəsik var: biri step motorunun quraşdırılması üçün, biri telləri lazerdən ötürmək üçün, biri də PiCamın geniş kabelini çəkmək üçün. Yataq parçasında Pi, çörək taxtası və motor sürücüsünü təmin etmək üçün montaj delikləri və step motoruna daxil olmaq üçün daha böyük bir kəsik var. Qapaq parçaları sadəcə yuxarıda görünən üçbucaqlı bir parça meydana gətirmək üçün bir -birinə yapışır və menteşə, yan lövhələrin çuxurunun eni olan sadə bir ekstrüzyondur. Arxa hissənin və yan hissələrdən birinin yan yuvaları var ki, Pi limanlarına (HDMI, USB, Ethernet, Power) asanlıqla daxil olun. Ön hissə, düyməni və LED-i quraşdırmaq üçün əl matkapı ilə deşiklər açdığım sadə bir parçadır. Bütün parçalarda göründüyü kimi, hissələrimiz T-Derzlər və yuvalar istifadə edərək M3 aparatı ilə birlikdə tutulur. Bu, lazerlə kəsilmiş parçaları ortogonal və etibarlı şəkildə tutmaq üsuludur. Parçaların üzgəcləri digər yivlər ilə üst-üstə düşür və kənarındakı t şəkilli kəsik, M3 qozunun bükülmədən tıxanması üçün yer verir. Bu, M3 vintini istifadə edərək, parçaları çox az hərəkət edən otaqla birlikdə qalıcı hala gətirmədən bağlamağa imkan verir.

Parçalarımızın əksəriyyətini sürəti və asanlığı səbəbindən lazer kəsici ilə etməyi seçdim. Bununla birlikdə, kəsici üzərində yaratmaq daha çətin olacaq 3D həndəsəsinə görə bəzi parçaları hələ də 3D çap etməli oldum. İlk parça xətt lazer tutucusu idi. Bu parça, kameranın görünüşündən 45 dərəcə yüksək olan ana yatağa quraşdırılmalı və lazerin içərisinə sürtünmənin sığa biləcəyi bir çuxura sahib olmalı idi. Mühərrikin şaftı çox uzun olduğu üçün bir motor montajı da yaratmalı oldum. Montaj sürtünməsi, lazer kəsik parçalarına uyğun gəlir və motorun bağlandığı təyyarəni fırlanan platforma əsas yataq ilə eyni səviyyəyə endirir.

Addım 5: Elektronika

Elektronika
Elektronika

Bu layihənin kabel qurğusu çox sadə idi, çünki 3D skaner çox sayda ətraf qurğuya ehtiyac duymurdu. Bir motor, düymə, LED, lazer və kameranın Pi -yə qoşulması lazım idi. Göstərildiyi kimi, sancaqları qorumaq üçün istifadə etdiyimiz hər pinlə rezistorları ardıcıl olaraq bağladığımdan əmin oldum. Bir GPIO pin, cihaz istifadəyə hazır olduqda yanacaq və cihaz işləyərkən PWM ilə nəbz vuran vəziyyət LEDini idarə etməyə həsr edilmişdir. Başqa bir GPIO pimi, düyməyə basılmadıqda YÜKSÜ, düyməyə basıldıqda LOW olaraq qeyd olunan bir düyməyə bağlandı. Nəhayət, step motoru idarə etmək üçün dörd GPIO sancağı həsr etdim.

Mühərrikimiz yalnız sürətə nəzarət tələb etmədən müəyyən dərəcədə addım atmalı olduğundan, mühərrikin girişlərinə daxil olmaq üçün idarəetmə xətlərini artıran daha sadə bir pilləli motor sürücüsünü (L298N) seçdik. Step motorlarının çox aşağı səviyyədə necə işlədiləcəyini öyrənmək üçün həm L298N məlumat vərəqinə, həm də Arduino kitabxanasına müraciət etdik. Addım motorlarının barmaqlarını dəyişən qütblü maqnit nüvəsi var. Dörd tel, mühərrikdəki hər bir barmağına güc verən iki elektromaqniti idarə etmək üçün bükülmüşdür. Beləliklə, barmaqların polaritesini dəyişdirərək, pilləni bir addım itələyə bilərik. Stepperlərin bir hardware səviyyəsindən necə işlədiyini bildiyimiz üçün, stepperləri daha asan idarə edə bildik. Addımlı motorumuzu Pi -nin təmin edə biləcəyindən daha çox olan maksimum cərəyanı təxminən 0.8 A olduğu üçün laboratoriyada Pi -dən çox 5V enerji təchizatı ilə təchiz etməyi seçdik.

Addım 6: Proqram təminatı

Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı

Bu layihə üçün proqram təminatı bir -biri ilə qarşılıqlı əlaqədə olan dörd əsas komponentə bölünə bilər: Image Processing, Motor Control, Mesh Creation və Embedded Functions.

Proqramın xülasəsi olaraq ilk rəqəmə baxa bilərik. Sistem açıldıqda.bashrc avtomatik olaraq Pi -yə daxil olur və python kodumuzu işə salmağa başlayır. İstifadəçiyə düzgün açıldığını bildirmək üçün sistem işığı yandırır və düyməni basmağı gözləyir. İstifadəçi daha sonra taranacaq obyekti yerləşdirə və qapağını bağlaya bilər. Düyməni basdıqdan sonra LED, istifadəçiyə cihazın işlədiyini bildirmək üçün zərbələr endirir. Cihaz tam fırlanma tamamlanana və bütün obyekt məlumatları toplanana qədər görüntü işləmə və motor idarə etməsi arasında döngə quracaq. Nəhayət, mesh yaradılır və fayl əvvəlcədən seçilmiş bir e -poçtla göndərilir. Bu dövrəni yenidən başlatır və maşın bir düyməni basaraq başqa bir tarama aparmağa hazırdır.

Şəkil İşlənməsi

Həyata keçirilən ilk şey, görüntüdə saxlanan məlumatları kosmosda bir sıra nöqtələr yaratmaq üçün istifadə edilə bilən bir forma çıxarmaq üçün çəkilmiş bir görüntünün işlənməsi idi. Bunu etmək üçün, qutunun arxasına parlayan və dağılan lazerin yaratdığı bütün fon səsləri ilə birlikdə platformadakı obyektin şəklini çəkməyə başladım. Bu şəkilin xam şəklində iki əsas problemi vardı. Birincisi, obyektə yüksək perspektivli bir açıdan baxıldı, ikincisi, çoxlu fon səs -küyü var idi. Etməyim lazım olan ilk şey bu baxış bucağının hesablanması idi, çünki fotoşəkili olduğu kimi istifadə etmək, tutarlı bir obyekt hündürlüyünü təyin etməyə imkan verməzdi. İkinci şəkildə göründüyü kimi, tərs "L" şəklinin hündürlüyü uyğun gəlir; lakin bir tərəfin digərindən daha uzun olması səbəbindən tamaşaçıya ən yaxın olan kənarda fərqli yüksəkliklərə sahib olduqları görünür.

Bunu düzəltmək üçün şəkildəki iş sahəsini əvvəllər olduğu kimi trapezoid formasından düzbucağa çevirməli oldum. Bunu etmək üçün, bir şəkil və dörd nöqtə verildikdə, görüntünü dörd nöqtə arasında kəsən və perspektivi kompensasiya etmək üçün kəsilmiş görüntüyü çevirən bu linkdən verilən kodu istifadə etdim. Bu çevrilmə, üçüncü rəqəmdə göründüyü kimi trapezoid tipli bir forma yerinə düzbucaqlı yaratmaq üçün dörd nöqtədən istifadə edir.

Həll edilməli olan növbəti problem, xarici işıq şəklində işığın və işığın lazerin öz əksini tapmasıdır. Bunu etmək üçün OpenCV inRange () funksiyasından istifadə edərək işığı süzdüm. Eşik həddini yalnız qırmızı işığı müəyyən bir səviyyədə alacağam. Doğru dəyəri əldə etmək üçün yumşaq bir eşiklə başladım və eşik səviyyəsini yüksəltməyə davam etdim ki, yeganə işıq taranan obyektin lazer işığı olsun. Bu görüntüyə sahib olduqdan sonra hər cərgədə Lazer xəttinin ən sol tərəfi ilə həmsərhəd olan hər satırda bir piksellik bir xətt alın. Hər bir piksel daha sonra 3D məkanda bir zirvəyə çevrildi və mesh yaradılması bölməsində təsvir edildiyi kimi bir sıra olaraq saxlanıldı. Bu addımların nəticələrini dördüncü şəkildə görə bilərsiniz.

Motor nəzarət

Obyektin dilimini əldə etmək üçün tək bir görüntünü uğurla işlətdikdən sonra fərqli bir açı ilə yeni bir şəkil çəkmək üçün obyekti döndərməliyəm. Bunu etmək üçün taranan obyektin oturduğu platformanın altındakı step motorunu idarə etdim. Mühərrikin vəziyyətini izləmək üçün bir dəyişən yaratmaqla və dörd motor girişinin hər birini dəyişdirərək mikro addımlar atmaqla addımlama funksiyamızın təməlini qurdum.

Bütün işlənmiş şəkillərdən bir mesh yaratmaq üçün əvvəlcə işlənmiş şəkildəki hər bir ağ pikseli 3D məkanda bir təpəyə çevirməli oldum. Silindrik simmetriya ilə obyektin ayrı -ayrı dilimlərini topladığım üçün silindrik koordinatları toplamağa başlamağın mənası var idi. Şəklin hündürlüyü z oxunu, fırlanan masanın mərkəzindən olan məsafə R oxunu və step motorunun fırlanması teta oxunu təmsil edə biləcəyi üçün bu məntiqlidir. Ancaq məlumatlarımı silindrik koordinatlarda saxladığım üçün bu təpələrin hər birini kartezyen koordinatlara çevirmək məcburiyyətində qaldım.

Bu təpələr yaradıldıqdan sonra bir siyahıda saxlanılır və bu siyahı hər bir şəkil üçün yaradılan zirvəli siyahıların olduğu başqa bir siyahıda saxlanılır. Bütün şəkillər işləndikdən və təpələrə çevrildikdən sonra son meshdə təmsil olunmasını istədiyim təpələri seçmək məcburiyyətində qaldım. İstəyirəm ki, yuxarı təpə və alt təpə daxil edilsin və sonra qətnaməyə əsaslanaraq hər bir şəkil üçün istifadə etmək üçün bərabər aralıklı bir çox təpə seçdim. Bütün vertex siyahıları eyni uzunluğa malik olmadığından, ən kiçik nöqtələri olan siyahını taparaq və hamısını düz olana qədər digər bütün siyahılardan təpələri çıxarıb düzəltməli oldum. mesh yaratmaq. Meshimizi.obj fayl standartına uyğun olaraq formatlamağı seçdim, çünki sadə və 3D çap edilə bilər.

Daxili funksiya

Cihaz işlək vəziyyətdə olduqdan sonra tam quraşdırılmış funksionallıq əlavə edərək onu cilaladım. Bu, klaviaturanı, siçanı və monitoru çıxarmaq və işlənmə başa çatdıqdan sonra kabelsiz olaraq.obj faylını bizə göndərmək demək idi. Başlamaq üçün.bashrc kodunu avtomatik olaraq daxil olmaq və əsas python proqramını işə salmaq üçün dəyişdirdim. Bu sudo raspi-config istifadə edərək və "Console Autologin" seçərək və /home/pi/.bashrc.-ə "sudo python /home/pi/finalProject/FINAL.py" sətrini əlavə etməklə edildi. istifadəçi giriş və çıxışı üçün bir düymə və status LED əlavə etdi. Düymə, istifadəçiyə cihazın taramaya nə vaxt başlayacağını və LED -in istifadəçiyə maşının vəziyyətini bildirməsinə imkan verərdi. LED yanarsa, cihaz yeni bir tarama başlamağa hazırdır. LED pulsasiya edirsə, cihaz hazırda tarar. LED ofisdirsə, sistemin yenidən başlamasını tələb edən bir proqram səhvidir. Nəhayət, cihazın.obj faylını e -poçtla göndərməsini təmin etdim. Bu smtplib və e -poçt kitabxanalarından istifadə etməklə edildi. E -poçt göndərmə qabiliyyəti, istehsal olunan faylı bir çox fərqli platformada istifadəçiyə çatdırmağımız üçün çox rahat və simsiz bir yol verdi.

Addım 7: İnteqrasiya

İnteqrasiya
İnteqrasiya

Cihazın müxtəlif hissələrini hazırladıqdan sonra onu bir yerə yığdım. Yuxarıdakı şəkil sırayla göstərir:

(a) kənarda yığılmış qutu

(b) kamera və lazer içərisində yığılmış qutu

(c) elektronika yatağının daxili görünüşü

(d) Pi limanlarına və 5V mühərrik girişinə çıxışı olan Pi arxası

(e) cihazın qarşısında LED halqası və vəziyyət işığı olan düymə

Addım 8: Nəticələr

Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr
Nəticələr

3D lazer skaneri obyektləri yaxşı dəqiqliklə skan edə bildi. Obyektlərin xüsusiyyətləri fərqli və tanınır və hissələri Repetier kimi bir dilimləmə proqramı istifadə edərək 3D çap etmək çox asandır. Yuxarıdakı rəqəmlər bir ağac parçası və rezin ördək nümunələrinin bəzi nümunələrini göstərir.

Test zamanı kəşf etdiyim ən böyük tapıntılarımızdan və uğurlarımızdan biri cihazın tutarlılığı idi. Eyni obyektin çoxsaylı sınaqları zamanı, skaner, obyektin yerləşdirilməsini bir qədər dəyişdirsək belə, hər dəfə çox oxşar olan.obj faylı yarada bildi. Üç ayrı taramada göründüyü kimi, hamısı eyni detalları və eyni miqdarda detalları tutaraq çox oxşardır. Ümumiyyətlə sistemimizin tutarlılığı və möhkəmliyi məni çox heyran etdi.

Həqiqətən tənzimləyə bildiyim dəyişənlərdən biri taramaların həllidir. Stepdə 400 addım olduğu üçün hər birinin ΔΘ açısal qətnaməni diktə etməsini seçə bilərəm. Varsayılan olaraq, bucaqlı qətnaməni 20 təkrarlamaya təyin etmişəm, yəni hər çərçivədə motor 20 addım (400/20 = 20) dönər. Bu, əsasən vaxt maraqları üçün seçilmişdir - bu şəkildə bir taramanın tamamlanması təxminən 45 saniyə çəkir. Ancaq daha keyfiyyətli tarama istəsəm, iterasiyaların sayını 400 -ə qədər artıra bilərəm. Bu, modelin qurulması üçün daha çox xal verir ki, bu da daha detallı bir tarama imkanı verir. Bucaq qətnaməsinə əlavə olaraq, şaquli qətnaməni və ya lazer dilimi boyunca neçə fərqli nöqtəni seçməyi seçə bilərəm. Bənzər bir maraq üçün, bu standartı 20 olaraq təyin etmişəm, amma daha yaxşı nəticələr üçün artıra bilərəm. Bu açısal qətnamə və məkan həlli parametrləri ilə oynayarkən, son şəkildəki fərqli taramaların nəticələrini toplaya bildim. Hər bir etiket, açısal qətnamə x məkan qətnaməsi olaraq formatlanır. Varsayılan tarama parametrlərində göründüyü kimi, ördəyin xüsusiyyətləri tanınır, lakin ətraflı deyil. Ancaq qətnaməni artırdıqca, ördəkdəki gözlər, gaga, quyruq və qanadlar da daxil olmaqla fərdi dəqiq xüsusiyyətlər özünü göstərməyə başlayır. Ən yüksək qətnamə şəklinin taranması təxminən 5 dəqiqə çəkdi. Əldə edilə bilən bu yüksək qətnaməni görmək çox böyük bir uğur idi.

Məhdudiyyətlər

Layihənin uğurlu nəticələrinə baxmayaraq, dizayn və tətbiqdə hələ də bir neçə məhdudiyyət var. Lazerin istifadəsi ilə işığın necə dağılması ilə bağlı bir çox problem yaranır. Şəffaf, parlaq və ya çox qaranlıq olan taramağa çalışdığım bir çox obyekt, işığın səthdən necə əks olunmasının çətin olduğunu sübut etdi. Cisim şəffaf olsaydı, işıq udular və dağılardı, bu da dilimlərin çox səs -küylü oxunmasına səbəb olardı. Parlaq və qaranlıq cisimlərdə işıq ya əks olunar, ya da udmaq çətin olacaq qədər udulardı. Bundan əlavə, obyektlərin xüsusiyyətlərini çəkmək üçün bir kamera istifadə etdiyim üçün onun hiss etməsi görmə xətti ilə məhdudlaşır, yəni içbükey cisimlərin və iti bucaqların çox vaxt obyektin digər hissələri tərəfindən tıxanmasıdır. Bu, rezin ördək nümunəmizdə göstərilir, çünki quyruq bəzən tarama zamanı əyriliyini itirir. Kamera yalnız səth quruluşlarını aşkar edə bilər, yəni dəliklərin və ya daxili həndəsələrin tutula bilməyəcəyi deməkdir. Bununla birlikdə, bu, bir çox digər tarama həllinin də olduğu ümumi bir problemdir.

Növbəti addımlar

Layihəmizin nəticələrindən məmnun olsam da, daha yaxşı hala gətirmək üçün tətbiq oluna biləcək bir neçə şey var idi. Yeni başlayanlar üçün, mövcud vəziyyətdə, tarama qətnaməsi yalnız kodumuzdakı sabit kodlu qətnamə dəyişənlərini dəyişdirməklə dəyişdirilə bilər. Layihəni daha da möhkəmləndirmək üçün bir qətnamə potansiyometri daxil edilə bilər ki, istifadəçi skanerə monitor və klaviatura bağlamadan qətnaməni dəyişə bilsin. Bundan əlavə, skaner bəzən əyri görünə biləcək şəkillər yaradır. Bunu düzəltmək üçün düzensizlikləri və sərt küncləri düzəltmək üçün mesh hamarlaşdırma üsulları tətbiq oluna bilər. Nəhayət, piksel koordinatlarının real dünyaya yaxşı getmədiyini gördüm. Yaratdığım kafeslər həqiqi obyektdən 6-7 dəfə böyük idi. Gələcəkdə, obyektlərin həqiqi ölçüsünə daha dəqiq uyğunlaşmaq üçün ağların ölçüsünü artırma üsulunu tətbiq etmək daha faydalı olardı.

Addım 9: Resurslar

Layihənin bütün hissəsi üçün kodu, çap üçün STL fayllarını və kəsmə üçün DXF sənədlərini daxil etdim.

Raspberry Pi Yarışması 2020
Raspberry Pi Yarışması 2020
Raspberry Pi Yarışması 2020
Raspberry Pi Yarışması 2020

2020 Raspberry Pi Yarışmasında Birinci Mükafat

Tövsiyə: