这台机器被创建为主题建筑和CAD的学生项目,由五名学生的团队在斯科普里的机械工程学院。
这是一台机器,用于对两种类型的板进行分类。其中一个板有孔,另一个板材没有。我们的任务是开发一台机器,它将自动整理这些板块。我们解决了这个解决方案,它实际上赢得了25个其他机器的第一名。
betway
这是自动分拣机的工作原理:
- 将板用手送入机器。
- 滚轮将板上逐个将板落在板盒中。
- 当板到达分拣机的底部时,它会触发微开关。
- 开关打开时,LED开启。
- 如果板具有孔,则光电池将获得更多光,并且电动机将旋转到一侧。
- 如果板没有孔,则光电池将接收较少的光,并且电动机将旋转到另一侧。
电路原理图
机器使用PIC16F628A微控制器,并使用Mikroelektronika编程。
源代码
/ ********************************************************************************/ /* Mechatronic Design Team */ /* Proekt po Konstruiranje i CAD */ /* "Dizajn i razvoj na nov ured za razdeluvanje na dva tipa plocki" */ /* */ /* */ /* */ /* Mikrokontroler: PIC16F628A */ /* Oscilator: Interen na 4MHz */ /* */ /* Dekemvri, 2012, Skopje */ /********************************************************************************/ void left () { RB2_bit = 1; //motorot pocnuva da se dvizi na levo delay_ms (500); // motorot se dvizi do krajna leva polozba delay_ms (500); delay_ms (500); delay_ms (500); PORTB = 0x00; //koga ke stigne do krajnata leva polozba se gasi delay_ms (200); //vreme za kocenje na motorot RB3_bit = 1; //se aktivira relejot za promena na nasokata delay_ms (20); RB2_bit = 1; //motorot pocnuva da se dvizi desno delay_ms (500); //sredna pozicija na motorot delay_ms (500); delay_ms (500); delay_ms (500); PORTB = 0x00; //motorot se gasi koga ke dojde do sredina delay_ms (150); //vreme za kocenje na motorot } ////////////////////////////////////////////////////////////////////////////// void right () { RB3_bit = 1; //Se uklucuva relejot za promena na nasoka na motorot delay_ms (30); RB2_bit = 1; //motorot pocnuva da se dvizi desno delay_ms (500); delay_ms (500); delay_ms (500); delay_ms (500); //motorot se dvizi do krajna desna polozba PORTB = 0x00; //koga ke stigne do krajna desna polozba se gasi delay_ms (200); //vreme za kocenje na motorot RB2_bit = 1; //motorot pocnuva da se dvizi levo delay_ms (500); //sredna pozicija na motorot delay_ms (500); delay_ms (500); delay_ms (500); //sredna pozicija na motorot PORTB = 0x00; //motorot se gasi koga ke dojde do sredina delay_ms (150); //vreme za kocenje na motorot } ////////////////////////////////////////////////////////////////////////////// void main() { //pocetok na glavna programa TRISB = 0x00; //PORTB Izlezi TRISA = 0xff; //PORTA Vlezovi CMCON = 0x07; //gasenje na komparatori do { delay_ms (50); PORTB = 0x00; if (PORTA.b0==1) { //dali ima kocka? delay_ms (100); if (PORTA.b1==0) { //dali ima otvor? left (); } //ako ima otvor dvizi se levo else (right ()); }} //ako nema dvizi se desno while (1); }
这缺少相机和OpenCV!好工作!这是你典型的行业设置更大。
好的项目。很有帮助。
很高兴听到这个消息,谢谢!