Go Down

Topic: Building artificial intelligence with Arduino Uno on a drone (Read 431 times) previous topic - next topic

chari7595

Hi Readers,

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?

I appreciate all the readers for their responses.

-vicky


PieterP

I think that would be like cutting down a tree with a butter knife.

I'd get a Raspberry Pi. You can program it in Python, and has orders of magnitude more processing power and memory.

Think about it: 2KiB of RAM is at most 500 32-bit floats.

Pieter

jremington

Quote
The task is to learn the atmospheric air quality
Define "artificial intelligence" as it applies to this case.

What "air quality" factors will be measured?

srnet

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.
What is there to 'learn' ?

The limits of what is safe or not (for the atmosphere) are surely well known so its a simple case of measurement I would have thought.

Unless your suggesting the drone takes the measurements and then monitors how may people become ill or die ?
$50SAT is now Silent (but probably still running)
http://www.50dollarsat.info/
http://www.loratracker.uk/

Delta_G

I think that would be like cutting down a tree with a butter knife  herring.
I know this isn't a python forum but still...
|| | ||| | || | ||  ~Woodstock

Please do not PM with technical questions or comments.  Keep Arduino stuff out on the boards where it belongs.


wvmarle

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.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

jremington

There are some interesting drone projects along those lines. I like the one that flies a Geiger counter around, reporting on local radioactivity.

The Safecast bGeigie project was instrumental in helping citizens build their own detectors, to understand and correct for the dangerously misleading government reports of radioactivity in regions around the Fukushima nuclear power plant disaster.

Paul_KD7HB

I think it is not feasible.  Each time the drone crashes, you will loose everything it had learned before the crash.

Paul

wvmarle

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.
Quality of answers is related to the quality of questions. Good questions will get good answers. Useless answers are a sign of a poor question.

MorganS

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 problem is in the code you didn't post."

ChrisTenone

#11
Jun 14, 2018, 12:30 pm Last Edit: Jun 14, 2018, 12:32 pm by ChrisTenone Reason: added " - or WiFi"
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.
I'm not disparaging the differently abled. I'm stating the fact that thirty years of junior college has made me mentally retarded.

zoomx

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.

Go Up