Читать книгу Microcontroller Prototypes with Arduino and a 3D Printer - Dimosthenis E. Bolanakis - Страница 11
Preface
ОглавлениеThis book provides a guide to learning microcontrollers (μCs), appropriate for educators, researchers, and makers. Microcontrollers constitute a popular type of embedded computers. This technology has been experiencing, in the last decade, the widespread dissemination of do it yourself (DIY) culture and gradually shifting away from electronic engineering (EE) discipline (where it was originally meant to be used). The today's wave of the ready‐to‐use and stackable μC board systems and the shareable – over the internet – libraries, render feasible the rapid development of microcontroller‐based applications. Furthermore, the modern μC programming methods have managed to abstract the low‐level tasks, and consequently, today's technology can also be utilizable by the computer science (CS) discipline. However, to learn, in in‐depth, how to develop microcontroller‐based products, one has to pay particular attention to practices related to the hardware domain as well. The current effort exploits the modern development tools and programming methods, while also providing a scholastic examination of the critical, hardware‐related practices on microcontrollers. Through a series of carefully designed example codes and explanatory figures, the book provides to the reader a unique experience on establishing a clear link between the software and hardware. The latter constitutes perhaps the most challenging area of study, which could be considered as the basis for making the passage from “have knowledge of” to “mastering” the design of microcontroller‐based projects and applications. The book also features a theoretical background appropriate for instructors and educational researchers, which provides to the reader a unique perspective on the educational aspects related to the process of microcomputer programming and application development.
Chapter 1 is structured with scientific rigorousness and is primarily addressed for educators and educational researchers. The chapter first introduces a novel classification of today's embedded computer systems, in terms of the tasks linked either to the CS or EE discipline. This interdisciplinary technology between the two disciplines aims at helping readers clarify the possibilities, limitations, and learning difficulties of each category. Then the chapter provides a unique perspective on the educational aspects of microcomputer programming and application development. The original analysis applies to the technological pedagogical content knowledge (TPACK) model, and attempts to clarify why the programming language should be considered as the technology integration, toward helping students create their knowledge about the subject matter. It also justifies why the employed technology may arrange the tutoring more appropriate for either the CS, or the EE, discipline. Subsequent to that analysis, the chapter explores the additional endeavor required to understand the capabilities of microcomputer technology and addresses the coined micro‐computational thinking (μCT) term in order to describe the thought processes involved in the solutions, carried out by a microcomputer‐based system. The μCT term is not differentiated from the existing and well‐known computational thinking (CT) concept, but is rather addressed to reveal the thought processes related to the application development with embedded computers. Because of the maker movement in education (and the fact that microcontrollers constitute a low‐cost and easily accessible technology that can be straightforwardly incorporated within any makerspace), it would be wise to consider an upcoming turn to the educational research efforts related to microcomputer programming, at expense of (or complementary to) the conventional computer programming courses. This attempt would raise questions such as: “What is the difference between programming a regular computer and a microcomputer? How could we arrange the content knowledge of a technical subject matter without too much focus on the specified technology?” This chapter applies to such issues and provides information that can be used as a reference guide for further educational research in microcontrollers, and embedded computers in general. Moreover, in order to understand the today's impact of microcontroller technology on the maker industry, the reader follows the advancement of microcontroller programming and application development and identifies the (i) long‐cycle and (ii) short‐cycle development eras (in terms of the requisite time needed to learn, program, and develop a microcontroller‐based application), as well as the recent trends in sensor devices and how they pave the way for creativity and new solutions in embedded computing devices.
Chapter 2 is structured with less scientific rigorousness and is addressed for engineers and makers. The reader explores the Arduino software and hardware tools, which have become a viral technology for microcontrollers as they provide a quick jump‐start and flexibility in the implementation of a microcontroller‐based project. The chapter summarizes the fundamental aspects of sequential programming, in consideration of a relative compatibility between the Arduino and C language programming. The authoring strategies of the chapter apply to the motto “less is more” and address the minimalist principles in the design of the software. Additionally to the task of reducing the software development to its necessary elements, the chapter exploits the familiar and simplified board called the Arduino Uno, so as to reduce the use of hardware when there is a need to explore the results occurred by the execution of an example code. Makers and engineers may directly start from this particular chapter, in order to make quick jump‐start into the practical part of learning microcontroller.
Chapter 3 applies to practices related to the hardware interface with the outside world. The chapter starts from the familiarization and utilization of the ready‐to‐use Arduino libraries, and gradually moves to more advanced issues, such as interrupting the regular execution of the code, building libraries from scratch, and so forth. Hence, the chapter incorporates information that intends to satisfy the curiosity of makers, but also engineers and researchers who work with microcontroller devices. The purpose of this chapter is to provide a thorough examination of the hardware interface topics, which are considered of vital importance when building projects around microcontrollers. Through a scholastic examination of the critical, hardware‐related practices on microcontrollers (arranged around carefully designed example codes and explanatory figures) the book provides to the reader a unique experience in establishing a clear link between the software and hardware. This area of study is essential in building the solid background required to make the passage from “have knowledge of” to “mastering” the design of microcontroller‐based projects and applications.
Chapter 4 applies to sensors (used in microcontroller projects) and to the data acquisition process. Because modern sensor devices constantly pave the way for creativity and innovation in embedded solutions, this chapter aims to inspire the interest and curiosity of the reader, through examples that apply to the detection of orientation, motion, gesture, distance, and color sensing. The examples are implemented with some of the most popular and contemporary boards in the worldwide market, that is, Teensy 3.2, TinyZero, and Micro:bit. The examples are designed in a way so that they direct readers in achieving simplicity in design. The process of interfacing with mobile phone through Bluetooth technology is also explored. Once again, the explanatory figures of the chapter are conducted with particular devotion in order to help readers achieve a deep understanding of the explored topics.
Chapter 5 applies to the tinkering practices of μC‐based electronic products using Arduino‐related hardware and software tools, as well as prototyping techniques using 3D printing technology. Having dealt with the theoretical and practical topics covered by the previous chapters (mainly by Chapters 2–4), the reader should be ready to proceed to practices related to real‐world projects, as those covered by this particular chapter. Creativity and simplicity in design are two of main features that are addressed by the carefully thought examples of this chapter.
The freeware tools used by the current project are the following:
Arduino integrated development environment (IDE) Software tool to develop (and upload) μC code.
Termite RS 232 terminal console (data write/read to/from serial port).
Free Serial Port Monitor Software tool to spy data exchanged through the serial port.
Notepad++ Editor for the source code development.
Minimalist GNU for Windows (MinGW) Open source programming tool.
Gnuplot Command‐line driven graphing utility (can be invoked by C code).
OpenGL and GLUT Open graphics library and toolkit for 2D and 3D vector graphics.
FreeCAD General‐purpose parametric 3D computer‐aided design (CAD) modeler.
Ultimaker Cura 3D printing software for preparing prints.
Additionally, the book offers a variety of supplementary resources – including source codes and examples – hosted on an accompanying website to be maintained by the author: www.mikroct.com.