100% found this document useful (3 votes)
48 views

[Ebooks PDF] download Java on the Raspberry Pi: Develop Java Programs to Control Devices for Robotics, IoT, and Beyond Flurry full chapters

Control

Uploaded by

njekehjayap
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
48 views

[Ebooks PDF] download Java on the Raspberry Pi: Develop Java Programs to Control Devices for Robotics, IoT, and Beyond Flurry full chapters

Control

Uploaded by

njekehjayap
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Get ebook downloads in full at ebookmeta.

com

Java on the Raspberry Pi: Develop Java Programs to


Control Devices for Robotics, IoT, and Beyond
Flurry

https://ebookmeta.com/product/java-on-the-raspberry-pi-
develop-java-programs-to-control-devices-for-robotics-iot-
and-beyond-flurry/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://ebookmeta.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Real-Time IoT Imaging with Deep Neural Networks: Using


Java on the Raspberry Pi 4 1st Edition Nicolas Modrzyk

https://ebookmeta.com/product/real-time-iot-imaging-with-deep-neural-
networks-using-java-on-the-raspberry-pi-4-1st-edition-nicolas-modrzyk/

ebookmeta.com

Java: A Beginner's Guide: Create, Compile, and Run Java


Programs Today Herbert Schildt

https://ebookmeta.com/product/java-a-beginners-guide-create-compile-
and-run-java-programs-today-herbert-schildt/

ebookmeta.com

Raspberry Pi IoT In C 2nd Edition Harry Fairhead

https://ebookmeta.com/product/raspberry-pi-iot-in-c-2nd-edition-harry-
fairhead/

ebookmeta.com

Pediatric Hypertension 5th Joseph T Flynn Julie R


Ingelfinger Tammy M Brady Eds

https://ebookmeta.com/product/pediatric-hypertension-5th-joseph-t-
flynn-julie-r-ingelfinger-tammy-m-brady-eds/

ebookmeta.com
House of Music: Raising the Kanneh-Masons 1st Edition
Kadiatu Kanneh-Mason

https://ebookmeta.com/product/house-of-music-raising-the-kanneh-
masons-1st-edition-kadiatu-kanneh-mason/

ebookmeta.com

Wraparound Guide How to Gather Student Voice Build


Community a Wraparound Service Delivery Handbook for
Helping Students Overcome Barriers to Wellness and
Learning Partnerships and Cultivate Hope 1st Edition Leigh
https://ebookmeta.com/product/wraparound-guide-how-to-gather-student-
Colburn
voice-build-community-a-wraparound-service-delivery-handbook-for-
helping-students-overcome-barriers-to-wellness-and-learning-
partnerships-and-cultivate-hope-1st/
ebookmeta.com

Beautiful Monsters: Imagining the Classic in Musical Media


Michael Long

https://ebookmeta.com/product/beautiful-monsters-imagining-the-
classic-in-musical-media-michael-long/

ebookmeta.com

Thinking Through Images Narrative rhythm embodiment and


landscape in the Nordic Bronze Age Tilley Christopher

https://ebookmeta.com/product/thinking-through-images-narrative-
rhythm-embodiment-and-landscape-in-the-nordic-bronze-age-tilley-
christopher/
ebookmeta.com

Rigorous PBL by Design Three Shifts for Developing


Confident and Competent Learners 1st Edition Michael
Mcdowell
https://ebookmeta.com/product/rigorous-pbl-by-design-three-shifts-for-
developing-confident-and-competent-learners-1st-edition-michael-
mcdowell/
ebookmeta.com
Meredith The Guardians Trust 4 1st Edition Beth Linton

https://ebookmeta.com/product/meredith-the-guardians-trust-4-1st-
edition-beth-linton/

ebookmeta.com
TECHNOLOGY IN AC TION™

Java on the
Raspberry Pi
Develop Java Programs to
Control Devices for Robotics,
IoT, and Beyond

Greg Flurry
Java on the
Raspberry Pi
Develop Java Programs
to Control Devices for
Robotics, IoT, and Beyond

Greg Flurry
Java on the Raspberry Pi: Develop Java Programs to Control Devices for
Robotics, IoT, and Beyond

Greg Flurry
Austin, TX, USA

ISBN-13 (pbk): 978-1-4842-7263-3 ISBN-13 (electronic): 978-1-4842-7264-0


https://doi.org/10.1007/978-1-4842-7264-0

Copyright © 2021 by Greg Flurry


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or
part of the material is concerned, specifically the rights of translation, reprinting, reuse of
illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way,
and transmission or information storage and retrieval, electronic adaptation, computer software,
or by similar or dissimilar methodology now known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark
symbol with every occurrence of a trademarked name, logo, or image we use the names, logos,
and images only in an editorial fashion and to the benefit of the trademark owner, with no
intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if
they are not identified as such, is not to be taken as an expression of opinion as to whether or not
they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of
publication, neither the authors nor the editors nor the publisher can accept any legal
responsibility for any errors or omissions that may be made. The publisher makes no warranty,
express or implied, with respect to the material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Aaron Black
Development Editor: James Markham
Coordinating Editor: Jessica Vakili
Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 NY
Plaza, New York, NY 10014. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@
springer-sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and
the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc).
SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail booktranslations@springernature.com; for
reprint, paperback, or audio rights, please e-mail bookpermissions@springernature.com.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook
versions and licenses are also available for most titles. For more information, reference our Print
and eBook Bulk Sales web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available
to readers on GitHub via the book’s product page, located at www.apress.com/978-­1-­4842-­7263-­3.
For more detailed information, please visit http://www.apress.com/source-­code.
Printed on acid-free paper
To my wonderful wife Sylvia, who endured many months of
a distracted husband who talked about “the book”
whenever he considered it acceptable.
Table of Contents
About the Author������������������������������������������������������������������������������xvii

About the Technical Reviewer�����������������������������������������������������������xix


Acknowledgments�����������������������������������������������������������������������������xxi

Chapter 1: Motivations�������������������������������������������������������������������������1
Why the Raspberry Pi?������������������������������������������������������������������������������������������2
The “Best” Raspberry Pi for Robotics��������������������������������������������������������������4
The “Best” Raspberry Pi for IoT�����������������������������������������������������������������������6
Why Java?�������������������������������������������������������������������������������������������������������������6
Programmer Productivity���������������������������������������������������������������������������������7
Performance��������������������������������������������������������������������������������������������������13
Industry Acceptance��������������������������������������������������������������������������������������13
The Verdict�����������������������������������������������������������������������������������������������������14
Why Remote Development Using NetBeans?������������������������������������������������������15
Why NetBeans?���������������������������������������������������������������������������������������������18
Summary������������������������������������������������������������������������������������������������������������19

Chapter 2: Raspberry Pi 3 Model B+ Setup����������������������������������������21


Setup Considerations������������������������������������������������������������������������������������������21
Choose the Operating System�����������������������������������������������������������������������������22
Load Raspberry Pi OS on the microSD Card�������������������������������������������������������23
Get Raspberry Pi OS��������������������������������������������������������������������������������������23
Image Raspberry Pi OS����������������������������������������������������������������������������������24

v
Table of Contents

Boot and Configure Raspberry Pi OS������������������������������������������������������������������31


Initial Configuration���������������������������������������������������������������������������������������31
Configure Remote Computing�����������������������������������������������������������������������39
Configure the Interface Capabilities��������������������������������������������������������������40
Install Java on Raspberry Pi OS��������������������������������������������������������������������������43
What Java to Install?�������������������������������������������������������������������������������������44
Check for Prior Java Installations������������������������������������������������������������������44
Install the JDK 11������������������������������������������������������������������������������������������46
Finish Java Installation����������������������������������������������������������������������������������46
Finish Pi3 Setup��������������������������������������������������������������������������������������������������47
Summary������������������������������������������������������������������������������������������������������������48

Chapter 3: Raspberry Pi Zero W Setup�����������������������������������������������49


Setup Considerations������������������������������������������������������������������������������������������49
Choose the Operating System�����������������������������������������������������������������������������50
Load Raspberry Pi OS on the microSD Card�������������������������������������������������������50
Write Raspberry Pi OS�����������������������������������������������������������������������������������50
Finish the Bootable microSD Card����������������������������������������������������������������������54
Boot and Configure Raspberry Pi OS������������������������������������������������������������������56
Find the IP Address����������������������������������������������������������������������������������������56
Connect to the Zero���������������������������������������������������������������������������������������57
Update and Upgrade Raspberry Pi OS�����������������������������������������������������������58
Additional Configuration��������������������������������������������������������������������������������58
Configure the Interface Capabilities��������������������������������������������������������������64
Install Java on Raspberry Pi OS��������������������������������������������������������������������������66
What Java to Install?�������������������������������������������������������������������������������������66
Check for Prior Java Installations������������������������������������������������������������������67
Install the JDK 11������������������������������������������������������������������������������������������67
Summary������������������������������������������������������������������������������������������������������������70

vi
Table of Contents

Chapter 4: Set Up the Workstation�����������������������������������������������������71


Remote Computing with SSH������������������������������������������������������������������������������71
Remote Computing with VNC������������������������������������������������������������������������������73
Start the VNC Server��������������������������������������������������������������������������������������73
Get and Start the VNC Viewer������������������������������������������������������������������������74
Tune the VNC Server��������������������������������������������������������������������������������������77
Summary������������������������������������������������������������������������������������������������������������81

Chapter 5: Remote Java Development with NetBeans�����������������������83


Choose NetBeans and Java Versions������������������������������������������������������������������83
Install Java 11�����������������������������������������������������������������������������������������������������84
Install NetBeans 12.0������������������������������������������������������������������������������������������87
Test the NetBeans Installation����������������������������������������������������������������������������90
Configure the Raspberry Pi As a Remote Platform���������������������������������������������95
Test Remote Development��������������������������������������������������������������������������������100
Debug Remotely������������������������������������������������������������������������������������������������102
Fix Remote Debug���������������������������������������������������������������������������������������102
Successful Debug����������������������������������������������������������������������������������������103
Examine Variables While Debugging�����������������������������������������������������������104
The Debugger Menu������������������������������������������������������������������������������������105
Run on the Raspberry Pi Without NetBeans������������������������������������������������������106
Leverage NetBeans in Complex Projects����������������������������������������������������������108
Create and Test Libraries�����������������������������������������������������������������������������109
Use Libraries������������������������������������������������������������������������������������������������113
Choose Which Program to Run from NetBeans�������������������������������������������������117
Run the Chosen Program on the Raspberry Pi Without NetBeans��������������������118
Just Download with NetBeans��������������������������������������������������������������������������119
Summary����������������������������������������������������������������������������������������������������������121

vii
Table of Contents

Chapter 6: Device Support in Java���������������������������������������������������123


Find Base I/O Libraries for Java������������������������������������������������������������������������124
Select the Best Base I/O Library�����������������������������������������������������������������������125
Functional Coverage������������������������������������������������������������������������������������125
Performance������������������������������������������������������������������������������������������������125
Support��������������������������������������������������������������������������������������������������������126
Ease of Use��������������������������������������������������������������������������������������������������127
The Base I/O Choice for This Book��������������������������������������������������������������������128
A Look at pigpioj������������������������������������������������������������������������������������������129
A Look at diozero�����������������������������������������������������������������������������������������130
Evaluating the Choices��������������������������������������������������������������������������������132
The Final Choice – diozero��������������������������������������������������������������������������134
Configure diozero in NetBeans�������������������������������������������������������������������������135
Find (and Port) Device Libraries������������������������������������������������������������������������141
Java Device Library and diozero Base I/O���������������������������������������������������143
Java Device Library and Non-diozero Base I/O�������������������������������������������143
C/C++ Device Library����������������������������������������������������������������������������������144
Python Device Library����������������������������������������������������������������������������������145
No Device Library����������������������������������������������������������������������������������������146
Summary����������������������������������������������������������������������������������������������������������146

Chapter 7: The diozero Base I/O API�������������������������������������������������149


diozero Utilities�������������������������������������������������������������������������������������������������149
Connect Devices to a Raspberry Pi�������������������������������������������������������������������150
diozero SerialDevice�����������������������������������������������������������������������������������������153
Background on Raspberry Pi Serial I/O�������������������������������������������������������153
Constructors������������������������������������������������������������������������������������������������155
Read and Write Methods�����������������������������������������������������������������������������156
Support for Device Identity��������������������������������������������������������������������������157

viii
Table of Contents

diozero I2CDevice���������������������������������������������������������������������������������������������164
Background on Raspberry Pi I2C�����������������������������������������������������������������164
Constructors������������������������������������������������������������������������������������������������167
Read and Write Methods�����������������������������������������������������������������������������168
diozero SpiDevice���������������������������������������������������������������������������������������������170
Background on Raspberry Pi SPI�����������������������������������������������������������������170
Constructors������������������������������������������������������������������������������������������������171
Read and Write Methods�����������������������������������������������������������������������������172
GPIO������������������������������������������������������������������������������������������������������������������173
Background on Raspberry Pi GPIO��������������������������������������������������������������174
diozero GPIO Classes�����������������������������������������������������������������������������������177
Device Library and Application Structure����������������������������������������������������������182
RuntimeIOException������������������������������������������������������������������������������������183
Safety Nets��������������������������������������������������������������������������������������������������184
Safety Net Guidelines����������������������������������������������������������������������������������188
Summary����������������������������������������������������������������������������������������������������������190

Chapter 8: A DC Motor Controller�����������������������������������������������������191


Choose the Device��������������������������������������������������������������������������������������������192
Understand the Device��������������������������������������������������������������������������������������193
Find a Device Library����������������������������������������������������������������������������������������195
Search for Java Libraries�����������������������������������������������������������������������������195
Search for Non-Java Libraries���������������������������������������������������������������������196
And the Answer Is …����������������������������������������������������������������������������������201
Porting Issues���������������������������������������������������������������������������������������������������202
Device Library Interface������������������������������������������������������������������������������202
Device Instances�����������������������������������������������������������������������������������������205
Verbatim vs. Cleansing Port������������������������������������������������������������������������206
Porting Approach�����������������������������������������������������������������������������������������207

ix
Table of Contents

Play with the Device�����������������������������������������������������������������������������������������208


Device Library Development�����������������������������������������������������������������������������209
RoboClaw Class�������������������������������������������������������������������������������������������212
Constructor Analysis and Implementation���������������������������������������������������214
Mid-level Methods Analysis�������������������������������������������������������������������������218
CRC-Related Methods���������������������������������������������������������������������������������218
Low-Level Methods Analysis�����������������������������������������������������������������������220
Mid-level Methods Implementation�������������������������������������������������������������220
Finish the Core��������������������������������������������������������������������������������������������224
Test the Core������������������������������������������������������������������������������������������������226
Complete the Implementation���������������������������������������������������������������������235
Summary����������������������������������������������������������������������������������������������������������246

Chapter 9: An Inertial Measurement Unit�����������������������������������������249


Understand the Device��������������������������������������������������������������������������������������250
Find a Device Library����������������������������������������������������������������������������������������252
A Search for Java Libraries�������������������������������������������������������������������������252
A Search for Non-Java Libraries�����������������������������������������������������������������������254
A Look at the C++ Libraries������������������������������������������������������������������������254
A Look at the C Libraries�����������������������������������������������������������������������������255
And the Answer Is …����������������������������������������������������������������������������������255
Device Library Port��������������������������������������������������������������������������������������������256
Play with the Device (FXAS21002C)������������������������������������������������������������������257
Device Library Development (FXAS21002C)�����������������������������������������������������259
Constructor Analysis and Implementation���������������������������������������������������260
Configuration�����������������������������������������������������������������������������������������������265
Read a Sample��������������������������������������������������������������������������������������������268
Test the Core������������������������������������������������������������������������������������������������271

x
Table of Contents

Additional Thoughts�������������������������������������������������������������������������������������276
Address Zero Offset and Noise��������������������������������������������������������������������291
Get Real�������������������������������������������������������������������������������������������������������302
What Next?��������������������������������������������������������������������������������������������������306
Device Library Development (FXOS8700CQ)�����������������������������������������������������306
Constructor Analysis and Implementation���������������������������������������������������311
Configuration�����������������������������������������������������������������������������������������������313
Read Sample and Status�����������������������������������������������������������������������������316
Test the Core������������������������������������������������������������������������������������������������318
Events Again������������������������������������������������������������������������������������������������323
What Next?��������������������������������������������������������������������������������������������������329
Summary����������������������������������������������������������������������������������������������������������331

Chapter 10: A Lidar Unit�������������������������������������������������������������������333


Understand the Device��������������������������������������������������������������������������������������334
Find a Device Library����������������������������������������������������������������������������������������334
Device Library Design���������������������������������������������������������������������������������������335
Interface������������������������������������������������������������������������������������������������������335
Common Methods���������������������������������������������������������������������������������������337
Other Considerations�����������������������������������������������������������������������������������338
Play with the Device�����������������������������������������������������������������������������������������339
Device Library Development�����������������������������������������������������������������������������342
Development Approach�������������������������������������������������������������������������������342
Lidar Core����������������������������������������������������������������������������������������������������343
Implementation�������������������������������������������������������������������������������������������344
Test the Core������������������������������������������������������������������������������������������������348
Additional Methods��������������������������������������������������������������������������������������352

xi
Table of Contents

Test the Additional Methods������������������������������������������������������������������������356


Additional Thoughts�������������������������������������������������������������������������������������360
What Next?��������������������������������������������������������������������������������������������������������369
Summary����������������������������������������������������������������������������������������������������������369

Chapter 11: An Environmental Sensor����������������������������������������������371


Understand the Device��������������������������������������������������������������������������������������371
Find a Device Library����������������������������������������������������������������������������������������373
Use the diozero BME280�����������������������������������������������������������������������������������376
Play with I2C and SPI����������������������������������������������������������������������������������������381
To the Datasheet������������������������������������������������������������������������������������������382
I2CDevice�����������������������������������������������������������������������������������������������������383
SpiDevice�����������������������������������������������������������������������������������������������������387
A Step Beyond Play�������������������������������������������������������������������������������������392
Summary����������������������������������������������������������������������������������������������������������395

Chapter 12: An Analog-to-Digital Converter�������������������������������������397


Understand the Device��������������������������������������������������������������������������������������398
Finding a Device Library�����������������������������������������������������������������������������������398
Use the diozero McpAdc�����������������������������������������������������������������������������������400
Play with SPI�����������������������������������������������������������������������������������������������������403
Turn Play into Reality����������������������������������������������������������������������������������������408
Summary����������������������������������������������������������������������������������������������������������412

Chapter 13: A Stepper Motor Driver�������������������������������������������������413


Understand the Device��������������������������������������������������������������������������������������413
Find a Device Library����������������������������������������������������������������������������������������416
Search for Non-Java Libraries���������������������������������������������������������������������416
And the Answer Is …����������������������������������������������������������������������������������417

xii
Table of Contents

Device Library Design���������������������������������������������������������������������������������������417


Interface Design������������������������������������������������������������������������������������������418
Device Library Development�����������������������������������������������������������������������������419
Play with the Device������������������������������������������������������������������������������������419
SilentStepStick Implementation������������������������������������������������������������������422
Constructor Implementation������������������������������������������������������������������������423
Test SilentStepStick�������������������������������������������������������������������������������������428
What Next?��������������������������������������������������������������������������������������������������������432
Speed Profiles���������������������������������������������������������������������������������������������437
Summary����������������������������������������������������������������������������������������������������������439

Chapter 14: A Project�����������������������������������������������������������������������441


The Metronome�������������������������������������������������������������������������������������������������441
Mechanical Design��������������������������������������������������������������������������������������������442
Electronic Design����������������������������������������������������������������������������������������������446
Software Design������������������������������������������������������������������������������������������������447
Project Component Testing�������������������������������������������������������������������������������448
Test waitForActive���������������������������������������������������������������������������������������448
Test whenActivated�������������������������������������������������������������������������������������452
Test addListener������������������������������������������������������������������������������������������455
Metronome Development����������������������������������������������������������������������������������458
Go Beyond Initial Requirements������������������������������������������������������������������������463
Get Closer to the Real World�����������������������������������������������������������������������������467
Summary����������������������������������������������������������������������������������������������������������472

xiii
Table of Contents

Appendix A1: Arduino Command Server������������������������������������������473


S
 ome Arduino Background�������������������������������������������������������������������������������474
Choose an Arduino��������������������������������������������������������������������������������������������475
The Command Server Pattern���������������������������������������������������������������������������476
The command_server Sketch���������������������������������������������������������������������������477
command_server File����������������������������������������������������������������������������������480
cmd_executor.h File������������������������������������������������������������������������������������484
cmd_executor file����������������������������������������������������������������������������������������485
Test the Command Server���������������������������������������������������������������������������������487
The Command Server As a “Device”�����������������������������������������������������������������489
Test the “Device” from Raspberry Pi�����������������������������������������������������������������489
Summary����������������������������������������������������������������������������������������������������������492

Appendix A2: Custom Lidar Unit�������������������������������������������������������493


The Hardware Design����������������������������������������������������������������������������������������493
Some Harsh Reality�������������������������������������������������������������������������������������������496
The Lidar Unit Sketch����������������������������������������������������������������������������������������497
cmd_executor.h�������������������������������������������������������������������������������������������499
cmd_executor����������������������������������������������������������������������������������������������499
lidar.h�����������������������������������������������������������������������������������������������������������504
lidar�������������������������������������������������������������������������������������������������������������505
servo.h���������������������������������������������������������������������������������������������������������507
servo������������������������������������������������������������������������������������������������������������509
Test�������������������������������������������������������������������������������������������������������������������512
Lidar Unit “Datasheet”��������������������������������������������������������������������������������������514
Power����������������������������������������������������������������������������������������������������������������514
Interface������������������������������������������������������������������������������������������������������������515
Summary����������������������������������������������������������������������������������������������������������519

xiv
Table of Contents

Appendix A3: NetBeans and Maven��������������������������������������������������521


Create a NetBeans Project Using Maven and diozero���������������������������������������523
Develop a Device Library����������������������������������������������������������������������������������526
Test the Device Library�������������������������������������������������������������������������������������529
Run TestLED with a diozero Remote Provider����������������������������������������������532
Run TestLED on a Raspberry Pi�������������������������������������������������������������������������535
Automate Build, Download, Run������������������������������������������������������������������������542
Summary����������������������������������������������������������������������������������������������������������546

Index�������������������������������������������������������������������������������������������������549

xv
Other documents randomly have
different content
The Project Gutenberg eBook of Kynäilijä
This ebook is for the use of anyone anywhere in the United States
and most other parts of the world at no cost and with almost no
restrictions whatsoever. You may copy it, give it away or re-use it
under the terms of the Project Gutenberg License included with this
ebook or online at www.gutenberg.org. If you are not located in the
United States, you will have to check the laws of the country where
you are located before using this eBook.

Title: Kynäilijä
Helppotajuinen opas kirjoitusten sepittämisessä

Author: Johannes Linnankoski

Release date: December 15, 2023 [eBook #72423]

Language: Finnish

Original publication: Porvoo: Werner Söderström, 1900

Credits: Tapio Riikonen

*** START OF THE PROJECT GUTENBERG EBOOK KYNÄILIJÄ


***
KYNÄILIJÄ

Helppotajuinen opas kirjoitusten sepittämisessä nuorisoseuroja,


kansakoulun jatkokursseja ja itsekseen opiskelevia varten

Kirj.

VIHTORI PELTONEN

Porvoossa, Werner Söderström, 1900.

SISÄLLYS:

Alkusana.
I. Yleisiä perusteita.
II. Alustavia töitä.
III. Kokoonpano.
IV. Esittäminen.
ALKUSANA.

Aikana semmoisena, kuin nykyinen, jolloin kansan syvät rivit


heräävät omintakeiseen kansalliseen ja yhteiskunnalliseen elämään,
tarvitaan kynäilytaitoakin entistä enemmän, jopa siinä määrässä, että
miltei joka miehen tulisi olla jonkunvertainen kynäniekka.
Talonpojaltakin alkaa aika jo vaatia omaa liikekirjevaihtoa, taitoa
laatia kokousten pöytäkirjoja, sanomalehtikirjoituksia ja kaikenlaisia
asiapapereita, jopa julkisia puheita ja esitelmiä — muilla aloilla
toimivista puhumattakaan.

Mutia taito — se ei ole joka miehen. Sanomalehtimiehenä on


minulla kenties paremmin kuin millään muulla alalla ollut tilaisuus
huomata miten puutteellisella kannalla kansamme tässä suhteessa
vielä on. Mutta sen ohessa olen havainnut kuinka harras, ellen
sanoisi itsepintainen, kansanmiehen ja varsinkin sen nuorison
pyrkimys on päästä kynäilytaidon omistajaksi ja kuinka suuria
edellytyksiä kansa tässä suhteessa omaa, kun vaan pikkuinenkaan
hyväntahtoinen ohjaus tulee syrjästä avuksi sen pyrkimystä
tukemaan.

Useimmissa tapauksissa on kuitenkin ollut pakko jäädä kaikkea


ohjausta vaille, varsinkin kun mitään kansantajuista, itsekseen
opiskeleville soveliasta opasta ei tähän saakka ole kielellämme
ilmestynyt. Kun tämä puutteellisuus on tunnustettu siksi toistuvaksi,
että parissa yleisessä nuorisoseurojen kokouksessakin semmoisen
aikaansaaminen on lausuttu suotavaksi, ei ihmeteltäne jos
allekirjoittanut rohkenee täten tehdä jonkunlaisen kokeen kipeimmän
ensi tarpeen tyydyttämiseksi. Siltä kannalta tätä tekelettä
arvosteltakoonkin, tietäen että myöhempi aika on synnyttävä
paremmat opastajatkin.

Minä luotan nuorisoon, sen elpyneeseen haluun ja harrastukseen.


Sillä on nykyaikana seuransa ja yhdistyksensä, ilta- ja jatkokurssinsa
ynnä monet muut pyrkimyksensä. Ajattelen että tokko sitä
laskettanee häveliäisyyden puutteeksi, jos itse suosittelen opustani
edistysrientoisen nuorisomme kursseihin ja ehdotan oppaani
esittämää ainetta kurssiaineeksi muiden joukkoon. Ja missä seuroja
ja kursseja ei ole, siellä voi jokainen kirjasen johdolla ottaa tässä
aineessa kurssin kotonaan, oman pöytänsä ääressä. Iloni olisi suuri,
jos oppaani voisi päästä nuorisomme vaatimattomaksi toveriksi näitä
»kurssi-iltoja» istuttaessa.

Lopuksi pyydän lausua vilpittömät kiitokseni professori E.N.


Setälälle, joka hyväntahtoisilla huomautuksillaan on minua
tehtävässäni avustanut.

Tekijä.
I.

Yleisiä perusteita.

Sisällys ja muoto.

Mitä on sisällys ja mitä on muoto?

Kun talonrakentaja ryhtyy uutta rakennusta puuhaamaan, ei hän


heti ensi työksi hanki rakennusaineita. Hän ottaa kynän käteensä ja
paperiliuskan eteensä. »Tuohon tulee pirtti, tuohon keittiö, tähän
täytyy saada sali sopimaan, tähän taas haltijaväen kamari, tuolle
sijalle lastenkamari ja eteinen», tuumii hän vetäen viivoja paperille.
»Pirtin tulee olla niin pitkä ja niin leveä, salin avaruus niin ja niin»,
jatkaa hän merkiten paperille numeroita ja muutellen viivoja. — »Nyt
tiedän mitä rakennuksen tulee sisältää», päättää hän
suunnitelmansa.

»Mutta», jatkaa hän vaipuen uudestaan miettimään. »Tässä on


kyllä pohjapiirustus, mutta miltähän rakennus tulee
kokonaisuudessaan näyttämään?» Hän vetää uudelleen viivoja ja
tekee numeroita. »Pituus on niin ja niin monta metriä, korkeutta
täytyy tulla ainakin niin ja niin paljo, muuten se näyttää ladolta»,
sanoo hän. »Porrassuojan katto on liitettävä itse rakennuksen
kattoon, siten se näyttää parhaimmalta», jatkaa hän, »ja ikkunat on
tehtävä entistä korkeammat.» — »Eipä se tule olemaan muotoakaan
vailla, jos noin tekee», päättää hän tyytyväisenä.

Sama on kirjallisten esitystenkin laita. Kirjoittaja on rakentaja,


uuden rakennuksen luoja. Hänen täytyy jo ennen työhön ryhtymistä
tietää, että hänen kirjoitukseltaan tullaan vaatimaan sekä sisällystä
että muotoa.

<tb>

Mihin tämä vaatimus perustuu?

Tarjoa pienelle lapselle ruma esine, niin näet kuinka hän käy
totiseksi ja työntää sen pois luotaan. Ojenna sen sijaan hänelle sievä
leikkiase — hän hymyilee ja ottaa sen ihastellen vastaan.

Kauneuden vaisto on siis synnynnäinen, jokainen omaa sitä


jossakin määrässä. Ihminen rakastaa kaunista. Kauniin parissa hän
viihtyy; kaunis tekee häneen ylentävän, kohottavan vaikutuksen.
Siksi ihminen etsii kauneutta. Hän pyrkii sitä itse omistamaan,
vaikuttamaan sillä ympäristöönsä ja kaikissa teoissaan luomaan
kauniita muotoja.

Mutta yksin muodon kauneus ei häntä tyydytä. Hänen huomionsa


tosin ensi hetkenä kiintyy ulkopiirteisiin, s.o. muodolliseen puoleen,
mutta pian hän tunkeutuu syvemmälle: sisällystäkin tutkimaan. Ja
juuri sisällyksestä useimmiten riippuu minkä arvon hän esineelle
lopullisesti antaa.
Sisällyksen vaatimus nimittäin perustuu ihmisen henkiseen
olemukseen. Sisällyksen etsimistä ja löytämistä tarkoittaa hänen
elämänsä ja kehityksensä, hänen työnsä ja toimensa. Sisällyksetön
elämä ja sisällyksetön työ eivät tyydytä hänen luonteensa sisintä
vaatimusta, sillä ne eivät vastaa sitä päämäärää, minkä hän tietää
niille asetetuksi.

Mutta mikä on kaunista?

Eri henkilöt ovat siitä usein eri mieltä: toinen pitää sitä rumana,
minkä toinen katsoo kauniiksi. Se mikä talonpojan mielestä on
hyvinkin siroa, ei tyydytä säätyläisen kauneudenvaatimuksia, ja päin
vastoin. Austraalialainen neekeri kaunistaa itseään tatueeraamalla,
eurooppalainen sanoo että hän siten piirtelee itsensä inhottavan
rumaksi. Mikä on kaunista?

»Makuasioista ei pidä kiistellä», sanoo latinalainen sananlasku.


Siihen vaikuttaa suuresti luonne, tottumus, henkinen kehitysaste
ynnä monet muut seikat. Mutta tästä huolimatta muodollisella
kauneudella on kuitenkin muutamia määrätyitä ehtoja ja edellytyksiä,
jotka ovat kaikille yhteisiä.

Ihminen, jolla on tavallista suurempi pää tahi tavallista pitemmät


kädet, tekee meihin epämiellyttävän vaikutuksen, s.o. loukkaa
luontaista kauneudenaistiamme. Kauneuden ensi ehto siis on että eri
osain tulee olla kokoonsa nähden keskenään suhteellisia.

Pöytä, jonka yksi jalka on suora, toinen käyrä, yksi kulmikas,


toinen pyöreä, vaikuttaa kauneudenaistiamme loukkaavasti, sitä
enemmän mitä erilaisempia toisiaan vastaavat osat ovat. Vaaditaan
siis että eri osain tulee olla muotoonsa nähden sopusointuisia
keskenään.

Mutta olkootpa eri osat kuinka sopusuhtaisia tahansa, ei niistä


synny kaunista kokonaisuutta, jos ne sattuvat väärille paikoille.
Ajatellaanpa vaan millaisen muodollisen hämmennyksen synnyttää
esim. niinkin pieni hairahdus, kuin että jonkun esineen erilaatuiset
koristeet joutuvat vaihdoksiin, toisiin paikkoihin kuin ne on tarkoitettu.
Kolmas kauneuden ehto siis on että kukin osa saa oikean,
luonnollisen paikkansa kokonaisuudessa.

Vaan eipä vielä tälläkään ehyt kokonaisuus ole taattu. Esine, jonka
eri osat eivät liity läheisesti toisiinsa, on ruma ja ehyttä kokonaisuutta
vailla. Eri osain tarkka, elimellinen toisiinsa liittyminen on siis
kauneuden neljäs pääehto.

Muodollisella kauneudella on vielä muitakin ehtoja, riippuen siitä


minkälaatuisista muodoista on kysymys. Edellämainitut neljä ovat
ne, joista etupäässä riippuu kirjallisten esitysten muodollinen
kauneus.

Mikä on sisällökästä?

Tähän kysymykseen saattaa sommitella pitkiä selityksiä, mutta


siihen saattaa vastata aivan lyhyestikin. Sokrates sanoi: »ainoastaan
se on kaunista, mikä on tarkoituksenmukaista», s.o. esineen
todellinen kauneus, sisällyksen kauneus riippuu sen
tarkoituksenmukaisuudesta.

Saamme siis ohjeen: sisällyksen arvo riippuu siitä, missä määrin


esine, työ ja teko vastaa sille ajateltua käytäntöä eli tarkoitusta.
Onko muodolla ja sisällyksellä mitään keskinäistä yhteyttä vai
ovatko ne toisistaan riippumattomia?

Ajatellaanpa että joku laittaa itselleen vaatekaapin, jonka


ulkopiirteet ja värit ovat mitä sirointa vaatekaapin kuosia. Siinä on
siis muotoa. Sisältä hän varustaa sen tiheään asetetuilla hyllyillä
kirjakaapin tapaan. Siinä on siis sisällystäkin. Mutta se on aivan
epäkäytännöllinen vaatekaapiksi, sillä sen sisällys ei ole
sopusoinnussa muodon kanssa.

Toinen esimerkki. Erään maamme rautatieradan varrella on erittäin


kaunismuotoinen, kirkon yleviä piirteitä tarkoin jäljittelevä rakennus.
Kun juna seisahtuu lähellä olevalle pysäkille kuulee outojen
matkustajain tavallisesti huudahtavan: »siinäpä siromuotoinen
tehtaankirkko!» Mutta tuskin voi arvata heidän hämmästystään, kun
joku paikkakuntaa tunteva hymähtäen selittää: »ei se kirkko ole, se
on — viinatehtaan konttori- ja asuinrakennus».

Vaaditaan siis sisällyksen ja muodon sopusointuisuutta. Kun


sisällys ja muoto ovat keskenään sopusointuisia, syntyy siitä
kokonaisuuden tarkoituksenmukaisuus, s.o. kokonaisuuden kauneus
eli täydellisyys.

Edellämainitut kauneuden ja sopusointuisuuden vaatimukset


koskevat kaikkia inhimillisiä tehtäviä. Niinpä kaikenlaisia kirjallisia
esityksiäkin — olipa niillä kirjeen, puheen, esitelmän, kertomuksen
tai tieteellisen tutkimuksen muoto. Niiden vaikutus kuulijoihin tai
lukijoihin riippuu siitä, missä määrin esitys vastaa sisällyksen ja
muodon vaatimuksia. Sisällökäs, ehyt ja sopusuhtainen esitys tekee
tarkoitetun vaikutuksen: miellyttää ja tempaa mukaansa, jopa saa
meidät omistamaan ja toteuttamaan siinä lausuttuja ajatuksia.
Hajanainen ja sotkuinen esitys sen sijaan, vaikkapa se sisältää aivan
samat asiat, vaikuttaa päin vastoin: ikävystyttää ja väsyttää.

Onnistumisen ehdot.

Ihminen ei synny mestarina. Hän on kasvatuksen ja luontaisen


kehityksen tulos, hänen työnsä taas edellisten tulos.

Tehtävissään onnistuakseen tarvitsee ihminen ensinnäkin


perehtyä työalaansa. Lahjat ja luontaiset taipumukset ovat eri
ihmisillä erilaiset, mutta kyvykkäimmänkin tulee tarkoin tuntea työn
suorittamistavat.

Eikä tässä kyllin. Tarvitaan vielä lisäksi uutteraa, huolellista työtä ja


ankaraa itsearvostelua. Usein ihmetellään maailman suuria
kirjailijoita ja muita neroja, mutta harvoin aavistetaan että heidän
taitonsa, suurten synnynnäisten taipumusten ohessa, on ankaran
työn tulos. Paljon on heiltä vaadittu uutteraa harjoitusta, ennenkuin
he ovat kyenneet hämmästyttävää mestariteoksiaan luomaan.

Mutta jos maailman nerokkaimmilta kyvyiltä tätä vaaditaan, mitä


sitte tavallisilta, keskinkertaisilta ihmisiltä. Välttämättömiä ehtoja
kirjallisissa tehtävässä onnistuaksemme siis on: työtapojen tarkka
tunteminen, väsymätön uutteruus, ankara itsearvostelu ja
huolellisuus työn suorittamisessa. Meidän tulee olla vaateliaita
työmme suhteen: kirjoittaa ja hyljätä ja yhä uudelleen kirjoittaa,
kunnes työ tulee täysikelpoista. Meitä tulee työssämme elähdyttää
pyrkimys saada aikaan mahdollisimman hyvää, sillä paraskaan ei ole
kyllin hyvää.
Tätä saavuttaaksemme meidän tulee antautua lämmöllä
tehtäväämme. Ainoastaan siten voimme siihen kiintyä ja
ajatuksemme syventyä tutkittavaan aineeseen. Silloin esitys syntyy
luonnollisesti eikä pakottamalla.

Jos meillä on täysi selvyys näistä vaatimuksista, on meillä


onnistumisen avain hallussamme. Me varmistumme askel
askeleelta, kunnes ehyt työ muuttuu meille vähitellen tottumukseksi,
toiseksi luonnoksi, s.o. me opimme taidon — juuri tuon, jota yleensä
ollaan taipuvaisia uskomaan synnynnäiseksi lahjaksi.
II.

Alustavia töitä.

Esitysten laatu.

Kirjalliset esitykset ovat hyvin erilaisia. Janamme ne


sisällykseensä nähden kolmeen pääryhmään: kertomuksiin,
kuvauksiin ja tutkisteluihin.

Kertomus esittää yhtäjaksoisesti tapauksia ja vaiheita elämästä.


Kun se kertoo jonkun henkilön elämänvaiheita, sanotaan sitä
elämäkerraksi (biografiaksi).

Kuvaus luo eteemme jonkun rajoitetun katseltavan: esineen,


eläimen, kasvin, seudun, kylän, kaupungin, ilmiön y.m. Kun kuvaus
esittää jonkun henkilön luonnetta ja sisäisten ominaisuuksien
kehitystä, saa se luonnekuvan (karakteristiikin) nimen.

Tutkistelma nimensä mukaisesti tutkii ja selvittelee asioita ja


olosuhteita, niiden syitä ja seurauksia, sisäistä yhteyttä j.n.e. Tähän
osastoon kuuluvat m.m. tieteelliset teokset.
Likimainkaan kaikki esitykset eivät ole puhtaasti yhtä lajia, vaan
useinkin eri lajien rinnakkain esiintymistä. Niinpä monesti yhtyy
kertomus ja tutkistelma, kertomus ja luonnekuva. Samoin voipi
samasta aineesta tehdä useampia eriluontoisia esityksiä. Niinpä
jostakin henkilöstä, esim. Snellmanista, joko elämäkerran,
luonnekuvan tahi tutkistelman, riippuen siitä käsitteleekö esitys
hänen elämänvaiheitaan (elämäkerta), hänen luonteensa
ominaisuuksia (luonnekuva) tahi hänen vaikutustaan aikansa oloihin
(tutkistelma). Samoin voi jostakin esineestä, esim. vaatteista, tehdä
kertomuksen niiden historiasta ja kehityksestä, kuvauksen eri
kansojen ja eri aikakausien puvuista sekä kolmanneksi tutkistelman
vaatteista terveyden, kauneuden, kestävyyden y.m. kannalta
katsottuna.

Aiheen valitseminen ja rajoittaminen.

Kirjallisten esitysten aiheet voivat joko olla ennakolta määrätyitä


tahi jää niiden valitseminen kirjoittajan vapaaseen valtaan. Aihetta
valitessa on huomioon otettava kirjoittajan tiedot ja kehityskanta. On
valittava semmoinen aihe, jonka kirjoittaja voi hyvästi esittää. Niinpä
ei alottelijan sovi heti ryhtyä omintakeisia kirjoituksia laatimaan, vaan
on hänelle erittäin kehittävänä alkuasteena ennen kirjoitettujen
kyhäelmien mukaileminen. Saavutettuaan siinä jonkunlaisen
kätevyyden hän siirtyy pienempiin, selväpiirteisiin omintakeisiin
aineisiin, ensin kertomukseen, joka on itsenäisten esitysten helpoin
laji, sekä siitä vähitellen kuvauksiin ja tutkistelmiin, jotka vaativat
suurempaa taitoa. Tässä, niinkuin kaikessa muussakin, on »tyvestä
puuhun noustava», jos mieli koskaan mitään kunnollista aikaan
saada.
Kun aihe on määrätty, on ensi tehtävä sen tarkastaminen ja
rajoittaminen. On tarkoin punnittava mitä se sisältää, muuten saattaa
heti alussa syntyä väärinkäsitys aiheen tarkoituksen suhteen tai
eksymme pintapuolisuuteen ja ydin jää löytämättä. Monet aiheet sitä
paitsi sisältävät useampia suunnan mahdollisuuksia. Niistä on aina
yksi valittava ja sille asetettava varma, määrätty päämaali.

Ainesten kerääminen.

Ainesten laatu. Kun talonrakentaja on määrännyt rakennuksen


tarkoituksen ja laatinut suunnitelmansa, on hänen ryhtyminen
rakennusaineita hankkimaan. Samoin on kirjoittajan, aiheensa
valittua ja rajoitettua, ruvettava esityksensä aineksia kokoamaan.
Sitä nimitämme ainesten keräämiseksi.

Ensi tehtävä on selvitellä millaisia aineksia kysymyksessä oleva


esitys vaatii, sillä ainekset ovat aina etsittävät tehtävän laadun
mukaan. Kertomuksen aineksia kerätessä on huomioon otettava:
aika ja paikka, henkilöt, toiminnan alku, jatkuminen ja loppu, syyt ja
seuraukset. Elämäkerrassa taas: henkilö, syntyminen, aika, paikka,
vanhemmat, kasvatus, kehitys, toiminta, kuolema ja elämäntyön
tulos. Kuvauksessa tarkataan kuvattavan aiheen ori puolia: muotoa,
sisäisiä ominaisuuksia, kokonaisvaikutusta y.m., aina aiheen laadun
mukaan. Luonnekuvauksessa kiinnitetään huomio henkilön lahjoihin
ja luontaisiin taipumuksiin, kasvatuksen vaikutukseen ja sisäisten
ominaisuuksien kehitykseen, niiden ilmenemiseen toiminnassa ja
niiden vaikutukseen kuvattavan henkilön ympäristössä.
Tntkistetmassa selvitellään asian tai tapahtuman alkuaiheita, olojen
syitä, vaikutuksia ja seurauksia, niiden oikeellisuutta, väitteitten ja
päätelmäin pätevyyttä y.m.
Keräämistapa. Ajatellessamme ja selvitellessämme aihetta, johtuu
aineksia mieleemme, mutta muistimme ei jaksa niitä säilyttää, sitä
vähemmän kokonaisuudeksi järjestää. Siksi ne ovat kokoon
kerättävät ja muistiin merkittävät.

Keräys toimitetaan paperille. Siihen merkitsemme kaikki, mitä


asiasta tiedämme ja muistamme. Elleivät näin saadut ainekset riitä,
ryhdymme lisäaineksia hankkimaan. Niitä saamme kirjoista, joissa
muistamme käsiteltävästä aineesta jotakin puhutun. Onpa usein
tarpeen varta vasten hankkia asiaa koskevia teoksia. Toiseksi
kyselemme muiden asiantuntijain tietoja ja neuvoja. Varsin
hyödyllistä on tutustua aivan vastakkaisiin, jopa nurinkurisiinkin
mielipiteisiin. Ne vaan valaisevat asiaa sekä selventävät ja
varmentavat kirjoittajan omaa kantaa. Kolmanneksi on usein tarpeen
lyhtyä asiaa persoonallisesti tutkimaan ja tekemään havainnolta
päästäksemme täyteen selvyyteen hämäristä ja epäilyksen alaisista
kohdista. Niinpä täytyy kirjailijain joskus uhrata kokonaisia vuosia
jonkun aineen lähempään tutkimiseen, jopa tehdä sitä varten
varsinaisia tutkimusmatkoja.

Ainesten paperille merkitseminen toimitetaan lyhyesti, ainoasti


muutamalla sanalla, juuri siksi että asia siitä mieleen palautuu.
[Katso erästä myöhempää kappaletta »Ainekeräys- ja
jäsennysnäyte».] Niinkuin kivet, hirret, sammaleet y.m. vedetään
rakennuspaikalla eri läjiin, samoin erilaatuiset kirjoitusainekset
merkitään eri liuskoille tahi eri ryhmiin samalle paperille. Niin tehden
on niitä järjestämään ruvetessa helppo käsitellä.

Paperille merkitään kaikki asiaa koskevat seikat. Niinpä mieleen


johtuvat onnistuneet lauseet ja sattuvat käänteet, sillä ne eivät
tavallisesti kirjoittaessa enää uudelleen mieleen palaudu, mikä
tietenkin on esitykselle vahingoksi.

Ainesten kerääminen on erinomaisen tärkeä tehtävä, se kun on


koko esityksen perus. Siksi se on erityisellä huolella toimitettava,
saadaksemme esityksen niin asialliseksi ja sisällysrikkaaksi kuin
suinkin. On muistettava, että kun huolellinen ainesten keräys on
suoritettu, on suurin työ tehty.

Vanhaan aikaan käytettiin ainesten keräämisessä n.s. kriiaa. Se oli


8-osainen aineslista, jonka kuhunkin osaan etsittiin tarvittavat
ainekset. Nykyään ei enää kriiaa semmoisenaan käytetä, vaan
kirjoittaja kokoaa aineksia niin moneen ryhmään, kuin tarve
kulloinkin vaatii.

Ainesten tarkastaminen ja pohtiminen. Keräystyön päätyttyä ovat


ainekset ensin tarkastettavat, ennenkuin rupeamme niitä
käyttämään. On arvosteltava ainesten runsaus, s.o. kunkin aineslajin
riittäväisyys rakennuksen suuruuteen nähden. Jos huomaamme
varaston liian niukaksi, on keräystyötä jatkettava.

Mutta tarkastus ei saa supistua yksin ainesten runsauteen, vaan


sitäkin tähdellisemmin niiden laatuun. Vähäarvoiset ja asiaan
kuulumattomat ainekset ovat säälimättä hyljättävät, vaikkapa se
joskus saattaa tuntua vaikealtakin. Ellei niin tehdä, eksytään helposti
vähäpätöisyyksiin ja lasketaan ala-arvoista kelvollisen joukkoon,
joten koko laitos turmeltuu. Toiselta puolen voivat tällaiset ainekset
houkutella esittäjän »puhumaan pellon aidoista, kun pitäisi puhua
itse pellosta». Juuri tässä tulee kirjoittajan itsearvostelu
kysymykseen.
Joskus saattaa asiaan kuuluvia kelvollisiakin aineksia keräytyä
liiaksi. Niistä täytyy vähemmän tärkeät hyljätä ja käyttää vaan sen
verran, kuin asian valaiseminen todella vaatii. Sillä ainesten
liikarunsaus on omansa hämmentämään aiheen johtavaa lankaa ja
tekemään esityksestä rungottoman ainesläjän. — Poikkeuksena
tästä ovat tieteelliset tutkimukset, joihin usein kerätään kaikki
saatavana olevat ainekset ja joiden pienillä, hajanaisillakin tiedoilla
voi olla mitä suurin merkitys sekä aikalaisille että varsinkin
myöhemmille tutkijoille.

You might also like