Here you can find a bit more info about the Barduino.
"},{"location":"howto/","title":"How to participate","text":"
Embark on a dynamic journey with our Adventronics Calendar \u2013 an electrifying twist on the traditional advent calendar! Instead of the usual sweet treats, each of the 24 windows reveals a challenge centered around the Barduino. Every day we will share with you in this page more details of the challenge and a possible solution, but be creative with your own solutions. These challenges encompass coding, design, and entertaining activities that you can seamlessly weave into your December routine. While the first five participants to finish the challenge will earn a coveted Barduino sweatshirt*, the true essence lies in the joy of learning, the thrill of tackling electronics, and the camaraderie of sharing your experiences with fellow participants.
To track your progress, share a video or photo in our dedicated Telegram group using the hashtag #AdventronicsDay followed by the day's number (e.g., #AdventronicsDay05). Utilize this group to seek guidance, pose questions, and exchange insights with the vibrant community of participants. Get ready for 24 days of innovation, learning, and festive fun!
You can share it on social media tagging @fablabbcn and using the hashtag #adventronics and/or #barduino and we will repost so we can have a collection of challenges.
This is a colaborative repo. We will upload a possible solution, but there are many possibilities. If you want to upload your own solution, please follow this template and you can contact us or do a pull request to upload it to the repo in the correct folder solutions/day#.
Blinking an LED is the Hello World of electronics, the first program you upload to check that everything is up and running. No better way to start the challenge than making sure everyting is ok! Easy one to start the challnge
You can always got to Arduino/File/Examples/01.Basic/Blink, but if you feel a bit more adventurous here you can check a possible solution:
// constants won't change. Used here to set a pin number:\nconst int led = 48; // the LED of the Barduino is connected to pin 48\n\n// Variables will change:\nint ledState = LOW; // ledState used to set the LED\n\n// Generally, you should use \"unsigned long\" for variables that hold time\n// The value will quickly become too large for an int to store\nunsigned long previousMillis = 0; // will store last time LED was updated\n\n// constants won't change:\nconst long interval = 1000; // interval at which to blink (milliseconds)\n\nvoid setup() {\n // set the digital pin as output:\n pinMode(led, OUTPUT);\n}\n\nvoid loop() {\n // check to see if it's time to blink the LED; that is, if the difference\n // between the current time and last time you blinked the LED is bigger than\n // the interval at which you want to blink the LED.\n unsigned long currentMillis = millis();\n\n if (currentMillis - previousMillis >= interval) {\n // save the last time you blinked the LED\n previousMillis = currentMillis;\n // if the LED is off turn it on and vice-versa:\n if (ledState == LOW) {\n ledState = HIGH;\n } else {\n ledState = LOW;\n }\n // set the LED with the ledState of the variable:\n digitalWrite(led, ledState);\n }\n}\n
const int led = 48;\nconst int buzzer = 14;\nconst int freq = 800;\n\nconst int wait = 200; // Duration of a unit\n\nString message = \"Bon dia Pere\";\n\nvoid setup() {\n pinMode(led, OUTPUT);\n ledcAttachPin(buzzer, 1);\n //pinMode(buzzer, OUTPUT);\n Serial.begin(115200);\n delay(2000); //wait 2 seconds to start transmitting\n\n for (int i = 0; i < message.length(); i++) {\n char letter = toLowerCase(message[i]);\n Serial.print(letter);\n morse(letter);\n delay(wait * 2); // wait 3 units if time after each character (1 in each letter and 2 here)\n\n }\n}\n\nvoid loop() {\n}\n\nvoid dot() {\n digitalWrite(led, HIGH);\n ledcWriteTone(1, freq);\n delay(wait);\n digitalWrite(led, LOW);\n ledcWriteTone(1, 0);\n delay(wait); //space between parts of a letter\n}\n\nvoid dash() {\n digitalWrite(led, HIGH);\n ledcWriteTone(1, freq);\n delay(wait * 3); // A dash are 3 dots\n digitalWrite(led, LOW);\n ledcWriteTone(1, 0);\n delay(wait); //space between parts of a letter\n}\n\nvoid morse(char letter) {\n switch (letter) {\n case 'a':\n dot();\n dash();\n break;\n case 'b':\n dash();\n dot();\n dot();\n dot();\n break;\n case 'c':\n dash();\n dot();\n dash();\n dot();\n break;\n case 'd':\n dash();\n dot();\n dot();\n break;\n case 'e':\n dot();\n break;\n case 'f':\n dot();\n dot();\n dash();\n dot();\n break;\n case 'g':\n dash();\n dash();\n dot();\n break;\n case 'h':\n dot();\n dot();\n dot();\n dot();\n break;\n case 'i':\n dot();\n dot();\n break;\n case 'j':\n dot();\n dash();\n dash();\n dash();\n break;\n case 'k':\n dash();\n dot();\n dash();\n break;\n case 'l':\n dot();\n dash();\n dot();\n dot();\n break;\n case 'm':\n dash();\n dash();\n break;\n case 'n':\n dash();\n dot();\n break;\n case 'o':\n dash();\n dash();\n dash();\n break;\n case 'p':\n dot();\n dash();\n dash();\n dot();\n break;\n case 'q':\n dash();\n dash();\n dot();\n dash();\n break;\n case 'r':\n dot();\n dash();\n dot();\n break;\n case 's':\n dot();\n dot();\n dot();\n break;\n case 't':\n dash();\n break;\n case 'u':\n dot();\n dot();\n dash();\n break;\n case 'v':\n dot();\n dot();\n dot();\n dash();\n break;\n case 'w':\n dot();\n dash();\n dash();\n break;\n case 'x':\n dash();\n dot();\n dot();\n dash();\n break;\n case 'y':\n dash();\n dot();\n dash();\n dash();\n break;\n case 'z':\n dash();\n dash();\n dot();\n dot();\n break;\n case '0':\n dash();\n dash();\n dash();\n dash();\n dash();\n break;\n case '1':\n dot();\n dash();\n dash();\n dash();\n dash();\n break;\n case '2':\n dot();\n dot();\n dash();\n dash();\n dash();\n break;\n case '3':\n dot();\n dot();\n dot();\n dash();\n dash();\n break;\n case '4':\n dot();\n dot();\n dot();\n dot();\n dash();\n break;\n case '5':\n dot();\n dot();\n dot();\n dot();\n dot();\n break;\n case '6':\n dash();\n dot();\n dot();\n dot();\n dot();\n break;\n case '7':\n dash();\n dash();\n dot();\n dot();\n dot();\n break;\n case '8':\n dash();\n dash();\n dash();\n dot();\n dot();\n break;\n case '9':\n dash();\n dash();\n dash();\n dash();\n dot();\n break;\n case ' ':\n delay(wait * 5); //wait 7 units of time if there is a space (1 from the last character, 5 here and 1 in the loop)\n default:\n break;\n }\n}\n
Play a Christmas carol (or a song you like) using the Barduino.
Time to make some music! Use the buzzer (or any other thing!) to make some music, the idea is to play a Christmas carol. As we come from many different places, try to play one from your hometown, to have a nice collection of tunes
Sending Christmas cards it's a classic, you have to make sure you send them on time for Christmas (yes, an email is faster, but in paper is something cute and by email it's just spam... and you know it!). So we wanted to help you, the challenge today it's just to create a Christmas postcard with the Barduino on it!
2 days ago you played some preprogrammed tunes, but now it's time to read some inputs and make sounds acording to them! Be creative, you can play with the different inputs...
Here is my solution, playing notes with the touch pads reacting to light! I ave to practice a lot more...
Use the temperature sensor to win, upload a picture of the temperature printed on Serial and a picture of the situation. It's not allowed to put the Barduino in the fridge... \ud83d\ude1c Give it some time for the temperature to stabilize, it can take up to 15 minutes.
Tip, you can power the board with you phone and read the Serial there with an app in Android (I don't know if that's possible with iPhones).
New Barduino coocreation! We are very happy on how the Barduino is working, but there is always space for improving. We would like to know how do you imagine the Barduino 4.1, the next version of the Barduino. Creat an sketch of your ideal board, showing what you miss on the Barduino or what would you add to it to make it even better. You can change the shape and pins, just be creative and imagine everything is possible. You can share an image of a sketch and a explanation of your ideas.
Here is my sketch, I imagine a Barduino with the shape of Fablab Barcelona logo, with a very simple base board where you can connect different stacking shields, and extend it using I2C and/or SPI connections on the sides like a puzzle piece. Let's see which ideas you have, an maybe we will make the Barduino 4.1 based on your ideas!
Let's light up the Barduinos! Winter Holidays are always full of lights, why not we use the Barduino to create our own? Use the neopixel and your creativity to make a nice light animation to celebrate this days!
Use the light sensor to detect when to light up your Barduino as a candle. There is nothing more \"Chritsmasy\" than the light of a candle, with family, friends or just te blanket on the sofa. Use the Barduino as a candle? Why not!
The idea is to make it automatic, so when it detects a low level of light it will light up simulating a candle, you will need to create a nice animation with the neopixel (don't try to light it up on fire...)
Connect you Barduino with somthing else than the Serial Monitor. Today is about expanding the Barduino, using other tools to visualize what's happenning in your board. A nice option is p5js, but feel free to use any other tool!
Tip, the simplest way to do so is using Serial communication, but you can try other things like Bluetooth, MQTT or publishing a web page from the ESP32.
Let's test your 3D design skills! Desgin an enclousure to secure the Barduino but alowing te user to use it's features. Extra points for the ones who actualy fabricates it!
Tip, use this SVG files to get the exact measurements of the board.
Here you can find the Rhino 6 file and the STL file. There are some thing's that needs to get adjusted, like a hole for the antenna and bring the usb hole higher.
"},{"location":"solutions/14/14/#hero-shot","title":"Hero shot","text":""}]}
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Adventronics Calendar Challenge","text":"
1. Light me up! (1)
Day 01
2. Say cheeeeese! (1)
Day 02
Be creative
3. Sticker Challenge (1)
Day 03
Let's see your graphic design skills
4. Talk morse to me (1)
Day 04
-... .- .-. -.. ..- .. -. ---
5. Jingle Bells! (1)
Day 05
Sing with me
6. Barduino wishes you a Merry Christmas! (1)
Day 06
Don't forget the stamp
7. Pianino (1)
Day 07
Play me!
8. Will you get the lowest temperature? (1)
Day 08
Challenge accepted
9. LED's get artistic (1)
Day 09
Try using one of those apps: Iphone Android
10. Can you imagine the new Barduino? (1)
Day 10
How it should be?
11. Christmas lights (1)
Day 11
Colorful lights
12. Ligth a candle in the dark (1)
Day 12
Try using the light sensor...
13. Visual effects (1)
Day 13
Maybe with p5js?
14. Dress me up (1)
Day 14
Protect me
15. Keyboard (1)
Day 15
UP RIGHT DOWN LEFT
16. Let's play! (1)
Can I be the controller?
17. How AI imagines me? (1)
A picture is worth a thousand words
18. How is the weather? (1)
Check this API
19. Let's party! (1)
20. Change my name (1)
How should I be called in the future?
21. ChatGPT can you help me write a Cristmas card? (1)
Here you can find a bit more info about the Barduino.
"},{"location":"howto/","title":"How to participate","text":"
Embark on a dynamic journey with our Adventronics Calendar \u2013 an electrifying twist on the traditional advent calendar! Instead of the usual sweet treats, each of the 24 windows reveals a challenge centered around the Barduino. Every day we will share with you in this page more details of the challenge and a possible solution, but be creative with your own solutions. These challenges encompass coding, design, and entertaining activities that you can seamlessly weave into your December routine. While the first five participants to finish the challenge will earn a coveted Barduino sweatshirt*, the true essence lies in the joy of learning, the thrill of tackling electronics, and the camaraderie of sharing your experiences with fellow participants.
To track your progress, share a video or photo in our dedicated Telegram group using the hashtag #AdventronicsDay followed by the day's number (e.g., #AdventronicsDay05). Utilize this group to seek guidance, pose questions, and exchange insights with the vibrant community of participants. Get ready for 24 days of innovation, learning, and festive fun!
You can share it on social media tagging @fablabbcn and using the hashtag #adventronics and/or #barduino and we will repost so we can have a collection of challenges.
This is a colaborative repo. We will upload a possible solution, but there are many possibilities. If you want to upload your own solution, please follow this template and you can contact us or do a pull request to upload it to the repo in the correct folder solutions/day#.
Blinking an LED is the Hello World of electronics, the first program you upload to check that everything is up and running. No better way to start the challenge than making sure everyting is ok! Easy one to start the challnge
You can always got to Arduino/File/Examples/01.Basic/Blink, but if you feel a bit more adventurous here you can check a possible solution:
// constants won't change. Used here to set a pin number:\nconst int led = 48; // the LED of the Barduino is connected to pin 48\n\n// Variables will change:\nint ledState = LOW; // ledState used to set the LED\n\n// Generally, you should use \"unsigned long\" for variables that hold time\n// The value will quickly become too large for an int to store\nunsigned long previousMillis = 0; // will store last time LED was updated\n\n// constants won't change:\nconst long interval = 1000; // interval at which to blink (milliseconds)\n\nvoid setup() {\n // set the digital pin as output:\n pinMode(led, OUTPUT);\n}\n\nvoid loop() {\n // check to see if it's time to blink the LED; that is, if the difference\n // between the current time and last time you blinked the LED is bigger than\n // the interval at which you want to blink the LED.\n unsigned long currentMillis = millis();\n\n if (currentMillis - previousMillis >= interval) {\n // save the last time you blinked the LED\n previousMillis = currentMillis;\n // if the LED is off turn it on and vice-versa:\n if (ledState == LOW) {\n ledState = HIGH;\n } else {\n ledState = LOW;\n }\n // set the LED with the ledState of the variable:\n digitalWrite(led, ledState);\n }\n}\n
const int led = 48;\nconst int buzzer = 14;\nconst int freq = 800;\n\nconst int wait = 200; // Duration of a unit\n\nString message = \"Bon dia Pere\";\n\nvoid setup() {\n pinMode(led, OUTPUT);\n ledcAttachPin(buzzer, 1);\n //pinMode(buzzer, OUTPUT);\n Serial.begin(115200);\n delay(2000); //wait 2 seconds to start transmitting\n\n for (int i = 0; i < message.length(); i++) {\n char letter = toLowerCase(message[i]);\n Serial.print(letter);\n morse(letter);\n delay(wait * 2); // wait 3 units if time after each character (1 in each letter and 2 here)\n\n }\n}\n\nvoid loop() {\n}\n\nvoid dot() {\n digitalWrite(led, HIGH);\n ledcWriteTone(1, freq);\n delay(wait);\n digitalWrite(led, LOW);\n ledcWriteTone(1, 0);\n delay(wait); //space between parts of a letter\n}\n\nvoid dash() {\n digitalWrite(led, HIGH);\n ledcWriteTone(1, freq);\n delay(wait * 3); // A dash are 3 dots\n digitalWrite(led, LOW);\n ledcWriteTone(1, 0);\n delay(wait); //space between parts of a letter\n}\n\nvoid morse(char letter) {\n switch (letter) {\n case 'a':\n dot();\n dash();\n break;\n case 'b':\n dash();\n dot();\n dot();\n dot();\n break;\n case 'c':\n dash();\n dot();\n dash();\n dot();\n break;\n case 'd':\n dash();\n dot();\n dot();\n break;\n case 'e':\n dot();\n break;\n case 'f':\n dot();\n dot();\n dash();\n dot();\n break;\n case 'g':\n dash();\n dash();\n dot();\n break;\n case 'h':\n dot();\n dot();\n dot();\n dot();\n break;\n case 'i':\n dot();\n dot();\n break;\n case 'j':\n dot();\n dash();\n dash();\n dash();\n break;\n case 'k':\n dash();\n dot();\n dash();\n break;\n case 'l':\n dot();\n dash();\n dot();\n dot();\n break;\n case 'm':\n dash();\n dash();\n break;\n case 'n':\n dash();\n dot();\n break;\n case 'o':\n dash();\n dash();\n dash();\n break;\n case 'p':\n dot();\n dash();\n dash();\n dot();\n break;\n case 'q':\n dash();\n dash();\n dot();\n dash();\n break;\n case 'r':\n dot();\n dash();\n dot();\n break;\n case 's':\n dot();\n dot();\n dot();\n break;\n case 't':\n dash();\n break;\n case 'u':\n dot();\n dot();\n dash();\n break;\n case 'v':\n dot();\n dot();\n dot();\n dash();\n break;\n case 'w':\n dot();\n dash();\n dash();\n break;\n case 'x':\n dash();\n dot();\n dot();\n dash();\n break;\n case 'y':\n dash();\n dot();\n dash();\n dash();\n break;\n case 'z':\n dash();\n dash();\n dot();\n dot();\n break;\n case '0':\n dash();\n dash();\n dash();\n dash();\n dash();\n break;\n case '1':\n dot();\n dash();\n dash();\n dash();\n dash();\n break;\n case '2':\n dot();\n dot();\n dash();\n dash();\n dash();\n break;\n case '3':\n dot();\n dot();\n dot();\n dash();\n dash();\n break;\n case '4':\n dot();\n dot();\n dot();\n dot();\n dash();\n break;\n case '5':\n dot();\n dot();\n dot();\n dot();\n dot();\n break;\n case '6':\n dash();\n dot();\n dot();\n dot();\n dot();\n break;\n case '7':\n dash();\n dash();\n dot();\n dot();\n dot();\n break;\n case '8':\n dash();\n dash();\n dash();\n dot();\n dot();\n break;\n case '9':\n dash();\n dash();\n dash();\n dash();\n dot();\n break;\n case ' ':\n delay(wait * 5); //wait 7 units of time if there is a space (1 from the last character, 5 here and 1 in the loop)\n default:\n break;\n }\n}\n
Play a Christmas carol (or a song you like) using the Barduino.
Time to make some music! Use the buzzer (or any other thing!) to make some music, the idea is to play a Christmas carol. As we come from many different places, try to play one from your hometown, to have a nice collection of tunes
Sending Christmas cards it's a classic, you have to make sure you send them on time for Christmas (yes, an email is faster, but in paper is something cute and by email it's just spam... and you know it!). So we wanted to help you, the challenge today it's just to create a Christmas postcard with the Barduino on it!
2 days ago you played some preprogrammed tunes, but now it's time to read some inputs and make sounds acording to them! Be creative, you can play with the different inputs...
Here is my solution, playing notes with the touch pads reacting to light! I ave to practice a lot more...
Use the temperature sensor to win, upload a picture of the temperature printed on Serial and a picture of the situation. It's not allowed to put the Barduino in the fridge... \ud83d\ude1c Give it some time for the temperature to stabilize, it can take up to 15 minutes.
Tip, you can power the board with you phone and read the Serial there with an app in Android (I don't know if that's possible with iPhones).
New Barduino coocreation! We are very happy on how the Barduino is working, but there is always space for improving. We would like to know how do you imagine the Barduino 4.1, the next version of the Barduino. Creat an sketch of your ideal board, showing what you miss on the Barduino or what would you add to it to make it even better. You can change the shape and pins, just be creative and imagine everything is possible. You can share an image of a sketch and a explanation of your ideas.
Here is my sketch, I imagine a Barduino with the shape of Fablab Barcelona logo, with a very simple base board where you can connect different stacking shields, and extend it using I2C and/or SPI connections on the sides like a puzzle piece. Let's see which ideas you have, an maybe we will make the Barduino 4.1 based on your ideas!
Let's light up the Barduinos! Winter Holidays are always full of lights, why not we use the Barduino to create our own? Use the neopixel and your creativity to make a nice light animation to celebrate this days!
Use the light sensor to detect when to light up your Barduino as a candle. There is nothing more \"Chritsmasy\" than the light of a candle, with family, friends or just te blanket on the sofa. Use the Barduino as a candle? Why not!
The idea is to make it automatic, so when it detects a low level of light it will light up simulating a candle, you will need to create a nice animation with the neopixel (don't try to light it up on fire...)
Connect you Barduino with somthing else than the Serial Monitor. Today is about expanding the Barduino, using other tools to visualize what's happenning in your board. A nice option is p5js, but feel free to use any other tool!
Tip, the simplest way to do so is using Serial communication, but you can try other things like Bluetooth, MQTT or publishing a web page from the ESP32.
Let's test your 3D design skills! Desgin an enclousure to secure the Barduino but alowing te user to use it's features. Extra points for the ones who actualy fabricates it!
Tip, use this SVG files to get the exact measurements of the board.
Here you can find the Rhino 6 file and the STL file. There are some thing's that needs to get adjusted, like a hole for the antenna and bring the usb hole higher.
Transform your Barduino in a Keyboard! The ESP32S3 has a USB-OTG mode, making it possible to be recognised as a keyboard by the computer. Use it to create your own keyboard.
Arduino Tips
If you use the same method I used to create a HID (Human Interface Device) keyboard you have to change the USB Mode: USB-OTG (Tiny USB) setting under Tools in Arduino. Using this mode, you have to use Boot Mode to program the board (Press Boot 00 button while reseting). When programming the board may change the Port number, so to programmed back you may need to change the port.
Transform your Barduino in a Keyboard! The ESP32S3 has a USB-OTG mode, making it possible to be recognised as a keyboard by the computer. Use it to create your own keyboard.
+
+
Arduino Tips
+
If you use the same method I used to create a HID (Human Interface Device) keyboard you have to change the USB Mode: USB-OTG (Tiny USB) setting under Tools in Arduino.
+
+Using this mode, you have to use Boot Mode to program the board (Press Boot 00 button while reseting). When programming the board may change the Port number, so to programmed back you may need to change the port.