|
|
@ -37,8 +37,8 @@ https://en.wikipedia.org/wiki/Contiki[^] |
|
|
|
---- |
|
|
|
unzip InstantContiki2.7.zip |
|
|
|
vmplayer |
|
|
|
---- |
|
|
|
Start image |
|
|
|
---- |
|
|
|
|
|
|
|
== Log In |
|
|
|
When the login screen appears, log in to Instant Contiki: |
|
|
@ -122,6 +122,18 @@ We have now created our first simulation in COOJA. However, the simulation does |
|
|
|
|
|
|
|
To add nodes we need to first create a node type, and then add nodes to the simulation. |
|
|
|
|
|
|
|
|
|
|
|
[NOTE] |
|
|
|
==== |
|
|
|
- The *Network* window, at the top left of the screen, shows all the motes in the simulated network |
|
|
|
- The *Timeline* window, at the bottom of the screen, shows all communication events in the simulation over time |
|
|
|
- The *Mote* output window, on the right side of the screen, shows all serial port printouts from all the motes. |
|
|
|
- The *Notes* window on the top right is where you can put notes for your simulation. |
|
|
|
- And the *Simulation* control window is where you start, pause, and reload your simulation. |
|
|
|
==== |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=== Create a node type |
|
|
|
|
|
|
|
Any simulated node in COOJA belongs to a node type. |
|
|
@ -226,6 +238,55 @@ A node in the grey area cannot receive packets correctly |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
=== Extend the hello-world example |
|
|
|
|
|
|
|
- Create a folder |
|
|
|
- Copy+paste the *contiki/examples/hello-world* folder in your new folder. |
|
|
|
|
|
|
|
==== Sensors, LEDs and Button |
|
|
|
|
|
|
|
We will extend the Hello World program to let it print sensor data and toggle the leds when the button is pressed. |
|
|
|
|
|
|
|
.ADD |
|
|
|
---- |
|
|
|
#include "dev/button-sensor.h" |
|
|
|
#include "dev/light-sensor.h" |
|
|
|
#include "dev/leds.h" |
|
|
|
#include <stdio.h> /* For printf() */ |
|
|
|
---- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sensors needs to be activated in the main process: |
|
|
|
|
|
|
|
|
|
|
|
[source,bash] |
|
|
|
---- |
|
|
|
SENSORS_ACTIVATE(button_sensor); |
|
|
|
SENSORS_ACTIVATE(light_sensor); |
|
|
|
---- |
|
|
|
|
|
|
|
|
|
|
|
To print out the current light sensor value: |
|
|
|
|
|
|
|
[source,bash] |
|
|
|
---- |
|
|
|
printf("Light: \%u\n", light_sensor.value(0)); |
|
|
|
---- |
|
|
|
|
|
|
|
To wait for an event and check if this event is a button press: |
|
|
|
|
|
|
|
[source,bash] |
|
|
|
---- |
|
|
|
PROCESS_WAIT_EVENT_UNTIL(ev == sensors_even && data == &button_sensor); |
|
|
|
---- |
|
|
|
|
|
|
|
To toggle LEDs: |
|
|
|
|
|
|
|
[source,bash] |
|
|
|
---- |
|
|
|
leds_toggle(LEDS_AL |
|
|
|
---- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|