Add all the documentation
Add answering functions
Display questions and answers stored in flash mem.
This was inspired as a question-and-answer game intended to keep running at home all day long. The idea is having the device at the living room, so when you pass, it asks for your attention and shows you a question related with physics. Then you can make the calculations (questions are not easy since they are the same as in exams) and reply calmly with an infrared remote controller.
You should clone this repository and simply upload the Arduino program to your Arduino board. You will need to change the values for remote controlling since they are remote-dependent. Also, the libraries LiquidCrystal_I2C and IRremote are needed (you can install both from Arduino IDE library manager). Tweak IRremote for using timer1 instead of timer2, or it will conflict with tone function (at the moment of writing, this is done uncommenting line 194 and commentind 195 in boarddefs.h
file).
For hardware:
It has a motion sensor to detect when there are people nearby, so it greets you (with sound, blinking the screen and a message) and shows you a question. It keeps on while it detecs activity (either motion or interaction via remote control), with a certain timeout that can be set.
You can change the scrolling direction of the text (vertically or horizontally) with a button of the remote. You can also pause the scrolling.
Of course, you can answer the questions, and it will tell you if that was correct or not (currently there are only two questions introduced as a demonstration) both in the screen and with sound.
This is a project where you can learn how to make multi-tasking with Arduino, as you can see a lot of code running concurrently. Also, all the questions and answers are stored in flash memory, so you can use it for saving space in your own project (isn't free software great?). You have several perifericals working at the same time and you can see that some modifications in timers are necessary or there will be conflics (as I mentioned before). Debugging mode is also used (with serial communication).
There were some ideas that I couldn't finish on time (this was the final work for an Arduino course I did online, I had no idea of Arduino two months ago):
Copyright © 2018 José Alberto Orejuela García (josealberto4444)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.
If you modify this program, or any covered work, by linking or combining it with LiquidCrystal_I2C (or a modified version of that library), containing parts covered by the terms of LiquidCrystal_I2C's license, the licensors of this program grant you additional permission to convey the resulting work.