Aperçu du cours - Construction de robots et d'autres périphériques Arduino (semaine 1)


«Le pouvoir n'est pas dans le fer, mais dans la connaissance» - peut-on dire de nos jours.


Maintenant l'électronique et la robotique sont devenues beaucoup plus accessibles qu'auparavant - il y avait un choix, le seuil d'entrée a baissé. Mais sans savoir comment cela fonctionne et comment l'utiliser, cette électronique ne restera que du «matériel» (et comment cela se passe - les ensembles sont parfois inactifs). Les connaissances sont beaucoup plus difficiles à obtenir sur la base de l'expérience et de la pratique personnelles.


Par conséquent, les cours pour débutants sont si appréciés. Il existe des cours payants et gratuits - mais pour garantir la pertinence, le support des cours, la compatibilité matérielle et les commentaires ne sont pas seulement une question, d'autant plus que l'on peut le trouver en russe.


Nous voulons vous parler de l'un de ces cours en ligne - " Nous construisons des robots et d'autres appareils sur Arduino. Du feu de circulation à une imprimante 3D ." Le cours a été développé conjointement par Cyberphysics et MIPT (Institut de physique et de technologie de Moscou). Le texte de la formation et le matériel vidéo sont disponibles gratuitement sur Coursera. Le cours est divisé en 6 parties (chaque semaine), et pour chaque partie - le fer correspondant est envoyé.


Il est toujours préférable de dire sur la base de notre expérience, nous parlerons donc du cours et des impressions "en temps réel" au fur et à mesure de notre progression. Le partage des impressions sera l'un des participants de notre espace de hacks.



Semaine 1


Bonjour à tous! Je m'appelle Anton et je veux vous parler dans une série de publications de six semaines de l'expérience de participer à un cours en ligne du MIPT.


Une petite introduction. Mon éducation et mon travail continu sont liés à l'informatique. Les connaissances en électronique et en circuits se terminent par un cours universitaire en électronique. Parfois, j'utilise un fer à souder, je peux faire des calculs simples pour n'importe quel circuit.


Il n'y a aucune expérience de programmation pour Arduino en tant que tel. J'écris des scripts principalement en Python et Bash, avec une syntaxe de type C familière dans les langages PHP et JavaScript. C lui-même n'avait aucune expérience en programmation.


Après que mon frère et moi avons écrit une revue de trois ensembles d'électronique pour enfants , un représentant du projet Cyberphysics a suggéré de suivre le cours en ligne «Construire des robots et d'autres appareils sur Arduino» sur le site Web de Coursera. Étant donné que j'avais précédemment suivi plusieurs cours (non liés à l'informatique) sur la plate-forme, j'ai supposé que le matériel serait trivial et simple, comme dans la plupart des cours d'introduction sur la plate-forme Coursera, ou au niveau des tâches à partir de manuels de jeux électroniques similaires. Mais, il s'est avéré que c'était une erreur. Les créateurs eux-mêmes positionnent le cours comme une introduction à la robotique pour les étudiants et les lycéens, où les étudiants apprennent ce que sont les robots et autres appareils «intelligents», comment ils interagissent avec le monde extérieur, comment ils interagissent avec les humains et, surtout, comment apprendre à créer de tels appareils vous-même.


Il est intéressant de noter que selon les auteurs du cours, les deux tiers du public, soit 13,5 mille personnes, des personnes âgées de 25 à 45 ans! Et vous pouvez comprendre pourquoi: la liste des sujets est assez large - des capteurs les plus simples et des «lumières clignotantes» au dispositif d'une imprimante 3D, et tout cela est soutenu par la théorie nécessaire, par exemple, le dispositif et les paramètres des circuits électriques, les types et les paramètres des signaux, etc. ... En même temps Le matériel est présenté dans un langage simple et accessible. Après avoir passé la première semaine, ce n'était pas une nouvelle pour moi non plus que le taux moyen du cours soit de 4,9 sur 5 points.


Étant donné que la formation vise principalement à la résolution pratique de problèmes, les auteurs du cours m'ont fourni pendant les premières semaines un ensemble de robots et d'appareils «cyberphysiques» . Démarrer + .




À l'intérieur, nous sommes accueillis avec un livret décrivant le kit et la carte Neutrino.





Immédiatement après le livret se trouve la carte Neutrino elle-même, qui est un analogue de l'Arduino Uno, mais une chose attire immédiatement l'attention - il y a 20 broches à trois broches sur la carte pour connecter une variété de capteurs. Cela m'a vraiment fait plaisir, car pour les autres cartes que j'ai vues plus tôt, il était nécessaire d'installer un blindage supplémentaire pour connecter les périphériques.




A l'intérieur, tout est rangé dans de petites boîtes. Tous les sacs de contenu sont signés.





Un étrange appareil avec un tube a également été mis dans le kit. Après une recherche rapide sur Internet, il s'est avéré être une pompe submersible, qui, apparemment, sera utilisée dans les prochaines semaines de cours.


De plus, comme les auteurs du cours me l'ont suggéré (et ce qui est écrit dans le livret :)), vous pouvez également utiliser le plateau sous le tableau - collectez les schémas et stockez-le «en vrac» afin que les détails ne fuient pas entre les cours. J'ai appris cela après la fin de la première semaine, mais j'espère qu'à l'avenir j'apprécierai les bienfaits du plateau.




Parlons maintenant du cours lui-même. Cela dure six semaines. Les trois premières semaines sont évaluées à l'aide de tests, et au cours de la quatrième et des semaines suivantes, vous pouvez effectuer une tâche supplémentaire et envoyer d'autres étudiants pour évaluation.


Dans les leçons de la première semaine, l'enseignant a d'abord expliqué les bases des circuits, puis assemblé et modifié progressivement le modèle de feu de signalisation, à la fois dans l'environnement graphique Fritzing et sur une véritable planche. Au début, un feu de signalisation manuel a été assemblé et progressivement transformé en automatique à l'aide de l'Arduino. En cours de route, les bases du langage de programmation pour l'environnement Arduino ont été expliquées.


Il convient de noter que, malgré la petite taille, les conférences vidéo sont très informatives, ce qui est certainement agréable. Voici une liste approximative des sujets de la première semaine que j'ai notés moi-même:


  • Le principe de fonctionnement et la maquette de l'appareil
  • L'appareil est le circuit électrique le plus simple. Courant électrique. LEDs
  • Façons de présenter les circuits électroniques. Diagrammes schématiques, circuits graphiques dans l'environnement Fritzing
  • Mesure des paramètres des circuits électriques. Courant, tension, résistance
  • Cartes et variétés Arduino. Arduino IDE
  • Fondamentaux de la programmation dans l'IDE Arduino. Variables, macros, boucles

À la fin de la première semaine, j'ai franchement passé le test la première fois avec 80% de réponses correctes, faisant 4 erreurs, dont l'une était due à l'ignorance du matériel (sorties LED et règle de connexion au circuit), le reste a été fait en raison de l'inattention. Lors de la deuxième tentative, il a été possible de passer le test avec une seule erreur :)




En tant que pratique, j'ai également décidé d'essayer de collecter un feu de circulation. Comme répéter l'exercice un à un me semblait un peu ennuyeux, j'ai immédiatement décidé de collecter deux feux de circulation qui simulent l'intersection.




J'ai écrit le programme en gros et «sur le front», mais il fonctionne exactement comme je le souhaitais. J'ai honnêtement essayé de réécrire le code et de le faire magnifiquement - avec des tableaux et des fonctions, mais j'ai été immédiatement affecté par mon ignorance du langage C - par exemple, je ne pouvais pas comprendre pendant plusieurs minutes comment créer des tableaux multidimensionnels et les remplir avec des valeurs en C. À en juger par le programme, ces sujets seront abordés dans la troisième semaine, j'ai donc décidé de ne pas prendre de l'avance sur moi-même et de continuer calmement à étudier le programme.


Code de programme
#define PIN_1_G 1 #define PIN_1_Y 2 #define PIN_1_R 3 #define PIN_2_G 4 #define PIN_2_Y 5 #define PIN_2_R 6 int green_on = 5000; int red_on = 5000; void setup() { pinMode(PIN_1_G, OUTPUT); pinMode(PIN_1_Y, OUTPUT); pinMode(PIN_1_R, OUTPUT); pinMode(PIN_2_G, OUTPUT); pinMode(PIN_2_Y, OUTPUT); pinMode(PIN_2_R, OUTPUT); digitalWrite(PIN_1_G, LOW); digitalWrite(PIN_1_Y, LOW); digitalWrite(PIN_1_R, HIGH); digitalWrite(PIN_2_G, HIGH); digitalWrite(PIN_2_Y, LOW); digitalWrite(PIN_2_R, LOW); } void loop() { delay(green_on); for (int i = 0; i < 3; i++) { digitalWrite(PIN_2_G, LOW); delay(500); digitalWrite(PIN_2_G, HIGH); delay(500); } digitalWrite(PIN_2_G, LOW); digitalWrite(PIN_2_Y, HIGH); delay(2000); digitalWrite(PIN_2_Y, LOW); digitalWrite(PIN_2_R, HIGH); delay(1500); digitalWrite(PIN_1_Y, HIGH); delay(2000); digitalWrite(PIN_1_Y, LOW); digitalWrite(PIN_1_R, LOW); digitalWrite(PIN_1_G, HIGH); delay(green_on); for (int i = 0; i < 3; i++) { digitalWrite(PIN_1_G, LOW); delay(500); digitalWrite(PIN_1_G, HIGH); delay(500); } digitalWrite(PIN_1_G, LOW); digitalWrite(PIN_1_Y, HIGH); delay(2000); digitalWrite(PIN_1_Y, LOW); digitalWrite(PIN_1_R, HIGH); delay(1500); digitalWrite(PIN_2_Y, HIGH); delay(2000); digitalWrite(PIN_2_Y, LOW); digitalWrite(PIN_2_R, LOW); digitalWrite(PIN_2_G, HIGH); } 

Inscription aux cours


À partir du 27 mars, l'entrée au cours est ouverte: Construire des robots et d'autres appareils sur Arduino. Du feu de circulation à l'imprimante 3D

Source: https://habr.com/ru/post/fr402677/


All Articles