I am basically a mechanical Engineer. Pardon me if i dont have a detailed electronic know how as I started making electronic projects from 2 years only with arduino.
My new project: Build a drone with an arduino Uno with 4 DC motors, 4 Electronic speed controllers(ESC's), bluetooth module to drive the drone, battery and accessories.
Challenge: I want to demonstrate artificial intelligence with Arduino Uno (ATmega328) for a task. The task is to learn the atmospheric air quality and categorize it as safe, not safe, hazardous, etc and send this information to the user.
I referred a lot of material on AI with microcontrollers and found very limited work done. I am concerned about the hardware specifications of ATmega328 of Arduino Uno.
Flash Memory 32 KB (ATmega328P) of which 0.5 KB used by bootloader
SRAM 2 KB (ATmega328P)
EEPROM 1 KB (ATmega328P)
Clock Speed 16 MHz
Can you suggest me its feasibility? Should I move to another board like raspberry or something?
I plan to use ANN (neural network) for classification.
Is it not possible with Uno or any arduino board? If there are hardware problems what steps can I take to supplement the shortcomings?
Arduino's can not handle much if any self learning.
On the other hand given the correct sensor an Arduino can handle basic human experiments on air quality (take human, see if they die or get sick or start to choke, if so, revert the message "air is not safe to breath, don't go in"). Now that'd make for a huge drone, as it'd have to carry said human with it.
Now if it's just a drone with a bunch of sensors that are read and a message with the sensor readings relayed back to some base station or so, now that'd be a very sensible Arduino project.
Store it in EEPROM. The little amount of self-learned data that an Arduino can hold will easily fit in its EEPROM. Write it every second and only if updated, and it should last pretty long - likely longer than the drone itself.
You missed the most important specification of the UNO: weight. Most drones cannot lift an UNO.
The same 328P chip is available on much smaller boards. I like the Nano but the Pro Mini is even smaller.
Your list of parts has no orientation sensor or IMU. You need that too. There are Arduino-compatible boards with the IMU included. Search around for what others have done.
The first thing I'd do is decide what parameters you want to measure to determine the overall 'safeness' of a location. Temperature, CO2 level, radiation, CO, hydrocarbons, air pressure, humidity, maybe some others ... Then determine what sensors you will need, how much power it all will require. Weigh it all. Add this to the mass of the computer package ('arduino', sd card - or WiFi, associated hardware to connect it all, etc.) This is the weight of your payload. Then determine what drone you will need to lift that much, and how long you want to keep it aloft. It doesn't sound like a cheap drone.
Run the AI software on your computer. From human inference, assign a safety value to each measured place. Your program should make a guess about the safety value. Grade the guesses, so the program can change the priority of the scoring algorithm based on your score. The computer's score will more and more closely follow the human's. Over time the patterns of parameters may identify safe places without a human visit needed.
chari7595:
Challenge: I want to demonstrate artificial intelligence with Arduino Uno (ATmega328) for a task. The task is to learn the atmospheric air quality and categorize it as safe, not safe, hazardous, etc and send this information to the user.
I believe that air quality is based on levels so you don't need to train an ANN.
Maybe it's better to learn the algorithm used for navigation using the MPU informations.