- Setup: To set up my laptop for Lab 1, I updated the ArduinoIDE, python, pip, and Ruby/Jekyll, installed the Sparkfun Apollo3 Boards Manager along with its BLE functionality in ArduinoBLE, downloaded the provided BLE codebase, configured a Python virtual environment for the class with the necessary Python packages, and started the necessary Jupyter server.
- Codebase: The provided BLE (Bluetooth Low Energy) codebase allows wireless communication between my laptop and the RedBoard Artemis Nano. After establishing a Bluetooth connection to the Artemis, the functions in the Jupyter Notebook titled 'demo.ipynb' allow us to interface with the program that the Artemis runs. The Artemis runs 'ble_arduino.ino', which contains the RobotCommand class used to parse and execute incoming commands from my laptop via the established BLE wireless connection.
- Configurations: The most relevant configurations in Lab 1 were the updated MAC Address and UUID for connecting to the Artemis, which I have copied below.
MAC Address: C0:81:48:26:03:64
UUID: e2402ec7-6475-4e44-8a84-14f5f0a2714a
(Links can be clicked while embedded elements are being fixed.)
- Blink (Video) In this task, I ran the Blink example program available for the board in the Arduino IDE after installing the appropriate boards manager to blink the on-board LED once per second (ie. LED on for one second, then off for the next, on for the next, and so on and so forth).
- Serial (Image) In this task, I ran the Serial example program from the Arduino IDE, which echoes input into the Serial Monitor (set to a baud rate of 115200), as shown in the image below. \
- Temperature Sensor (Video) In this task, I ran the analogRead example program to test the on-board temperature sensor. This program outputs the value reported by the temperature sensor to the Serial Monitor.
- Microphone Output (Video) In this task, I ran the Microphone Output example program to test the on-board microphone. This program outputs the loudest frequency observed to the Serial Monitor.
- Task 1: Echo Command In this task, I used the provided ECHO command in the ble_arduino.ino sketch to echo a phrase from the RedBoard Artemis Nano over the established Bluetooth connection.
- Task 2: Send Three Floats Command In this task, I used the provided SEND_THREE_FLOATS command in the ble_arduino.ino sketch to send three floats to the board and extracted them in the same Arduino sketch.
- Task 3: Get Time Command In this task, I added a command to the ble_arduino.ino sketch that would allow the RedBoard Artemis Nano to return the time elapsed since the beginning of the program in milliseconds. This functionality is demonstrated below.
- Task 4: Notification Handler In this task, I created a notification handler in the demo notebook (Jupyter Notebook) that would extract data from the RX string.
- Task 5: Loop of Current Time In this task, I created a loop to send/receive time data so that the speed of data transfer could be measured.
- Task 6: Array of Time Stamps In this task, I create an array of timestamps that is populated by the Send Time Data command to achieve the previous goal in a different way.
- Task 7: Temperature Readings at Each Time Stamp In this task, I implement the Get Temp Readings command to store the output from the temperature sensor for each timestamp recorded in the loop (Task 5).
- Task 8: Differences Between Methods
In this lab, I became familiar with using the sensors of the RedBoard Artemis Nano and receiving data using each of its sensors. The platform is not very intuitive, but with instruction, I seem to have properly configured the board without very many challenges. To complete this lab, I also referenced Nila Narayan's & Mikayla Lahr's websites from the 2024 offering of this course to speed up debugging my code.














