In these examples, you will use PictoBlox Desktop, using the option ‘Blocks’. Before you start with this example, you may already have completed the previous steps: https://junioriot.nl/juniorblocks/ and https://junioriot.nl/blocks-web-arduino-nano/
The materials set you can find here:
- 20 Arduino worksets for your classroom: https://shop.junioriot.nl/shop/ecom-256-arduino-nano-werkset-20-944
- one single Arduino Nano: https://shop.junioriot.nl/shop/arduino-nano-met-usb-c-kabel-1101
We have created this workshop as a fun and exciting introduction into programming with hardware. The workshop invites schools and teachers to embrace this approach, and create additional content to match their own projects and interest areas.
Blocks Desktop
PictoBlox Blocks Desktop allows more options compared to Junior Blocks and Blocks Web. This option allows you to create more interesting programs. For these examples we will use the Arduino Nano.
Installing Blocks Desktop
We will use Blocks Desktop to program external boards, such as the Junior IOT Arduino Nano.
- In your internet browser, open: https://thestempedia.com/product/pictoblox/download-pictoblox/
- Select the 64 bit installer for the newest available version (feel free to select the newest beta version)
- Follow the instructions as displayed with the installer
Tip: Blocks Desktops will work very well with both newer and older laptops.
Open PictoBlocks Desktop
- On your desktop you’ll see the PictoBlocks icon. Click the icon to open PictoBlocks.
The PictoBlocks opening screen displays these options:
-
- Block Coding / Junior Blocks
- Block Coding / Bocks
- Python Coding / Py Editor
- Python Coding / Py Notebook
- Coming Soon / Machine Learning Environment
- Coming Soon / 3D and XR Studio
You do not need to create an account to use PictoBlocks. However, creating an account may help you to save some items which wou will create. Once in a while your screen will ask you to create an account, which is safe to ignore.
Blocks
Using the Blocks option, we will be able to program the various examples which are displayed on this page.
- Click ‘Blocks’
This brings you to the Blocks environment in PictoBlox Desktop.
You may have noticed that you can change the language at the right top of the screen. Feel free to change this to your preference! The examples on this page are displayed in English.
* The Blocks environment in PictoBlox Desktop displays the following elements:
-
- * Stage. This is where the your programmed tasks will execute. Your sprite figure is waiting for you!
- Sprite. This figurine will perform your programmed tasks. In this example it is a bear named ‘Tobi’.
- Blocks. The puzzle pieces ware the steps to build your program from.
- Scripting Area. This is where you put the block together.
- Pallettes. The colored groups contain different types of blocks.
- Events. The yellow pallette gives you the ‘events’ blocks. These are things that can happen. You will need an event to start the attached part of the program.*
Blocks Desktop looks a lot like Blocks Web
The Desktop and the Web version of Blocks have the exact same look and feel. The Desktop version will usually be easier to connect to, and this version has some extra options. Even in the screenshots of our examples you will barely notice a difference – we may even mix the screenshots around.
If you have completed some exercises in the Web version, you can skip these in the description below.
Blocks exercise, sliding growling bear
- Open PictoBlocks, or click in the left top on ‘File’ and then on ‘New’ to start a new empty exercise.
- Click ‘Blocks’
- Try to build the following program.
This program contains the following parts:
-
- when this sprite clicked
- start sound [ Grunt ]
- Glide ( 1 ) secs to [ Random position ]
Can you read in the program what the bear is expected to do? Does the bear make sounds? Can you make the bear move?
Extra: Explore Blocks examples
If you happen to have some extra time, you can have some extra fun in discovering how the example programs are created. Usually these examples are much easier than you would expect!
- Open PictoBlocks, or click at the left top on ‘File’ and ‘New’ to start a new exercise.
- Click ‘Blocks’
- In the menu, select File / Examples
You can select from different examples. We like the yellow maze, so this is what we want to explore.
Extra: Blocks example, the yellow Maze
- Open the example of the yellow Maze
- Play the game
- Explore the code
Can you explain what each part of the program is trying to do?
- Change the code to make a sound with each move.
* Blocks Desktop with the yellow/white/pink Arduino Nano
* We can also program various hardware by programming with blocks. At Junior IOT we like to use the Arduino Nano for this. The Arduino Nano is a friendly and small programming board, which we have available in various colors: Yellow, white, pink and red. The Arduino Nano fits nicely into the breadboard to connect in a very easy way with leds. servos and other equipment. These little devices can be programmed perfectly with PictoBlox!
-
- We started using our white and pink Arduino Nano in 2025. These use a USB-C cable to connect to your computer. These work well with PictoBlocks in Web- and Direct mode, after you use PictoBlocks Desktop to upload the new bootloader.
- Our yellow Arduino Nano has been available from Junior IOT for many years. This one uses a micro-USB cable. These work well with PictoBlocks in Web- and Direct mode, after you use PictoBlocks Desktop to upload the new bootloader.
- Our red Arduino Nano is being phased out. You can use this version for Direct mode, but not for Web programming.
* This picture also displays the Lolin32, a board with even more possibilities. You can program this as a ESP32 from PictoBlox.*
Teacher: Is your Arduino ready? Use PictoBlox Desktop to upload a new firmware if needed.
With a fresh and new Arduino Nano, you have to first upload a new firmware. The factory creates the Arduino Nano with a program which blinks the built-in led. In this case, you want to upload the new firmware.
You can also execute this step to wipe an Arduino and clear any uploaded programs.
These are the steps:
- Change PictoBlox Desktop to the Stage mode (slider to the left position)
- Connect and select the middle option: Arduino Nano / 328
- Confirm that the ‘plug’ symbol shows the connected status
- At the right top, select ‘Upload Firmware’
The upload process takes a little while. If all goes well, the blinking stops once this is completed.
Tip 1: In this video Duco demonstrates the process: https://youtu.be/puwgoQAkfpw?si=CW5xWpHlZehucqaw
Tip 2: With our yellow Arduino Nano, when connecting you may want to select: Arduino Nano / 328 (old bootloader)
* Soldering the Headers onto the Arduino Nano
In these examples we are using the Arduino Nano in combination with a breadboard. The breadboard helps in making it easier to connect additional items. To prepare your Arduino Nano, sometimes you will need to solder the headers onto the Arduino.
You can find additional guidance: https://junioriot.nl/headers-op-arduino-nano-solderen/
Connect the Arduino Nano to PictoBlox Blocks Desktop
PictoBlox Desktop uses the Stage Mode to send commands directly to the Arduino. This PictoBlox Stage Mode works well with the Arduino Nanos provided by Junior IOT. You will need to upload the new firmware or bootloader.
Alert: The red Arduino Nano uses the 168 processor. As this does not support direct mode, we cannot use this version with Web- or Stage mode. The yellow, pink and white versions have the 328P processor, and can be used perfectly in these modes.
- Open PictoBlocks, or at the left top select ‘File’ and ‘New’ to start a new exercise.
- Click ‘Blocks’
A nice and empty work area opens for you.
We want to work with external boards. For this, you find the options ‘Board’ and ‘Connect’ in the menu.
- In the menu, click ‘Board’
An overview of boards is displayed.
The overview shows us which boards we can program with PictoBlox.
-
- Evive
- Quarky
- Wizbot
- Arduino Uno
- Arduino Mega
- Arduino Nano
- ESP32
- t-Watch
- micro:bit
- LEGO EV3
- LEGO BOOST
- LEGO WeDo 2.0
- Go DFA
Attention: PictoBlox can connect to these boards from the Desktop version. It is important that the USB ports of your laptop are unlocked for this function.
Attention: We use the Arduino Nano. Sometimes this requires you to load a new bootloader.
The next step is to connect PictoBlox with the Arduino Nano.
- Connect the Arduino Nano to the USB cable and connect the cable to the computer.
Please continue:
- In the menu, select ‘Board’
- Select Arduino Nano,
- And select the middle option: ATmega328
The screen displays the tab ‘Serial Ports’ and lists the COM ports where the Arduino Nano could be connected.
- Usually we need to find the lowest number in the list
- Find the port that displays: (wch.cn)
- For that port, click the button: Connect
In the menu, the ‘connect’ symbol changes to show that your device is connected.
Tip 1: If you have problems with connecting, it can be that the driver was not installed. In the menu, click on ‘Connect’ and find the link to install the driver.
Tip 2: If connecting is still failing, close PictoBlox and open it again.
Programming with the Arduino Nano in Stage Mode – in PictoBlox Desktop
In Stage mode you can add Arduino Nano blocks to your program. The program actually runs on your computer. In this mode you can use some of the Arduino programming blocks.
Tip: It is very well possible to use PictoBlox in Stage Mode from within your web browser. At Junior IOT we are experimenting which of our examples work well in this approach. You will need to use PictoBlox Desktop to load the new firmware onto the Arduino Nano.
Programming a led with the Arduino Nano
In this example you will make the bear walk, while blinking the led on the Arduino Nano.
We will use the built-in led:
- The Built-in led is connected to port 13
You can controll the bear with the left arrow and right arrow keys on your keyboard. When you are walking the bear backwards, a warning sound will be heard and the led is turned on as a warning towards oncoming traffic.
- Connect the Arduino Nano
or:
- Create this program in PictoBlox:
-
- When [ right arrow ] key pressed
- set digital pin [ 13 ] output as [ LOW ]
- change x by ( 10 )
-
- When [ left arrow ] key pressed
- set digital pin [ 13 ] output as [ HIGH ]
- change x by ( -10 )
- start sound [ Grunt ]
- Use the left and right arrow keys to make the bear walk.
Did the built-in led turn on when the bear is walking backwards?
Tip: If the bear is walking, but the Arduino is not responding, please check the connection symbol in the menu to see if the Arduino is still connected.
Finding ports on the Arduino Nano
With any programmable board, you will have many connection options. With the Arduino Nano, you can use each connection for different uses. The examples which you will guide you in discovering these options.
This overview shows you what each connection can be used for. For example, you can find connections D2 en D3 on the left side of the black square. These are the two connections which you can use in the following example.
Een enkele led bedienen op poort D2-D3
Bij dit voorbeeld is het handig om de Arduino Nano in het breadboard te plaatsen. We willen nu een led toevoegen. We doen dat door deze te verbinden met aansluiting D2 en D3.
Pak een rode led en prik deze naast de Arduino Nano in het breadboard:
-
- Rode led, langste pootje bij poort D2
- Rode led, kortste poortje bij poort D3
Hiermee zit de led in de digitale poort 2 en 3. Op het bordje zie je naast de gaatjes de tekst D2 en D3. Om de led te bedienen moeten we in de software zorgen dat poort 2 aan staat, en poort 3 uit.
- Maak in PictoBlox Desktop dit programma:
-
- When [ right arrow ] key pressed
- set digital pin [ 13 ] output as [ LOW ]
- change x by ( 10 )
- set digital pin [ 2 ] output as [ LOW ]
- set digital pin [ 3 ] output as [ HIGH ]
-
- When [ left arrow ] key pressed
- set digital pin [ 13 ] output as [ HIGH ]
- change x by ( -10 )
- set digital pin [ 2 ] output as [ HIGH ]
- set digital pin [ 3 ] output as [ LOW ]
- Druk op de groene vlag om je programma te starten
- Gebruik de links/rechts pijltjes toetsen om de beer te laten lopen
Lukt het om de rode led aan te laten gaan bij het achteruit lopen?
Een dubbele led bedienen op poort D2-D3
Je ziet dat je in het programma voor het bedienen van de led ook poort D3 aan zet, zodra je poort D2 uit zet. We kunnen er nu een groene led bij doen, en deze monteer je dan omgekeerd.
Laat de rode led van de vorige oefeningen in het breadboard. Pak een groene led en prik deze naast de Arduino Nano in het breadboard:
-
- Groene led, langste pootje bij poort D3
- Groene led, kortste poortje bij poort D2
- Verander niets aan je programma
- Gebruik de links/rechts pijltjes toetsen om de beer te laten lopen
Lukt het om de groene led aan te laten gaan bij het vooruit lopen? Gaat de rode led nog steeds aan bij het achteruit lopen?
Extra: Vier leds bedienen op poort D2-D3 en D5-D6
Kan jij je programma uitbreiden om nog extra leds te bedienen op D5 en D6?
Super Extra: RGB op poort A0-A1-A2-A3
Kan jij een RGB led bedienen? Sluit de vier pootjes van de RGB led aan met de 4 poortjes op A0-A1-A2-A3, en zorg dat het langste pootje op A1 zit. Je programmeert het zo dat A1 altijd ‘HIGH’ of aan is. De andere pootjes zorgen voor licht als ze ‘LOW’ zijn. Je kunt bijvoorbeeld de toetsen ‘R’, ‘G’ en ‘B’ gebruiken.
Analog out, gedimd licht op poort 3
Nu heb je de poorten ‘aan’ en ‘uit’ gezet. Sommige poorten kunnen ook met PWM een gedeelte van de tijd aan zijn. Een ledje geeft dan minder licht. In PictoBlox kan je dit instellen voor bijvoorbeeld poort D3.
Laat de groene en rode led van de vorige oefeningen in het breadboard.
- Maak in PictoBlox Desktop dit programma:
-
- When [ right arrow ] key pressed
- set digital pin [ 13 ] output as [ LOW ]
- change x by ( 10 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ 255 ]
-
- When [ left arrow ] key pressed
- set digital pin [ 13 ] output as [ HIGH ]
- change x by ( -10 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ 30 ]
Lukt het je om de groene led feller en minder fel te laten branden?
PWM en geluid
Bij een PWM signaal op een poort gebruikt de Arduino een vaste frequentie. Een deel van de golf staat de poort dan ‘aan’ en een rest van de tijd staat de poort ‘uit’. Hoe hoger het getal is wat je gebruikt, hoe feller de led zal branden.
Soms kan je een kleine luidspreker regelen, bijvoorbeeld 8 Ohm, 0,5 Watt. Als je er eentje hebt gevonden, dan kan je ook deze oefening doen:
Vervang de rode led in het vorige voorbeeld door een kleine luidspreker.
Kijk eens wat er gebeurt? Je zult waarschijnlijk een bromtoon horen.
Je kunt op het internet vinden welke frequentie wordt gebruikt, dat kan verschillen per poort: “For Arduino Nano or Arduino UNO the PWM pins are 3,5,6,9,10 and 11. The pins 3, 9, 10 and 11 generates PWM frequency of 490Hz and pins 5 and 6 generates PWM frequency of 980Hz.”
Verplaats het pinnetje van de luidspreker eens van D3 naar D5 en probeer het nog eens. Je kunt nu een andere toon horen, klinkt deze hoger of lager?
Servo bewegen
Bij dit voorbeeld is het handig om de Arduino Nano in het breadboard te plaatsen. Zo kan je de servo goed aansluiten. Je hebt daarvoor nog een paar m-m jumperwires nodig. Gebruik deze aansluitpunten op de Arduino Nano:
-
- Bruin –> GND
- Rood –> 5V
- Oranje –> D10
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
- Pas je programma aan:
-
- when [ right arrow ] key pressed
- change x by ( 10 )
- set digital pin [ 13 ] output as [ LOW ]
- set servo on [ 10 ] to ( 0 ) angle
-
- when [ left arrow ] key pressed
- change x by ( -10 )
- start sound [ Grunt ]
- set digital pin [ 13 ] output as [ HIGH ]
- set servo on [ 10 ] to ( 180 ) angle
Lukt het je om de servo te laten bewegen?
In dit voorbeeld gebruiken we een SG90 servo. Deze is er in twee soorten:
- 180 graden versie: De signaaldraad geeft aan in welke stand deze moet stilstaan, van ongeveer -180 graden tot 180 graden. De middenstand noemen we 0 graden.
- 360 graden: Met het zelfde signaal zal deze hard of zacht linksom of rechtsom draaien. In de middenstand staat de motor stil.
Kan jij ontdekken welke soort jullie gebruiken: 180 graden, of 360 graden?
Een potmeter uitlezen
Neem een potmeter, en plaats deze ‘ergens’ op een ongebruikte plek in het breadboard. Maak de volgende verbindingen:
-
- Potmeter linker pootje, aan Arduino GND
- Potmeter rechter pootje, aan Arduino 5V
- Potmeter middelste pootje, aan Arduino A0
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
- Maak dit programma:
-
- when flag clicked
- forever
- goto x: ( read analog pin [ A0 ] ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ read analog pin [ A0 ] ]
- wait ( 0.1 ) seconds
- Druk op de groene vlag om je programma te starten
- Draai aan de potmeter om de beer te laten lopen
Lukt het om met de potmeter de beer te laten lopen? Zie je ook de groene led feller worden?
Als je het groene ledje rustig aan wat feller maakt, zie je het af en toe toch terugspringen. Dat is raar. Hoe dat kan komen? Het getal wat uit de A0 gelezen wordt, varieert ongeveer van 0 tot 1024. Het getal waarmee je de PWM instelt, varieert ongeveer van 0 tot 255. Dat ene getal past niet in het andere vakje, en blijkbaar is dit hoe PictoBlox en de Arduino het oplossen. Daar kan je later nog veel meer over ontdekken! In de volgende oefening delen we het getal van A0 daarom door 4.
Extra: rekenen met een potmeter dimlicht
In de vorige oefening las je hoe het licht een beetje stuitert. Daarom willen we de meetwaarde van A0 delen door 4.
Gebruik hetzelfde circuit als in de vorige oefening.
Maak het volgende programma:
-
- when flag clicked
- forever
- goto x: ( ( read analog pin [ A0 ] ) / ( 4 ) ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as [ ( ( read analog pin [ A0 ] ) / ( 4 ) ) ]
- wait ( 0.1 ) seconds
- Druk op de groene vlag om je programma te starten
- Draai aan de potmeter om de beer te laten lopen
Loopt de beer nu soepeler heen en weer? Zie je ook de groene led feller worden?
Extra: Potmeter vervangen door een drukknop
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een drukknop, zodat deze verbonden is met GND en A0.
Kijk wat het programma nu doet.
Als ik de drukknop indruk, dan staat de beer stil.
Als ik de drukknop loslaat, dan wiebelt de beer heen en weer. De meetwaarde varieert, en dat komt omdat A0 nu nergens aan vast zit.
Extra: Potmeter vervangen door drukknop en weerstand
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een drukknop, zodat deze verbonden is met GND en A0. Plaats een weerstand, zodat deze verbonden zit met A0 en 5V.
Kijk wat het programma nu doet.
Als ik de drukknop indruk, dan staat de beer stil.
Als ik de drukknop loslaat, dan staat de beer aan de andere kant. De meetwaarde is nu stabiel, en dat komt omdat A0 nu met de weerstand aan 5V zit.
Extra: Potmeter vervangen door een schakelaar
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een schakelaar, zodat deze verbonden is met GND, A0 en 5V. De A0 zit op het middelste pootje van de schakelaar.
Kijk wat het programma nu doet.
Met de schakelaar kan ik de beer tussen twee posities laten springen.
Tip 1: In plaats van analoge ingang A0 kan je ook een digitale ingang gebruiken.
Tip 2: Op de foto zie je ook nog een andere schakelaar. Meestal is bij deze schakelaar het pootje aan de kant van het drukknopje de common. Deze pin wil je dan op A0. Als je het anders aansluit, dan kan het gebeuren dat de Arduino zichzelf reset, en dan moet je PictoBlox weer even opnieuw verbinden.
Extra: Potmeter vervangen door motor type 300 als generator
Ga verder met het circuit van de oefening met de potmeter. Haal de potmeter weg en plaats een motor type 300, zodat deze verbonden is met GND en A0.
Kijk wat het programma nu doet.
Door aan de motor te draaien kan je de beer opzij laten schuiven. Hoe harder je draait, hoe verder de beer beweegt.
Tip 1: Met een heel klein zonnepaneeltje kan je ook meten hoe sterk de zon schijnt. Wij hebben dit eigenlijk al gedaan met de LDR.
Tip 2: Het invoeren van een externe spanning kan de Arduino beschadigen. Kies je materialen zo dat je niet te ver voorbij het einde van het meetgebied zal gaan.
Extra: potmeter vervangen door een LDR lichtsensor en een weerstand
Op dezelfde manier kan je ook een lichtsensor uitlezen. We hebben nodig:
- een ‘grote’ weerstand van 100k
- en een LDR lichtgevoelige weerstand.
- het groene ledje
Maak de volgende verbindingen:
-
- Weerstand linker pootje, aan Arduino GND
- Weerstand rechter pootje, aan Arduino A0
- LDR linker pootje, aan Arduino A0
- LDR rechter pootje, aan Arduino 5V
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
Bij de potmeter merkte je dat bij een groot deel van de meting de beer tegen de zijkant van je scherm stond, ook met de potmeter in de middenstand. Omdat de lichtmeting vooral in de middenstand van de meting zit, delen we het meetgetal door 4. Het programma wordt daarmee iets ingewikkelder.
- Maak dit programma:
-
- when flag clicked
- forever
- goto x: ( ( read analog pin [ A0 ] ) / ( 4 ) ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as ( ( read analog pin [ A0 ] ) / ( 4 ) )
- wait ( 0.1 ) seconds
Lukt het om met de lichtsensor de beer te laten lopen? Zie je de groene led mee veranderen?
Extra: Met de LDR lichtsensor een servo bedienen
Door de bovenstaande voorbeelden te combineren kan je met je de servo bedienen met bijvoorbeeld een potmeter of met je LDR sensor.
Je hebt dan nodig:
- een ‘grote’ weerstand van 100k
- en een LDR lichtgevoelige weerstand.
- het groene ledje
Maak de volgende verbindingen:
-
- Weerstand linker pootje, aan Arduino GND
- Weerstand rechter pootje, aan Arduino A0
- LDR linker pootje, aan Arduino A0
- LDR rechter pootje, aan Arduino 5V
- Groene led, langste pootje op D3
- Groene led, kortste pootje op D2
-
- Servo Bruin –> GND
- Servo Rood –> 5V
- Servo Oranje –> D10
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
We gaan het meetgetal wat we hebben omgerekend, nu op meerdere plekken gebruiken. Daarom stoppen we dit getal eerst in een variabele. Deze vind je in het oranje gedeelte van het menu.
- Maak dit programma:
-
- when flag clicked
- forever
- set [ my variabele ] to ( ( read analog pin [ A0 ] ) / ( 4 ) )
- goto x: ( my variabele ) y: ( 0 )
- set digital pin [ 2 ] output as [ LOW ]
- set PWM pin [ 3 ] output as ( my variabele )
- set servo on [ 10 ] to ( my variabele ) angle
- wait ( 0.1 ) seconds
Lukt het om met de lichtsensor de beer te laten lopen? Zie je de groene led mee veranderen? Beweegt de servo nu ook?
Extra: Arduino en de Ultrasone sensor in PictoBlox
Dit is een leuke oefening.
Extra in PictoBlox Desktop: Motors bedienen met een motorcontroller aan de Arduino Nano
We kunnen met PictoBlox ook motors bedienen. Hiervoor hebben we een motorcontroller board nodig, en natuurlijk motors.
Als je ook motors hebt, kan je deze klaarmaken voor leuke experimenten. Kijk eens op: https://junioriot.nl/motors/
Soms moet je de motorcontroller nog even klaarmaken voor het breadboard: https://junioriot.nl/l298n-solderen-breadboard/
Tip voor de docent: Neem bijvoorbeeld de gele motors. De motors kan je voorzien van klittenband (de haakjes zijde) en je kunt de wielen er met een schroefje al op monteren. Het breadboard kan je dan voorzien van klittenband (pluisjes zijde) zodat de motors losjes op hun plek kunnen blijven. Als je de gele motors gebruikt, dan kan je twee motors beter uitlijnen door een stokje in de asjes te steken. Na gebruik halen de deelnemers alles weer uit elkaar.
We willen de bediening op D2-D3, D5-D6 gebruiken voor de robot bediening.
We hebben nodig:
-
- Je Arduino Nano
- de motor controller, die je hebt klaar gemaakt voor het breadboard
- twee gele motors, liefst met klittenband eraan. Aan de motors heb je al draden gemaakt.
- twee wielen, want dat is ook wel handig
- een breadboard, liefst met klittenband eronder
Maak de verbindingen:
-
- Arduino GND aan motorcontroller –
- Arduino 5V aan motorcontroller +
- Arduino D2, aan motorcontroller IN1
- Arduino D3, aan motorcontroller IN2
- Arduino D5, aan motorcontroller IN3
- Arduino D6, aan motorcontroller IN4
- De ene motor aan MOTOR-A (eventueel draden omdraaien om andere kant op te laten draaien)
- De andere motor aan MOTOR-B (eventueel draden omdraaien om andere kant op te laten draaien)
Om te kunnen zien of de poorten goed bediend worden, kan je op D2-D3 en op D5-D6 nog een paar ledjes prikken.
Nadat je deze aansluitingen hebt gemaakt, kan je jouw programma maken.
Als je klittenband hebt, dan helpt dit om snel een ludieke robot in elkaar te klitten. Natuurlijk kan je zelf bijvoorbeeld een mooier frame ontwerpen en 3D printen.
- Maak dit programma:
-
- when [ left arrow ] key pressed
- set digital pin [ 2 ] output as [ HIGH ]
- wait ( 0.2 ) seconds
- set digital pin [ 2 ] output as [ LOW ]
-
- when [ right arrow ] key pressed
- set digital pin [ 3 ] output as [ HIGH ]
- wait ( 0.2 ) seconds
- set digital pin [ 3 ] output as [ LOW ]
-
- when [ up arrow ] key pressed
- set digital pin [ 5 ] output as [ HIGH ]
- wait ( 0.2 ) seconds
- set digital pin [ 5 ] output as [ LOW ]
-
- when [ down arrow ] key pressed
- set digital pin [ 6 ] output as [ HIGH ]
- wait ( 0.2 ) seconds
- set digital pin [ 6 ] output as [ LOW ]
- Druk op de groene vlag om je programma te starten
- Druk op de pijltjestoetsen om de robot te laten rijden
Lukt het om met de pijltjestoetsen de robot te laten rijden?
Extra: de bediening aanpassen?
Kan jij er voor zorgen dat met pijltje vooruit de twee motors de goede kant op draaien? Kan je ook de andere pijltjes fixen?
Rijdende robot met LDR sensors
We willen nu dat de robot harder of zachter gaat rijden met de LDR sensoren. We kunnen daarvoor poort D3 en D5 gebruiken. Zorg dat je nu eerst het programma van de vorige oefening gebruikt. de motorcontroller kan de PWM signalen prima vertalen naar de motor bediening.
Eerst willen we zorgen dat de robot vooruit rijdt. Het kan zijn dat je de snoertjes van IN1 en IN2 daarvoor moet verwisselen. Voor de andere motor zijn dat de snoertjes van IN3 en IN4.
Laten we de eerste motor controleren. In het vorige programma zit poort D3 bij de pijltjestoets naar rechts. Druk eens op deze toets: de kant die de robot oprijd noemen we vooruit. Je kunt nu IN1 en IN2 verwisselen als je de robot de andere kant op wilt hebben.
Nu kan je de tweede motor controleren. In het vorige programma hoort D5 bij de pijltjestoets omhoog. Druk nu op deze toets. Je kunt nu IN3 en IN4 verwisselen als je de robot de andere kant op wilt hebben.
Pas je ontwerp aan. We willen de bediening op D2-D3, D5-D6 gebruiken voor de robot bediening. A0 en A1 gebruiken we voor twee LDR lichtgevoelige weerstanden.
We hebben nodig:
-
- Je Arduino Nano
- de motor controller, die je hebt klaar gemaakt voor het breadboard
- twee gele motors, liefst met klittenband eraan. Aan de motors heb je al draden gemaakt.
- twee wielen, want dat is ook wel handig
- een breadboard, liefst met klittenband eronder
- twee LDR lichtgevoelige weerstanden
- twee ‘grote’ weestanden van 100k
Maak de verbindingen:
-
- Arduino GND aan motorcontroller –
- Arduino 5V aan motorcontroller +
- Arduino D2, aan motorcontroller IN1
- Arduino D3, aan motorcontroller IN2
- Arduino D5, aan motorcontroller IN3
- Arduino D6, aan motorcontroller IN4
- De ene motor aan MOTOR-A (eventueel draden omdraaien om andere kant op te laten draaien)
- De andere motor aan MOTOR-B (eventueel draden omdraaien om andere kant op te laten draaien)
-
- Weerstand 1 linker pootje, aan Arduino GND
- Weerstand 1 rechter pootje, aan Arduino A0
- LDR 1 linker pootje, aan Arduino A0
- LDR 1 rechter pootje, aan Arduino 5V
-
- Weerstand 2 linker pootje, aan Arduino GND
- Weerstand 2 rechter pootje, aan Arduino A0
- LDR 2 linker pootje, aan Arduino A1
- LDR 2 rechter pootje, aan Arduino 5V
De meetwaarden van A0 en A1 zitten ok deze keer weer tussen 0 en 1024. We weten dat het getal bij de LDR en de weerstand vooral in het middengebied zal zitten. De PWM heeft een getal nodig tussen 0 en 254. We maken nu in het programma een andere berekening.
Als je de aansluitingen hebt gemaakt, maak je dit programma:
-
- when flag clicked
- set digital pin [ 2 ] output to [ LOW ]
- set digital pin [ 6 ] output to [ LOW ]
- forever
- set [ my variabele ] to ( ( read analog pin [ A0 ] ) – ( 450 ) )
- if ( ( my variable ) < 0 ) then
- set [ my variable ] to ( 0 )
- set [ variabele 2 ] to ( ( read analog pin [ A0 ] ) – ( 450 ) )
- if ( ( variable 2 ) < 0 ) then
- set [ variable 2 ] to ( 0 )
- set PWM pin [ 3 ] output as ( my variable )
- set PWM pin [ 5 ] output as ( variable 2 )
- wait ( 0.1 ) seconds
Druk op de groene vlag om het programma te starten. Gebruik een lichtje om de robot te proberen te bedienen. Het lijkt erop dat de robot stil staat als er veel licht is, en in de schaduw gaat rijden. Kan je zien dat de motors langzaam en snel willen draaien?
Arduino Nano programmeren in Upload mode
Laat je vorige programma op het scherm staan. Bij dit programma heb je het toetsenbord van je computer niet meer nodig. Dit programma kan je daarom helemaal in de Arduino Nano zetten. Het programma blijft dan werken, bijvoorbeeld als je de Arduino aansluit op een powerbank.
Aan de bovenkant van je scherm zie je Mode: Stage / Upload
- Klik op ‘Upload’
- Kies je board
- Connect je board
PictoBlox toont je opnieuw programmeeromgeving en geeft je nu de mogelijkheden om een programma te schrijven voor de Arduino Nano in Upload mode.
Het eerste blok van je programma ‘when flag clicked’ is donkergrijs, omdat je dit blok in Upload mode niet meer kunt gebruiken.
- Vervang ‘when flag clicked’ door ‘when Arduino Nano starts up’
Je programma ziet er nu zo uit:
PictoBlox toont naast het programma ook de c++ code. Dit is precies hetzelfde programma, maar dan in een andere weergave.
- Druk op ‘Upload Code’
De code staat nu echt op de Arduino Nano. Kijk nog eens of je robot goed reageert. Meestal werkt het programma nu veel soepeler.
Tip 1: Het Uploaden werkt goed in PictoBlox Desktop, maar niet in PictoBlox Web.
Tip 2: Als je de LDR’s tussen GND en Ao zet, en de weerstanden tussen A0 en 5V, dan wordt het een licht zoekende robot. Het zoekt dan de plek met het sterkste licht. Kan je controleren of dit klopt?
Arduino Nano & The Matrix
In Upload mode kan je voor de Arduino Nano nog meer extra blokken kiezen. Dan kan je bijvoorbeeld ook werken met de 8×8 led matrix.
Misschien moet je de header nog aan de matrix solderen. Soldeer deze dan aan de IN kant.
Maak deze verbindingen:
-
- Matrix VCC, aan Arduino 5V
- Matrix GND, aan Arduino GND
- Matrix Din, aan Arduino D3
- Matrix CS, aan Arduino D5
- Matrix CLX, aan Arduino D6
Zorg dat je in Upload mode werkt, de Arduino Nano hebt gekozen en bent connected. Maak het volgende programma:
-
- when Arduino Nano starts up
- initialize display to DIN [ 3 ] CS [ 5 ] CLK [ 6 ] —-> deze kan je vinden bij: 8×8 Dot Matrix display
- forever
- display [ smiley ]
- wait ( 1 ) seconds
- dosplay [ heart ]
- wait ( 1 ) seconds
Druk op Upload code.
Zie je een afbeelding verschijnen op de 8×8 led display?
Arduino Nano en de 8 pixel NeoPixel strip
PictoBlox heeft een extension beschikbaar om een NeoPixel te kunnen bedienen. Om deze extension op te halen doe je:
Als je bij je blokken naar beneden scrollt, dan staat Lighting er nu tussen!
Maak de NeoPixel strip klaar door er een 4 pins header op te solderen aan de IN-kant.
Maak de volgende verbindingen:
-
- NeoPixel DIN, aan Arduino D2
- NeoPixel GND, aan Arduino GND
- NeoPixel 5V, aan Arduino 5V
Maak het volgende programma:
-
- when Arduino Nano starts up
- initialize RGB strip [ 1 ] with ( 8 ) leds on pin [ 2 ] —-> deze kan je vinden bij RGB Lighting
- forever
- [ Color Swipe ] RGB strip [ 1 ] with color [ purple ] & delay [ 0.05 ] seconds
- [ Rainbow ] RGB strip [ 1 ] with delay [ 0.05 ] seconds
Druk op Upload code.
Zie je verschillende kleuren verschijnen op de 8 pixel NeoPixel strip?
En verder?
Programmeren: Na deze oefeningen kan je verder kijken naar de Arduino IDE, dat is heel ingewikkeld: https://junioriot.nl/arduino-party-stemup/
Engineering en 3D printen, ontwerp zelf een slagboom of een brug: https://junioriot.nl/slagboom-engineering/
Een opmerking over licenties
Thuis mag iedereen gewoon deze workshops gebruiken. Als school of organisatie mag je ook gewoon alle oefeningen van deze pagina doen als je de spulletjes van Junior IOT gebruikt. Voor ander gebruik moeten scholen en organisaties toestemming vragen aan Junior IOT voor deze beschrijvingen, en aan PictoBlox voor het gebruik van hun website en software.
























































