Teaching Physical Computing with Raspberry Pi and Python

بواسطة: FutureLearn

Overview

Learn the benefits of using physical computing with your students.

On this course from the Raspberry Pi Foundation, you will be introduced to the world of physical computing. You will use input devices to capture data, process that data with the Python programming language, and then use output devices to get information back out from your computer.

Along the way, you will learn how to use the principles of sequence, selection, and iteration in your physical computing programs. You will also learn some foundational electronics to help you create the circuits that you will use.

In the final week, you will create a physical computing project of your own.

This course is designed for teachers who deliver lessons at GCSE level or equivalent, and for beginner makers looking to develop their knowledge of electronics and programming.

During the course, you will use Python 3.

You will need:

  • A Raspberry Pi computer and peripherals:
    • A keyboard
    • A mouse
    • A monitor
  • A selection of components to use in your projects:
    • A breadboard
    • 6 male-to-female jumper cables
    • 3 LEDs (of different colours if possible)
    • 3 330-ohm resistors
    • A buzzer
    • A button
    • A PIR sensor
  • Craft supplies:
    • Cardboard
    • Pencils
    • Glue, tape, or another type of adhesive
    • Scissors or a craft knife

Syllabus

  • Physical computing and outputs
    • Welcome to the course
    • Get to know your tools
    • The first output: LEDs
    • Output devices
  • Inputs
    • Welcome to week two
    • Push the button
    • Sensors
    • More complex inputs
  • Physical computing projects
    • Welcome to week 3
    • Project based learning
    • Case study project
    • Prototyping and Manufacturing
    • Share your projects
Teaching Physical Computing with Raspberry Pi and Python
الذهاب الي الدورة

Teaching Physical Computing with Raspberry Pi and Python

بواسطة: FutureLearn

  • FutureLearn
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • أيام محددة
  • beginner
  • N/A
8.1.2PHP Version300msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (189ms)
    • Application (110ms)
    • 1 x Booting (63.11%)
      189.06ms
      1 x Application (36.64%)
      109.77ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed7.15ms
      • select * from `courses` where `slug_ar` = 'teaching-physical-computing-with-raspberry-pi-and-python' limit 1
        5.68ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. teaching-physical-computing-with-raspberry-pi-and-python
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-03 17:56:49' where `id` = 2699
        660μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-03 17:56:49
        • 1. 2699
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (18)
        180μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (98) and `institutions`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (4) and `providers`.`deleted_at` is null
        150μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2690 limit 1
        180μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2690
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        VkS9BjdwTTrTAs978DoiGZdn5Ac2Slyl7vkQAmY9
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/teachi...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/teaching-physical-computing-with-raspberry-pi-and-python
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.189.193.114" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "18.189.193.114" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "94a111bb581710dc-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.189.193.114" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "18.189.193.114" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94a111bb581710dc-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "31786" "REMOTE_ADDR" => "172.71.1.135" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/teaching-physical-computing-with-raspberry-pi-and-python" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1748973408.7971 "REQUEST_TIME" => 1748973408 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Tue, 03 Jun 2025 17:56:49 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inh6Z3VIT3hPcmxuczI1YjlPeUU4ZHc9PSIsInZhbHVlIjoiM00xcUJaMWV2TG8veWdTeGdYaFdGRm5Ydnd2VnhIOGlYWCtyZjBnbVVnM1FGcVBxdllsU2IvMWN3UXJqWTZPbzZzcDBVV252ZldlL25YUmJDTE56L2RmeDFPeXk4MkpSVTByQ2FGVzlxQ2EvR3hjcWhhYXFkTXRUdndRK2Zac2siLCJtYWMiOiJhNTJiYTllODc5YmExNDA0ZWZmODY5ZTJjOGEwYjg3ZDRmYmFlYTllNjE5OTM2YThjZTAxMTkxNWY5NjA2MzNiIiwidGFnIjoiIn0%3D; expires=Tue, 03 Jun 2025 19:56:49 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6Inh6Z3VIT3hPcmxuczI1YjlPeUU4ZHc9PSIsInZhbHVlIjoiM00xcUJaMWV2TG8veWdTeGdYaFdGRm5Ydnd2VnhIOGlYWCtyZjBnbVVnM1FGcVBxdllsU2IvMWN3UXJqWTZPbzZzcDBVV" 1 => "laravel_session=eyJpdiI6Im15L3JwNHBUS3FpNUhoTi9YMm84blE9PSIsInZhbHVlIjoiNlFsK0tTYVNhZ1ZPTEtpVHZRd3FnNkt1ZlNEbDQ1YythaVNqbERXTi9kNERPQzZ0c3ZWajhibzlWczQ3OEZpUjdhQ0t1blg0MkJsbS9RbHhtekdpbmZmNTlodlp5ekIxZnBGT09PeGtvNnRpN3JoZFlGcEZ4bno2a0NVYi85dTYiLCJtYWMiOiI4MDJhMmE3Mjk3M2UzNGY0OTg1ZGQzOTIzYzA4MDZkNWFhMmUzNmJmMTA5ZDIzMmUzZmIyMDU2ZmMzODc0NWI2IiwidGFnIjoiIn0%3D; expires=Tue, 03 Jun 2025 19:56:49 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6Im15L3JwNHBUS3FpNUhoTi9YMm84blE9PSIsInZhbHVlIjoiNlFsK0tTYVNhZ1ZPTEtpVHZRd3FnNkt1ZlNEbDQ1YythaVNqbERXTi9kNERPQzZ0c3ZWajhibzlWczQ3OEZpUjdh" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6Inh6Z3VIT3hPcmxuczI1YjlPeUU4ZHc9PSIsInZhbHVlIjoiM00xcUJaMWV2TG8veWdTeGdYaFdGRm5Ydnd2VnhIOGlYWCtyZjBnbVVnM1FGcVBxdllsU2IvMWN3UXJqWTZPbzZzcDBVV252ZldlL25YUmJDTE56L2RmeDFPeXk4MkpSVTByQ2FGVzlxQ2EvR3hjcWhhYXFkTXRUdndRK2Zac2siLCJtYWMiOiJhNTJiYTllODc5YmExNDA0ZWZmODY5ZTJjOGEwYjg3ZDRmYmFlYTllNjE5OTM2YThjZTAxMTkxNWY5NjA2MzNiIiwidGFnIjoiIn0%3D; expires=Tue, 03-Jun-2025 19:56:49 GMT; path=/XSRF-TOKEN=eyJpdiI6Inh6Z3VIT3hPcmxuczI1YjlPeUU4ZHc9PSIsInZhbHVlIjoiM00xcUJaMWV2TG8veWdTeGdYaFdGRm5Ydnd2VnhIOGlYWCtyZjBnbVVnM1FGcVBxdllsU2IvMWN3UXJqWTZPbzZzcDBVV" 1 => "laravel_session=eyJpdiI6Im15L3JwNHBUS3FpNUhoTi9YMm84blE9PSIsInZhbHVlIjoiNlFsK0tTYVNhZ1ZPTEtpVHZRd3FnNkt1ZlNEbDQ1YythaVNqbERXTi9kNERPQzZ0c3ZWajhibzlWczQ3OEZpUjdhQ0t1blg0MkJsbS9RbHhtekdpbmZmNTlodlp5ekIxZnBGT09PeGtvNnRpN3JoZFlGcEZ4bno2a0NVYi85dTYiLCJtYWMiOiI4MDJhMmE3Mjk3M2UzNGY0OTg1ZGQzOTIzYzA4MDZkNWFhMmUzNmJmMTA5ZDIzMmUzZmIyMDU2ZmMzODc0NWI2IiwidGFnIjoiIn0%3D; expires=Tue, 03-Jun-2025 19:56:49 GMT; path=/; httponlylaravel_session=eyJpdiI6Im15L3JwNHBUS3FpNUhoTi9YMm84blE9PSIsInZhbHVlIjoiNlFsK0tTYVNhZ1ZPTEtpVHZRd3FnNkt1ZlNEbDQ1YythaVNqbERXTi9kNERPQzZ0c3ZWajhibzlWczQ3OEZpUjdh" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "VkS9BjdwTTrTAs978DoiGZdn5Ac2Slyl7vkQAmY9" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/teaching-physical-computing-with-raspberry-pi-and-python" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]