Course on Internet of Things

Exercises Session 1:

Introductory remarks:

The scripts we are going to develop during these exercises do not depend on any system issues: We do not use command line arguments not available in MicroPython nor do we use any hardware specific features which are not available on a PC. The exercises can therefore be developed and run on the ESP32 but also on any standard PC with Python3 installed.

Exercise 1:

Connect to your ESP32 with minicom or thonny.

Using REPL:

  • print “Hello World!”

  • read in a text using input() and print it

  • Calculate

    calculations.png

  • Calculate sin(30°)
    If you see errors, how do you correct them? Are the results correct?

Exercise 2:

Write a script that assigns the values 5 and 3 to the variables a and b respectively

Print the results of 4 basic arithmetic operations:

  • a+b

  • a-b

  • a*b

  • a/b

Which result do you observe for division? Can you correct?

Improve this program asking the user to enter 2 real numbers (floats) separated by a space. This is how it should look like:

calcOk.png

If this happens:

conversionError.png

when the user mistypes and enters something that is not an integer, can you capture the error and simply ask the user to repeat his input, until you get 2 correct integer numbers?

Bonus points: Writing a parser for user input is rather easy if the numbers and operator are separated by spaces (have a look at the split method of strings). It is quite a bit more tricky if you allow entering calculations without spaces between the operands and the operator. Can you write a parser accomplishing this?

Try your parser on this input:

5.3+4.7 ok
5.3++4.7 not ok
5..3 + 4.7 not ok
.3+.7 ok
5.3+4b7 not ok

Exercise 3:

Like in exercise2, start with 2 number a,b with values 5 and 3. In your program check which of the 2 numbers is bigger and print the result. Then ask the user for 2 integer numbers. Make sure he enters 2 correct numbers and capture possible errors. This is a typical output:

conditions.png

-- Uli Raich - 2020-05-03

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng calcOk.png r1 manage 21.7 K 2020-05-03 - 19:52 UliRaich  
PNGpng conditions.png r1 manage 28.8 K 2020-05-03 - 20:25 UliRaich  
PNGpng conversionError.png r1 manage 19.3 K 2020-05-03 - 19:42 UliRaich  
Edit | Attach | Watch | Print version | History: r17 | r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2020-05-03 - UliRaich
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback