Who Should Use the RasPi
Anybody who wants to transform an engineering concept into a real interactive electronics project, prototype, or work of art should consider using the RasPi. That said, integrating high-level software and low-level electronics is not an easy
task. However, the diffi culty involved in an implementation depends on the level of sophistication that the project demands. The RasPi community is working hard to ensure that the platform is accessible by everyone who is interested in integrating it into their projects, whether they are students, makers, artists, or hobbyists. For example, the availability of the Scratch visual programming tool on the RasPi (tiny.cc/erpi101) is an excellent way to engage children with both computer programming and the RasPi.
For more advanced users with electronics or computing knowledge, the RasPi platform enables additional development and customization to meet specific project needs. Again, such customization is not trivial: You may be an electronics expert, but high-level software programming and/or the Linux operating system might cause you difficulty. Or you may be a programming guru but you have never wired an LED! This blog aims to cater to all types of users who are interested in interfacing with the RasPi, providing each type of reader with enough Linux, electronics, and software exposure to ensure that you can be productive, regardless of your previous experience level.
When to Use the RasPi
The RasPi is perfectly placed for the integration of high-level software and low-level electronics in any type of project. Whether you are planning to build an automated home management system, robot, multimedia display, Internet of Things (IoT) application, vending machine, or Internet-connected work of interactive art, the RasPi has the processing power to do whatever you can imagine of an embedded device.
The major advantage the RasPi and other embedded Linux devices have over more traditional embedded systems, such as the Arduino, PIC, and AVR microcontrollers, is apparent when you leverage the Linux OS for your projects. For example, if you build a home automation system using the RasPi and you then decide that you want to make certain information available on the Internet, you can simply install the Nginx web server. You could then use server-side scripting or your favorite programming language to interface with your home automation system to capture and share information. Alternatively, your project might require secure remote shell access. In that case, you could install a Secure Shell (SSH) server simply by using the Linux command sudo apt install sshd. This could potentially save you weeks of development work. In addition, you have the comfort of knowing that the same software is running securely on millions of machines around the world.
Linux also provides you with device driver support for many USB peripherals and adapters, making it possible for you to connect cameras, Wi-Fi adapters, and other low-cost consumer peripherals directly to your platform without the need for complex/expensive software driver development.
The RasPi is also an excellent device for playing high-defi nition video. The RasPi has this capability because its Broadcom BCM2835/6/7 processor was designed for multimedia applications, and it has a hardware implementation of H.264/MPG-4 and MPG-2/VC-1 (via additional license) decoders and encoders. The RasPi has found popular use for multimedia applications such as running the Kodi home media center2 (www.kodi.tv) for playing full-HD video content.
When to Not Use the RasPi
The Linux OS was not designed for real-time or predictable processing. This would be problematic if, for example, you want to sample a sensor precisely every one millionth of a second. If the precise time arises to take a sample and the kernel is busy with a different task, it cannot be easily interrupted. Therefore, in its default state, the RasPi is not an ideal platform for real-time systems applications. Real-time versions of Linux are available, but they are currently targeted at very experienced Linux developers, and there are limits to their real-time capabilities. However, the RasPi can be combined with real-time service processors, and the RasPi can be used as the “central intelligence.” You can interconnect such real-time microcontrollers to the RasPi via electrical buses (e.g., I2C, UART) and Ethernet, and have the RasPi act as the central processor for a distributed control system.
The RasPi platform is not ideal for project developments that are likely to be commercialized. The Raspberry Pi platform largely utilizes open source software (there are some closed-source blobs used with the GPU), but it is not open source hardware. Schematics are available for RasPi boards (e.g., tiny.cc/erpi102),but there is a lack of documentation on the hardware used. In addition, the Broadcom bootloader license3 explicitly states that its redistribution in binary form is only permitted if it will “… only be used for the purposes of developing for, running or using a Raspberry Pi device.” It is unlikely that such a license would transfer to a product of your own design.
The RasPi platform is not ideal for project developments that are likely to be commercialized. The Raspberry Pi platform largely utilizes open source software (there are some closed-source blobs used with the GPU), but it is not open source hardware. Schematics are available for RasPi boards (e.g., tiny.cc/erpi102),but there is a lack of documentation on the hardware used. In addition, the Broadcom bootloader license3 explicitly states that its redistribution in binary form is only permitted if it will “… only be used for the purposes of developing for, running or using a Raspberry Pi device.” It is unlikely that such a license would transfer to a product of your own design.
Comments
Post a Comment