Hello everybody, first time here.
I'm taking my very first steps with Arduino, so I literally don't know the first thing about it.
A bit of background info. I'm an electronics technician with 47 years experience in digital systems (I'm 60), Linux user (not a power user, just a regular Joe) for the last 16 years, currently learning Python and just started a basic course on robotics.
So I'm fixing to buy (tomorrow, if I'm lucky) my first Arduino board (an Arduino UNO R3 with Atmega328 + Atmega16u Atmel) and display (which is listed only as a "2004" LCD display, so I don't have any more information on it).
My questions are the following:
What are the advantages or disadvantages of using an I2C module vs. connecting the display directly in parallel? I understand it takes more connections, that's not a problem. What I want to know is if I'm gonna have any limitations for using other peripherals (like address conflicts, that sort of thing). The final project would be to build a 3D printer, so I'm gonna need to use at least 4 stepper motor drivers with it.
I'm planning to program the thing on Python (hopefully). Am I gonna need a specific IDE? I'm using PyCharm as of now.
3.Does the USB port works for data transfer or is it only to power the board?
That's about it for now. My apologies if any (or all) of those questions are dumb. Thank you all in advance.
Thank you Wawa. But that's the question: am I gonna need those pins? I mean, if I can address devices on a common connection, I should be able to use those pins for more stuff, regardless of the display being connected to them. Can I do that on the Arduino?
One never knows. For your current project you can just use a non-I2C display (it takes 6 or 7 pins which can be freely assigned). For projects where you want to add other stuff, you might run out of pins; you can reduce the number of pins used by the LCD by using an LCD with an I2C backpack.
Pins can only serve one function in a sketch; so e.g. either display on certain pins or buttons on those pins or .... I2C is a bus so you can connect multiple I2C devices to the same two pins.
Fortunately you very sensibly asked the forum for advice before purchasing!
Python is not an option for Uno R3. It's processor doesn't have the resources to run Python code. Code can only be written in C/C++ for Uno, and many other basic types of Arduino.
In fact, no Arduino can run "full" Python, as far as I know. If that's what you want, consider a Raspberry Pi or other SBC.
Some more advanced 32-bit Arduino can run cut-down versions of Python such as MicroPython and CircuitPython.
Wow, thank you PaulRB you couldn't have come at a better time! I was literally waiting to finish my shift (in 25 minutes) to go buy everything.
I guess I'm gonna have to do some more research... Thank you!
would second @PaulRB suggestion of using a 32bit microcontroller which would support micropython etc
suggest a ESP32 which has onboard WiFi, Bluetooth Classic and BLE and is supported by the Arduino IDE
EDIT: if you require a display there are development boards with ESP32 and display onboard, e.g. HiTec OLED - saves having to use jumper wires between the microprocessor and display which can be a source of poor connections and intermittent problems
I would also agree with @PaulRB
If you want to program it using Python to build a 3D Printer, I would suggest a Raspberry Pi 4 with 4GB RAM
You can have a look at it here Raspberry Pi 4
Or If you want an even smoother performance you can have a look at the
Raspberry Pi 5 with 4GB RAM Raspberry Pi 5
Thank you all for replying. Initially, the project was to use a Raspberry Pi, and still is. The reason why I'm intending to use an arduino board is I live in Buenos Aires, Argentina, and availability and price tend to be major problems. To give you guys an idea, the Arduino Uno R3 is about U$D 8 (give or take), while a Pi 4 goes for about U$S 100, which makes it completely unaffordable to me.
I'm looking to move to Spain, maybe within the next 2 years, so the idea is to be gaining some experience on the Arduino board and move to the Pi for the final product.
But this gives me something to think about. I might get the Arduino for now for simpler projects and leave the 3D printer to make on the Pi in the future.