Fusionner le C et C++ c'est possible, mais c'est pas forcément bien. En fait le C++, comme son nom l'indique, c'est du C avec des choses en plus, donc si tu fais un fichier C++ mais que dedans tu codes en C, le compilateur comprendra quand même. Juste qu'en C++, tu dois normalement coder de manière orientée objet. Avec un niveau basique, tu peux déjà faire pas mal de choses.
Pour la différence entre raspberry et arduino, c'est pas du tout la même chose, et pas vraiment la même utilisation :
- Arduino, c'est une carte avec un microcontrôleur, la puissance de calcul est faible (pas de calcul sur des flottants, fréquence faible, calcul sur 8 bits....). Par contre, il n'y à pas d'OS, donc le microcontrôleur execute diretement le programme que tu lui donnes. Les entrées/sorties sont donc beaucoup plus rapides.
- Raspberry, c'est un mini ordinateur. C'est plus ou moins le même processeur que dans un smartphone, et on fait généralement tourner un linux dessus. La puissance de calcul est beaucoup plu élevée, et tu peux avoir accès à internet, à l'USB, à un écran full HD, et à beaucoup de périphériques simplement. Par contre, le temps réel sous linux c'est beaucoup plus compliqué qu'avec un microcontrôleur. Il faut souvent faire des modifs sur le noyau pour permettre une latence acceptable sur les entrées sorties.
Bien entendu, il existe d'autres types de microcontrôleurs (PIC, MSP430, 8051,...) et de cartes de type mini-ordinateur (Beaglebone, OrangePi, PCduino, Cubieboad,....).
L'intelligence artificielle, oui c'est des années d'études. Ca dépend de ce que tu appelles intelligence artificielle, mais même à des niveaux très élevés (on peut citer Siri par exemple), il n'existe à l'heure actuelle rien d'accessible au public (j'entends par la hors milieu militaire) de vraiment impressionnant.
Pour un robot performant, le budget est souvent conséquent. Pour les robots qui roulent, il est encore possible de récupérer des moteurs dans des vieilles imprimantes, des outils, des casses auto... . Par contre pour les robots qui marchent, il faut des servomoteurs, et la pour la récupération, c'est quasiment impossible d'en trouver. Dans certains jouets à la limite, mais le prix de ces jouets ne vaut que rarement le coup de faire de la récup dessus.
Alors oui on peut programmer avec scratch (même sur arduino il me semble) mais je te le déconseille. Tu seras plus limité en terme de possibilités qu'avec un vrai langage. De plus, c'est bien pour apprendre à faire clignoter une LED ou faire bouger un servomoteur, mais pour quelque chose de plus poussé (programme principal d'un robot avec asservissement et tout ça) tu risques d'être vite paumé et d'avoir besoin d'un écran de 10000000 pouces.