Quickly start programming with Linux while learning the Raspberry Pi OS-the Linux distribution designed specifically for low-cost Raspberry Pis. This short guide reviews Linux commands, GUI, and shell scripting in a holistic manner by diving into both advanced and day-to-day tasks using the Raspberry Pi OS. You'll comfortably work with the Linux command prompt, and explore the RPi OS GUI and all its base applications. Then move into writing your own programs with shell-programming and using high-level languages such as C, C++, and Python 3. You'll also study hardware and GPIO programming. Use Python 3 for GPIO programming to drive LEDs and pushbuttons. Examples are written in Shell, C, C++, and Python 3. Graphical output is displayed in helpful screenshots that capture just what you'll see when working in this environment. All code examples are well tested on actual Raspberry Pi boards. After reading this book and following the examples, you'll be able to write programs for demonstration in your academic/industrial research work, business environment, or just your circle of friends for fun! You will: Navigate the core aspects of Linux and programming on a Linux platform Install Raspberry Pi OS on a Raspberry Pi Program in Shell, C, C++, and Python Redirect Io and work with the crontab.
An easy-to-follow guide that will help you build robots using with ease KEY FEATURES ● Simplified coverage on fundamentals of building a robot platform. ● Learn to program Raspberry Pi for interacting with hardware. ● Cutting-edge coverage on autonomous motion, mapping, and path planning algorithms for advanced robotics. DESCRIPTION Practical Robotics in C++ teaches the complete spectrum of Robotics, right from the setting up a computer for a robot controller to putting power to the wheel motors. The book brings you the workshop knowledge of the electronics, hardware, and software for building a mobile robot platform. You will learn how to use sensors to detect obstacles, how to train your robot to build itself a map and plan an obstacle-avoiding path, and how to structure your code for modularity and interchangeability with other robot projects. Throughout the book, you can experience the demonstrations of complete coding of robotics with the use of simple and clear C++ programming. In addition, you will explore how to leverage the Raspberry Pi GPIO hardware interface pins and existing libraries to make an incredibly capable machine on the most affordable computer platform ever. WHAT YOU WILL LEARN ● Write code for the motor drive controller. ● Build a Map from Lidar Data. ● Write and implement your own autonomous path-planning algorithm. ● Write code to send path waypoints to the motor drive controller autonomously. ● Get to know more about robot mapping and navigation. WHO THIS BOOK IS FOR This book is most suitable for C++ programmers who have keen interest in robotics and hardware programming. All you need is just a good understanding of C++ programming to get the most out of this book. TABLE OF CONTENTS 1. Choose and Set Up a Robot Computer 2. GPIO Hardware Interface Pins Overview and Use 3. The Robot Platform 4. Types of Robot Motors and Motor Control 5. Communication with Sensors and other Devices 6. Additional Helpful Hardware 7. Adding the Computer to Control your Robot 8. Robot Control Strategy 9. Coordinating the Parts 10. Maps for Robot Navigation 11. Robot Tracking and Localization 12. Autonomous Motion 13. Autonomous Path Planning 14. Wheel Encoders for Odometry 15. Ultrasonic Range Detectors 16. IMUs: Accelerometers, Gyroscopes, and Magnetometers 17. GPS and External Beacon Systems 18. LIDAR Devices and Data 19. Real Vision with Cameras 20. Sensor Fusion 21. Building and Programming an Autonomous Robot
A resource to help forensic investigators locate, analyze, and understand digital evidence found on modern Linux systems after a crime, security incident or cyber attack. Practical Linux Forensics dives into the technical details of analyzing postmortem forensic images of Linux systems which have been misused, abused, or the target of malicious attacks. It helps forensic investigators locate and analyze digital evidence found on Linux desktops, servers, and IoT devices. Throughout the book, you learn how to identify digital artifacts which may be of interest to an investigation, draw logical conclusions, and reconstruct past activity from incidents. You’ll learn how Linux works from a digital forensics and investigation perspective, and how to interpret evidence from Linux environments. The techniques shown are intended to be independent of the forensic analysis platforms and tools used. Learn how to: Extract evidence from storage devices and analyze partition tables, volume managers, popular Linux filesystems (Ext4, Btrfs, and Xfs), and encryption Investigate evidence from Linux logs, including traditional syslog, the systemd journal, kernel and audit logs, and logs from daemons and applications Reconstruct the Linux startup process, from boot loaders (UEFI and Grub) and kernel initialization, to systemd unit files and targets leading up to a graphical login Perform analysis of power, temperature, and the physical environment of a Linux machine, and find evidence of sleep, hibernation, shutdowns, reboots, and crashes Examine installed software, including distro installers, package formats, and package management systems from Debian, Fedora, SUSE, Arch, and other distros Perform analysis of time and Locale settings, internationalization including language and keyboard settings, and geolocation on a Linux system Reconstruct user login sessions (shell, X11 and Wayland), desktops (Gnome, KDE, and others) and analyze keyrings, wallets, trash cans, clipboards, thumbnails, recent files and other desktop artifacts Analyze network configuration, including interfaces, addresses, network managers, DNS, wireless artifacts (Wi-Fi, Bluetooth, WWAN), VPNs (including WireGuard), firewalls, and proxy settings Identify traces of attached peripheral devices (PCI, USB, Thunderbolt, Bluetooth) including external storage, cameras, and mobiles, and reconstruct printing and scanning activity
This book presents a systematic approach to the implementation of Internet of Things (IoT) devices achieving visual inference through deep neural networks. Practical aspects are covered, with a focus on providing guidelines to optimally select hardware and software components as well as network architectures according to prescribed application requirements. The monograph includes a remarkable set of experimental results and functional procedures supporting the theoretical concepts and methodologies introduced. A case study on animal recognition based on smart camera traps is also presented and thoroughly analyzed. In this case study, different system alternatives are explored and a particular realization is completely developed. Illustrations, numerous plots from simulations and experiments, and supporting information in the form of charts and tables make Visual Inference and IoT Systems: A Practical Approach a clear and detailed guide to the topic. It will be of interest to researchers, industrial practitioners, and graduate students in the fields of computer vision and IoT.
Explore how to develop and implement wireless server networks (WSN) using Contiki-NG, branded as the operating system for the IoT. The book explains Contiki-NG’s advantages in sensing, communication, and energy optimization and enables you to begin solving problems in automation with WSN. Practical Contiki-NG is a guide to getting started with Contiki-NG programming featuring projects that demonstrate a variety of applications. This book takes a practical and content-driven approach to the latest technologies, including Raspberry Pi, IoT and cloud servers. Readers will go through step-by-step guides and sample scenarios such as sensing, actuating, connectivity, building middleware, and utilizing IoT and cloud-based technologies. If you're looking to go from zero to hero in using Contiki-NG to build Wireless Sensor Network (WSN) applications then this is the book for you. What You’ll Learn Prepare and set up Contiki-NG development Review the basics of the Contiki-NG platform to build Wireless Sensor Networks (WSN) Develop your own Contiki-NG program Perform sensing and actuating on the Contiki-NG platform Implement a middleware for Contiki-NG motes Build a simple IoT program using the Contiki-NG environment Who This Book Is For Developers, students, researchers and anyone who has an interest in Wireless Sensor Network (WSN).
Practical OpenCV is a hands-on project book that shows you how to get the best results from OpenCV, the open-source computer vision library. Computer vision is key to technologies like object recognition, shape detection, and depth estimation. OpenCV is an open-source library with over 2500 algorithms that you can use to do all of these, as well as track moving objects, extract 3D models, and overlay augmented reality. It's used by major companies like Google (in its autonomous car), Intel, and Sony; and it is the backbone of the Robot Operating System’s computer vision capability. In short, if you're working with computer vision at all, you need to know OpenCV. With Practical OpenCV, you'll be able to: Get OpenCV up and running on Windows or Linux. Use OpenCV to control the camera board and run vision algorithms on Raspberry Pi. Understand what goes on behind the scenes in computer vision applications like object detection, image stitching, filtering, stereo vision, and more. Code complex computer vision projects for your class/hobby/robot/job, many of which can execute in real time on off-the-shelf processors. Combine different modules that you develop to create your own interactive computer vision app. What you’ll learn The ins and outs of OpenCV programming on Windows and Linux Transforming and filtering images Detecting corners, edges, lines, and circles in images and video Detecting pre-trained objects in images and video Making panoramas by stitching images together Getting depth information by using stereo cameras Basic machine learning techniques BONUS: Learn how to run OpenCV on Raspberry Pi Who this book is for This book is for programmers and makers with little or no previous exposure to computer vision. Some proficiency with C++ is required. Table of ContentsPart 1: Getting comfortable Chapter 1: Introduction to Computer Vision and OpenCV Chapter 2: Setting up OpenCV on your computer Chapter 3: CV Bling – OpenCV inbuilt demos Chapter 4: Basic operations on images and GUI windows Part 2: Advanced computer vision problems and coding them in OpenCV Chapter 5: Image filtering Chapter 6: Shapes in images Chapter 7: Image segmentation and histograms Chapter 8: Basic machine learning and keypoint-based object detection Chapter 9: Affine and Perspective transformations and their applications to image panoramas Chapter 10: 3D geometry and stereo vision Chapter 11: Embedded computer vision: Running OpenCV programs on the Raspberry Pi
A practical guide for developers, development teams, and managers to successfully implement remote pair programming techniques and styles that better fit their organization's environment Key FeaturesImplement remote pair programming best practices in your organization to increase productivity in software development teamsOvercome the challenges in communication while working with distributed teams across the globeExplore remote pair programming tools and learn smart ways to use them efficientlyBook Description Remote pair programming takes pair programming practices to the next level by allowing you and your team members to work effectively in distributed teams. This helps ensure that you continuously improve code quality, share equal ownership of the code, facilitate knowledge sharing, and reduce bugs in your code. If you want to adopt remote pair programming within your development team, this book is for you. Practical Remote Pair Programming takes you through various techniques and best practices for working with the wide variety of tools available for remote pair programming. You'll understand the significance of pair programming and how it can help improve communication within your team. As you advance, you’ll get to grips with different remote pair programming strategies and find out how to choose the most suitable style for your team and organization. The book will take you through the process of setting up video and audio tools, screen sharing tools, and the integrated development environment (IDE) for your remote pair programming setup. You'll also be able to enhance your remote pair programming experience with source control and remote access tools. By the end of this book, you'll have the confidence to drive the change of embracing remote pair programming in your organization and guide your peers to improve productivity while working remotely. What you will learnDevelop a structured organizational approach to implementing pair programming and using it effectivelyUnderstand how pair programming fosters better communication inside and outside the teamOrganize remote pair programming and choose the right style for your organizationSet up screen sharing, IDE, source control rules, audio, and video for your remote pair programming setupUse various pair programming techniques and styles in the context of a remote environmentEnhance your remote pair programming experience with source control and remote access toolsWho this book is for This book is for any developer who wants to understand the different practical aspects involved in remote pair programming and adopt them in their existing development teams. If you’re a team leader or technical manager, this book will serve as a manual for implementing remote pair programming covering the best resources for you to manage communication and collaboration using pair programming with your team members working remotely in distributed teams.
The essential preview guide to getting started with Raspberry Pi ® computing and programming Originally conceived of as a fun, easy way for kids (and curious adults) to learn computer programming, the Raspberry Pi quickly evolved into a remarkably robust, credit-card-size computer that can be used for everything from playing HD videos and hacking around with hardware to learning to program! Co-authored by one of the creators of the Raspberry Pi, this special preview eBook fills you in on everything you need to know to get up and running on your Raspberry Pi in no time, including how to: • Connect to a keyboard, mouse, monitor and other peripherals • Install software • Master basic Linux system administration • Configure your Raspberry Pi • Connect to wired or wireless networks • Diagnose and troubleshoot common problems • Use the GPIO port to flash an LED or read a button Meet the Raspberry Pi provides a sneak peek preview of how to make the most out of the world’s first truly compact computer.
Learn practical uses for some of the hottest tech applications trending among technology professionals We are living in an era of digital revolution. On the horizon, many emerging digital technologies are being developed at a breathtaking speed. Whether we like it or not, whether we are ready or not, digital technologies are going to penetrate more and more, deeper and deeper, into every aspect of our lives. This is going to fundamentally change how we live, how we work, and how we socialize. Java, as a modern high-level programming language, is an excellent tool for helping us to learn these digital technologies, as well as to develop digital applications, such as IoT, AI, Cybersecurity, Blockchain and more. Practical Java Programming uses Java as a tool to help you learn these new digital technologies and to be better prepared for the future changes. Gives you a brief overview for getting started with Java Programming Dives into how you can apply your new knowledge to some of the biggest trending applications today Helps you understand how to program Java to interact with operating systems, networking, and mobile applications Shows you how Java can be used in trending tech applications such as IoT (Internet of Things), AI (Artificial Intelligence), Cybersecurity, and Blockchain Get ready to find out firsthand how Java can be used for connected home devices, healthcare, the cloud, and all the hottest tech applications.