chapter 1 - introducing the raspberry pi 1.1 the raspberry pi models 1.2 the anatomy of the raspberry pi 1.3 setting up your raspberry pi 1.3.1 power supply 1.3.2 monitor 1.3.3 tv 1.3.4 usb keyboard and mouse 1.3.5 powered usb hub 1.3.6 sd card 1.3.7 speakers 1.3.8 case 1.3.9 usb flash memory drive 1.3.10 usb flash harddisk 1.3.11 usb wi-fiadapter 1.4 connecting everything together 1.5 downloading and installing the operating system 1.5.1 downloading the operating system 1.5.2 installing the operating system onto the sd card 1.6 logging in to the raspberry pi 1.7 summarychapter 2 - connecting the raspberry pi to wired network. 2.1 connecting to a wired network 2.1.1 unable to connect to a wired network 2.2 connecting to your raspberry pi remotely 2.2.1 the ssh client 2.3 summarychapter 3 - using the desktop 3.1 installing the vnc software 3.2 the desktop environment 3.3 the task bar 3.4 the start menu 3.5 using external usb flash memory drive 3.6 using wi-fi with raspberry pi 3.7 summarychapter 4 - using the linux command line 4.1 the command prompt 4.2 useful linux commands 4.2.1 the directory structure 4.2.2 command examples 4.3 screen capture 4.4 foreground and background processing 4.5 task scheduling 4.5.1 task scheduling management 4.6 linux script files 4.6.1 user input to script files 4.6.2 reading text from the keyboard 4.6.3 conditions in script files 4.6.4 loops in script files 4.6.5 multiple decisions - using the case statement 4.6.6 script functions 4.7 running a program or script automatically on system startup.. 4.7.1 using/etc/rc.local 4.7.2 using crontab 4.7.3 using/etc/init.d 4.8 resource monitoring on raspberry pi 4.9 adding users 4.10 removing users 4.11 network printing 4.12 command aliases 4.13 sd card backup 4.14 shutting down 4.15 summarychapter 5 - python programming 5.1 starting python 5.2 variable names 5.3 reserved words 5.4 comments 5.5 indentation 5.6 line continuation 5.7 blank lines 5.8 more than one statement on a line 5.9 python data types 5.9.1 numeric variables 5.9.2 string variables 5.9.3 list variables 5.9.4 tuple variables 5.9.5 dictionary variables 5.10 python operators 5.10.1 arithmetic operators 5.10.2 comparison operators 5.10.3 logical operators 5.10.4 assignment operators 5.10.5 bitwise operators 5.11 control of flow 5.11.1 if, if.else, and elif 5.11.2 for statement 5.11.3 while statement 5.11.4 continue statement 5.11.5 break statement 5.12 number type conversion 5.13 trigonometric functions 5.14 mathematical functions 5.15 integer random number generation 5.16 using non-printable ascii characters 5.17 print statement 5.18 string manipulation 5.19 string functions 5.20 list functions 5.21 dictionary functions 5.22 date &time functions 5.23 user defined functions 5.24 keyboard input 5.25 files 5.26 exceptions 5.27 object oriented programming 5.28 example programs 5.28.1 using the editor to create programs 5.29 argument list 5.30 summarychapter 6 - python graphics user interface (gui) programming 6.1 using the label widget 6.2 adding a button widget 6.3 the entry widget 6.4 the text widget 6.5 prompted input 6.6 placing widgets 6.6.1 default packing 6.6.2 packing to a side 6.7 using the grid() method 6.8 the messagebox widget 6.9 the spinbox widget 6.10 the scale widget 6.11 the listbox widget 6.12 the message widget 6.13 the radiobutton widget 6.14 the checkbutton widget 6.15 the menubutton widget 6.16 the canvas widget 6.17 examples 6.18 summarychapter 7 - python network programming 7.1 sending e-mail 7.2 web server program 7.3 socket programming 7.4 summarychapter 8 - python systems programming 8.1 the sys module 8.2 the os module 8.2.1 running shell commands 8.3 multitasking 8.3.1 process forks 8.3.2 process threads 8.3.3 process spawn calls 8.3.4 multiprocessing process calls 8.3.5 interprocess synchronisation 8.3.6 inter-process communication 8.4 summarychapter 9 - raspberry pi hardware interfacing 9.1 gpio pin definitions 9.2 raspberry pi hardware development boards and hardware tools 9.2.1 pi cobbler 9.2.2 piplate 9.2.3 t-cobbler 9.2.4 piface 9.2.5 raspicomm - piggyback extension board 9.2.6 piborg - triborg - gpio triple header extender 9.2.7 gertboard 9.2.8 berryclip - led and buzzer 9.2.9 mypi - push your pi -8 led & 8 button breakout board 9.2.10 raspberry pi electronic starter kit 9.2.11 starter kit-a for raspberry pi 9.2.12 camera board 9.2.13 raspi robot board 9.2.14 lcd with keypad 9.2.15 raspberry pi expansion board 9.2.16 raspberry pi kano starter kit 9.2.17 rtc pi 9.2.18 adc pi 9.3 summarychapter 10 - raspberry pi gpio software 10.1 installing the rpigpio library 10.2 rpigpio library functions 10.2.1 pin numbering 10.2.2 channel(i/o pin) configuration 10.3 wiringpi library 10.4 program development 10.4.1 using the program description language and flow charts 10.4.2 calling subprograms 10.4.3 subprogram structure 10.5 examples 10.6 representing for loops in flow charts 10.7 summarychapter 11 - raspberry pi hardware projects 11.1 project 1 - flashing an led 11.2 project 2 - independently flashing 3 leds 11.3 project 3 - independently flashing 3 leds with event flags 11.4 project 4 - flashing led with push-button switch - multitasking . 11.5 project 5 - led with graphical user input 11.6 project 6 - web server led control 11.7 project 7 - web server usingflask 11.8 project 8 - gui based light dimmer 11.9 project 9 - using 4x4 keypad 11.10 project 10 - calculator using 4x4 keypad 11.11 project 11 - displaying the temperature 11.12 project 12 - sending the temperature to a pc over the network 11.13 project 13 - temperature and humidity display 11.14 project 14 - using dac to change led brightness 11.15 project 15 - the piface i/o board 11.16 project 16 - piface dc motor controller 11.17 project 17 - piface stepper motor controllerappendix a pdl and program listings a.1 program listing - solution 5.3 a.2 pdl listing - project 2 a.3 program listing- project 2 a.4 program listing - project 2 - modified listing a.5 pdl listing - project 3 a.6 program listing- project 3 a.7 program listing - project 4 a.8 program listing - project 4 - modified a.9 pdl listing - project 5 a.10 program list- project 5 a.11 progam listing - project 9 a.12 pdl listing - project 10 a.13 program listing- project 10 a.14 program listing - project 11 a.15 program listing - project 11 - modified a.16 pdl listing - project 12 a.17 udp server program - project 12 a.18 pdl listing - project 13 a.19 program listing - project 13 a.20 program listing - project 14 a.21 program listing - project 15 - piface-i.py a.22 program listing - project 15 - piface-2.py a.23 program listing - project 15 - piface-3.py a.24 program listing - project 16index