![]() When you use it with the Arduino breakout board then there are logic level converters that save you from having to worry about this. It also lets you access features that mraa doesn't make available. Sometimes you need this because you are working in a language for which mraa isn't available. There is a Linux-based approach to working with GPIO lines and serial buses that is worth knowing about because it provides an alternative to using the mraa library. Beyond mraa - Controlling the features mraa doesn't.To demonstrate how its done let's add eight channels of 12-bit AtoD using the MCP3008. The SPI bus can be difficult to make work at first, but once you know what to look for about how the slave claims to work it gets easier. Even so, if you only want to work with one specific device it is usually easy to find a configuration that works - as long as you understand what the possibilities are. The SPI bus can be something of a problem because it doesn't have a well defined standard that every device conforms to. However with a little careful planning you can and you can do it from user rather than kernel space. The Edison doesn't have built in support for the Maxim 1-Wire bus and this means you can't use the very popular DS18B20 temperature sensor. It is an exercise in interfacing two logic families and implementing a protocol directly in C. In this chapter we make use of all of the ideas introduced in earlier chapters to create a raw interface with the low cost DHT11/22 temperature and humidity sensor. Using the DHT11/22 Temperature Humidity Sensor at 1.8V.How to convert a 1.8V input or output to work with 5V or 3.3V including how to deal with bidirectional pull-up buses. I2C is a simple communications bus that allows you to connect any of a very large range of sensors.Īfter looking at the theory of using I2C here is a complete case study using the SparkFun HTU21D hardware and software. PWM means you can dim an LED or position a servo and all using mraa. Using the PWM mode of the GPIO lines is often the best way of solving control problems. Sophisticated GPIO - Pulse Width Modulation.In this chapter we look the realtime facilities in every version of Linux. ![]() You need to be aware how running your programs under a non-realtime operating system like Yocto Linux effects timings and how accurately you can create pulse trains and react to the outside world. We look at how to generate fast accurate pulses of a given width and how to measure pulse widths. However getting things right can be tricky. Using this it is possible to generate pulses as short at 0.25 microsecond and read pulse widths of 5 microseconds. There is a faster way to work with GPIO lines - memory mapped I/O. You can use polling or the Edison interrupt system which might not work exactly as you would expect. Input is also easy but using it can be more difficult. Output is easy but you do need to be aware of how long everything takes. Using the mraa library is the direct way to work with the GPIO lines and you have to master it. It is worth the effort and in this chapter we show you how to set up the IDE and get coding. It is fast, almost as easy as the other languages and gives you direct access to everything. You can program the Edison in Python, JavaScript or C/C+ but there are big advantages in choosing C. This chapter explains how to set up the Edison for both configurations. When you are prototyping with the Edison you are going to need to use one of the two main breakout boards - the Arduino or the mini. ![]() If you have ever wondered if you need an Edison or an Arduino or even a Raspberry Pi then this is the place to start. In this chapter we consider the Edison's pros and cons and get an overview of its structure and the ways in which you can make use of it.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |