izpis_h1_title_alt

Vzpostavitev platforme za načrtovanje in izdelavo računalniške miške
ID KENDA, ANDREJ (Author), ID Nemec, Mitja (Mentor) More about this mentor... This link opens in a new window

.pdfPDF - Presentation file, Download (16,21 MB)
MD5: 50B30E3930472A14E35FAD898E4B8BE1

Abstract
Kljub veliki razširjenosti izdelave različnih računalniških pripomočkov "po meri" je lahko dostopnega gradiva za izdelavo računalniške miške relativno malo. Kot odgovor na to je v tem delu opisana vzpostavitev platforme za izdelavo računalniške miške, ki posamezniku z manj naprednim znanjem nudi dober vir informacij za dosego cilja. V prvem delu zaključnega dela je opisan grob pregled ponudbe računalniških mišk, ki mu sledi razčlenitev glavnih delov osnovne računalniške miške na strojno in programsko opremo. Strojno opremo naprej razdelimo še na ohišje in tiskano vezje. V drugem delu naloge se posvetimo načrtovanju in izdelavi strojne opreme. Najprej se preko opisa izbire posameznih elektronskih komponent posvetimo tiskanemu vezju. Po opisu izbire komponent sledi priprava delovnega okolja, katere rezultat je načrtovanje vezja v programu KiCAD. Sledi načrtovanje shematske vezave, kjer se srečamo z manjšimi izzivi, kot je odpravljanje signalnih odbojev in kasneje načrtovanje konkretne oblike vezja. Na koncu nekaj besed namenimo še postopku naročanja vezja pri zunanjem izvajalcu in komentiramo težave na katere smo naleteli ob procesu načrtovanja. V zadnjem delu je preko primerjave jezikov C in Rust opisan razvoj programske opreme. Začnemo s postavitvijo zahtev, ki pričakujemo, da jih programska oprema izpolnjuje. Nadaljujemo s pripravami strojne opreme in delovnega okolja. Pri tem pregledamo orodja, ki nam jih ponujajo različni proizvajalci, razširjena odprtokodna orodja ter manj uveljavljene alternative. Po pripravah se osredotočimo na pregled delovanja posameznih komponent, s katerimi mora programska oprema komunicirati oz. jih "razumeti". To vključuje vodilo USB v načinu HID, senzor gibanja in inkrementalni dajalnik. Implementacijo programske opreme najprej začnemo s programskim jezikom C. Opravimo priprave delovnega okolja, kjer izbrana orodja razčlenimo v skupine glede na vrsto uporabe, nato pa sledi opis implementacije povezave s prej opisanimi elektronskimi komponentami. Ob koncu tega dela naletimo na težavo s pomanjkanjem modularnosti izdelane programske opreme, zato poskušamo z uporabo istih orodij spremeniti strukturo programa, da bi dosegli boljšo abstrakcijo za naše potrebe. Implementacijo nato začnemo od začetka izdelovati z drugimi orodji, na čelu katerih stoji programski jezik Rust. Preko enake razčlenitve orodij kot pri programskem jeziku C, poskušamo primerjati uporabljena orodja med seboj in pri tem izraziti prednosti ene oz. druge strani. Enako naredimo z implementacijo, kjer preko razčlenitve na uporabniško kodo in knjižnice izraizmo nekatere prednosti razvoja s programskim jezikom Rust. Na koncu zadnjega dela se posvetimo še direktni primerjavi uprabljenih razvojnih orodij in izrazimo splošne težave in omejitve, na katere smo naleteli. V okviru tega dela smo tako izdelali odprtokodno modularno platformo iz ohišja, tiskanega vezja in programske opreme. Omenjeni deli projekta lahko uporabniku skupaj ali posamično olajšajo izdelavo in nudijo izhodiščno točko pri izdelavi svoje računalniške miške. S poudarkom na primerjavi tehnologij med razvojem programske opreme smo prišli do zanimive ugotovitve, da je izbira programskega jezika Rust velikokrat smiselna, čeprav je prvi korak v primerjavi z jezikom C težji zaradi kompleksnejše narave jezika težji. Izbira programskega jezika Rust prav v svetu vdelanih sistemov v fazi razvoja lahko nudi hitrejšo izdelavo, hkrati pa zaradi nekaterih lastnosti pripomore k boljši spominski varnosti ter boljši strukturi programa.

Language:Slovenian
Keywords:računalniška miška, programska oprema, strojna oprema, C, Rust, tiskano vezje
Work type:Master's thesis/paper
Organization:FE - Faculty of Electrical Engineering
Year:2023
PID:20.500.12556/RUL-151874 This link opens in a new window
COBISS.SI-ID:181089795 This link opens in a new window
Publication date in RUL:24.10.2023
Views:543
Downloads:66
Metadata:XML DC-XML DC-RDF
:
Copy citation
Share:Bookmark and Share

Secondary language

Language:English
Title:Development of a platform for designing and manufacturing a computer mouse
Abstract:
Despite the widespread production of various custom computer peripherals, accessible resources for creating custom computer mice can be relatively scarce. In response to this, this work describes the establishment of a platform for creating computer mice, providing individuals with less advanced knowledge a valuable source of information to achieve their goals. The first part of the thesis provides a rough overview of the offerings of computer mice, followed by a breakdown of the main components of a basic computer mouse into hardware and software. Hardware is further divided into the casing and the printed circuit board. The second part of the task focuses on the design and manufacture of hardware. Firstly, through a description of the selection of individual electronic components, attention is given to the printed circuit board. After describing the component selection, the preparation of the working environment follows, resulting in the design of the circuit in the KiCAD program. This is followed by the design of the schematic connection, where we encounter minor challenges, such as addressing signal reflections, and later, the design of the specific circuit shape. Finally, some words are dedicated to the process of ordering the circuit from an external supplier and comments on the difficulties encountered during the design process. In the last part, the development of software is described through a comparison of the C and Rust programming languages. We begin with setting up the requirements that we expect the software to fulfill. We then proceed with hardware and workspace preparations, reviewing tools offered by various manufacturers, open-source tools, and less established alternatives. After the preparations, we focus on the operation of individual components that the software must communicate with or must "understand". This includes the USB interface in HID mode, motion sensor, and incremental encoder. The implementation of the software begins with the C programming language. We perform workspace preparations, categorizing selected tools into groups according to their usage type, followed by a description of the implementation of the connection with the previously described electronic components. At the end of this section, we encounter an issue with the lack of modularity in the developed software, prompting us to attempt a restructuring of the program's structure using the same tools to achieve better abstraction for our needs. The implementation then starts from scratch using different tools, primarily the Rust programming language. Using the same tool categorization as with the C programming language, we attempt to compare the tools used, expressing the advantages of one over the other. The same is done with the implementation, where we highlight some advantages of developing with the Rust programming language through a breakdown into user code and libraries. In the final part, we focus on a direct comparison of the development tools used and express general challenges and limitations encountered. Within this work, we have developed an open-source modular platform consisting of a casing, printed circuit board, and software. These project components can assist users in the assembly of their computer mice either collectively or individually, serving as a starting point for creating their custom computer mice. With an emphasis on the comparison of technologies during software development, we have arrived at an interesting conclusion that choosing the Rust programming language is often sensible, even though the initial step compared to the C language is more challenging due to its more complex nature. Choosing the Rust programming language, especially in the world of embedded systems during the development phase, can lead to faster production, while also contributing to improved memory security and program structure.

Keywords:computer mouse, software, hardware, C, Rust, printed circuit board

Similar documents

Similar works from RUL:
Similar works from other Slovenian collections:

Back