{"id":7950,"date":"2021-06-19T08:00:00","date_gmt":"2021-06-19T06:00:00","guid":{"rendered":"https:\/\/www.newstechnology.eu\/it\/?p=7950"},"modified":"2021-06-17T10:02:11","modified_gmt":"2021-06-17T08:02:11","slug":"sistemi-operativi-real-time-progetti-freertos","status":"publish","type":"post","link":"https:\/\/www.newstechnology.eu\/it\/robotica\/sistemi-operativi-real-time-progetti-freertos.html","title":{"rendered":"Sistemi Operativi Real Time &#8211; Progetti FreeRTOS"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Con l&#8217;evoluzione della tecnologia anche i <strong>sistemi operativi in tempo reale <\/strong>hanno avuto la loro crescita e forse non ce ne rendiamo conto, ma li stiamo utilizzando inconsapevolmente ogni giorno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cosa e&#8217; un <a href=\"https:\/\/it.wikipedia.org\/wiki\/Sistema_operativo_real-time\">sistema operativo real time<\/a>? Nel sistema operativo real time, <em>non conta tanto il risultato di un&#8217;elaborazione<\/em>, ma e&#8217; <strong>importante il tempo in cui un determinato processo resta in esecuzione<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">Per un sistema general purpose (desktop linux o windows che utilizziamo solitamente) il calcolo e l&#8217;elaborazione puo&#8217; avvenire in 1 secondo o 1 ora, mentre per i sistemi operativi real-time il tempo di esecuzione fa la differenza! Nel <strong>sistema real-time se supero 1 secondo o un tempo prefissato<\/strong> per eseguire un task <strong>ho un errore a volte critico ed a volte superabile<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2021\/06\/MicroController-XMC4800_WiFi-1024x683.jpg\" alt=\"\" class=\"wp-image-7953\" srcset=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2021\/06\/MicroController-XMC4800_WiFi-1024x683.jpg 1024w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2021\/06\/MicroController-XMC4800_WiFi-300x200.jpg 300w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2021\/06\/MicroController-XMC4800_WiFi-768x512.jpg 768w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2021\/06\/MicroController-XMC4800_WiFi.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nel tempo reale, come dice la parola, i processi sono eseguiti in tempo reale e se un processo non riesce a finire la sua esecuzione si puo&#8217; bloccare tutta la coda dei processi oppure si continua con altri processi se l&#8217;errore e&#8217; soft.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I sistemi operativi real-time sono l&#8217;evoluzione della programmazione dei microcontrollori, ed in effetti li si utilizza nella robotica, nella <a href=\"https:\/\/it.wikipedia.org\/wiki\/Internet_delle_cose\">IoT<\/a>, in tutti quei processi che hanno bisogno di un risultato predeterminato (non necessariamente veloce).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pensa ad esempio alle <strong>stampanti 3D<\/strong>. Hanno tutte una scheda madre programmabile e gli si fanno compiere dei passi predeterminati, ma non sono necessariamente veloci. Fatto sta che la stampa deve essere eseguita sempre con le stesse operazione, prima una, poi l&#8217;altra e cosi&#8217; via.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Come hai ormai capito i sistemi operativi real time sono stati sviluppati per agevolare la scrittura di codice all&#8217;interno dei microcontrollori o mcu. I sistemi embedded ne fanno grande uso, sono quei sistemi hardware che fanno una sola cosa, ma la fanno bene. <strong>Sistemi embedded fanno poche cose<\/strong>, ma la <em>devono portare a termine<\/em> come ad esempio un sensore di temperatura in tempo reale. Il dato della temperatura deve essere misurato e trasmesso ad una infrastruttura cloud in tempo reale.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco che il sensore di temperature diventa un terminale IoT, efficiente ed a costi contenuti con un sistema operativo  programmabile, attraverso <strong>RTOS (Real Time Operative System)<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">FreeRTOS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Di sistemi operativi real-time ne esistono molti, ma mi soffermo su FreeRTOS perche&#8217; e&#8217; abbastanza utilizzato, se ne puo&#8217; facilmente capire la logica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/freertos.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">FreeRTOS<\/a> e&#8217; ben documentato ed utilizzato con diverse architetture hardware.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si puo&#8217; ad esempio utilizzare la <strong>libreria TCP\/IP<\/strong> per creare un sito <a href=\"https:\/\/www.freertos.org\/FreeRTOS-Plus\/FreeRTOS_Plus_TCP\/index.html\">FTP pienamente funzionate<\/a> con solamente 40KB di istruzioni da inserire nel nostro microcontrollore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oppure si puo&#8217; programmare, attraverso FreeRTOS, un robot che segue la linea nera come hanno fatto questi studenti nel video:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Robot control with FreeRTOS\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/-txGLA3vwik?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Altrimenti ci si puo&#8217; cimentare a realizzare dei piccoli progetti. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>In hackaday.io potete trovare dei <strong><a rel=\"noreferrer noopener\" href=\"https:\/\/hackaday.io\/search?term=freertos\" target=\"_blank\">progetti con FreeRTOS<\/a><\/strong><\/li><li>Usare il <a rel=\"noreferrer noopener\" href=\"https:\/\/www.elettronicain.it\/blog\/2020\/10\/14\/usare-il-multitasking-di-freertos-su-arduino\/\" target=\"_blank\">multitasking<\/a> con arduino<\/li><li><a href=\"https:\/\/scienceprog.com\/freertos-on-stm32\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tutorial freertos<\/a> su microcontrollore <a href=\"https:\/\/en.wikipedia.org\/wiki\/STM32\" target=\"_blank\" rel=\"noreferrer noopener\">STM32<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I progetti sono piccoli, ma hanno portato i costruttori ad integrare sempre piu&#8217; gli oggetti con i nostri desktop e smartphone, attraverso la tecnologia IoT (Internet of Thing).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con l&#8217;evoluzione della tecnologia anche i sistemi operativi in tempo reale hanno avuto la loro crescita e forse non ce ne rendiamo conto, ma li stiamo utilizzando inconsapevolmente ogni giorno. Cosa e&#8217; un sistema operativo real time? Nel sistema operativo real time, non conta tanto il risultato di un&#8217;elaborazione, ma e&#8217; importante il tempo in &#8230; <a title=\"Sistemi Operativi Real Time &#8211; Progetti FreeRTOS\" class=\"read-more\" href=\"https:\/\/www.newstechnology.eu\/it\/robotica\/sistemi-operativi-real-time-progetti-freertos.html\" aria-label=\"Per saperne di pi\u00f9 su Sistemi Operativi Real Time &#8211; Progetti FreeRTOS\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":7953,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpai_meta_description":"","footnotes":""},"categories":[34],"tags":[1483,1484,1482,1485,1481,1478,1480,1479],"class_list":["post-7950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-robotica","tag-iot","tag-microcontrollori","tag-operazioni-real-time","tag-progetti-freertos","tag-real-time","tag-rtos","tag-sistemi-operativi","tag-sistemi-operativi-real-time"],"_links":{"self":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/7950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/comments?post=7950"}],"version-history":[{"count":3,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/7950\/revisions"}],"predecessor-version":[{"id":7954,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/7950\/revisions\/7954"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media\/7953"}],"wp:attachment":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media?parent=7950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/categories?post=7950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/tags?post=7950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}